diff --git a/Makefile b/Makefile index c00c275..7598475 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,7 @@ SRCS = src/utils/mess_error.c \ src/utils/parse_utils.c \ src/parsing/check_map.c \ src/parsing/check_arg.c \ + src/parsing/principal_pars.c \ src/cub3d.c OBJS = $(addprefix $(OBJSDIR), $(SRCS:.c=.o)) diff --git a/includes/cub3d.h b/includes/cub3d.h index edf2deb..5b688b1 100644 --- a/includes/cub3d.h +++ b/includes/cub3d.h @@ -6,7 +6,7 @@ /* By: madumerg +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/09/04 17:01:05 by madumerg #+# #+# */ -/* Updated: 2024/09/11 14:54:17 by madumerg ### ########.fr */ +/* Updated: 2024/09/12 12:54:48 by madumerg ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,15 +20,7 @@ # include # include # include +# include "parsing.h" -int check_format_file(char *file); -int check_err_arg(int argc, char **argv); -char **parse_map(char *map); -int err_mess(char *str); - -int verif_all_map(char **map); -int verif_char(char c); -int check_char_map(char **map); -void convert_white_s(char *str); #endif diff --git a/includes/parsing.h b/includes/parsing.h new file mode 100644 index 0000000..c204b78 --- /dev/null +++ b/includes/parsing.h @@ -0,0 +1,37 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* parsing.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: madumerg +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/09/12 12:49:16 by madumerg #+# #+# */ +/* Updated: 2024/09/12 12:57:11 by madumerg ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef PARSING_H +# define PARSING_H + +//check_arg.c +int check_err_arg(int ac, char **av); +int check_format_file(char *file); + +//check_map.c +int err_not_close(char after, char before, char down, char up); +int actual_char(char actual); +int check_map_close(char **map); +int count_player(char **map); +int check_char_map(char **map); + +//principal_pars.c +int verif_all_map(char **map); +char **parse_map(char *map); + +//mess_error.c in utils +int err_mess(char *str); + +//parse_utils.c +void convert_white_s(char *str); +int verif_char(char c); +#endif diff --git a/map.cub b/map.cub index be1f05c..a20bd6c 100644 --- a/map.cub +++ b/map.cub @@ -1,9 +1,8 @@ -111111111111111111111111 -1 000000000000111111111111 -11111111 1111110111111111000000000001 -1000000000000000 00000000000000000001 -100000000000000000000000 000001111111 -1111111111111111111111111111111 - 11111 - 10001 - 11111 +11111 +100S1 +11111 + +11111 + 11111 +11101 +11111 diff --git a/src/parsing/check_arg.c b/src/parsing/check_arg.c index 521549e..7d9eeb7 100644 --- a/src/parsing/check_arg.c +++ b/src/parsing/check_arg.c @@ -6,7 +6,7 @@ /* By: madumerg +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/09/04 21:33:35 by madumerg #+# #+# */ -/* Updated: 2024/09/11 22:12:13 by madumerg ### ########.fr */ +/* Updated: 2024/09/12 12:57:41 by madumerg ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/parsing/check_map.c b/src/parsing/check_map.c index c838ebf..c7dce2f 100644 --- a/src/parsing/check_map.c +++ b/src/parsing/check_map.c @@ -6,7 +6,7 @@ /* By: madumerg +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/09/11 11:24:13 by madumerg #+# #+# */ -/* Updated: 2024/09/11 22:14:44 by madumerg ### ########.fr */ +/* Updated: 2024/09/12 12:57:24 by madumerg ### ########.fr */ /* */ /* ************************************************************************** */ @@ -81,17 +81,6 @@ int count_player(char **map) return (0); } -int verif_all_map(char **map) -{ - if (check_char_map(map) == 1) - return (err_mess(WRONG_CHAR)); - if (count_player(map) == 1) - return (err_mess(ERR_PLAYER)); - if (check_map_close(map) == 1) - return (err_mess(NOT_CLOSE)); - return (0); -} - int check_char_map(char **map) { int y; @@ -101,7 +90,6 @@ int check_char_map(char **map) while (map[y]) { x = 0; - convert_white_s(map[y]); while (map[y][x]) { if (verif_char(map[y][x]) == 1) @@ -112,27 +100,3 @@ int check_char_map(char **map) } return (0); } - -char **parse_map(char *map) -{ - int fd; - char **parse_map; - char *save; - char *join; - - fd = open(map, O_RDONLY); - save = get_next_line(fd); - join = ft_calloc(1, 1); - if (!join) - return (NULL); - while (save != NULL) - { - join = ft_strjoin(join, save); - free(save); - save = get_next_line(fd); - } - parse_map = ft_split(join, '\n'); - free(join); - close(fd); - return (parse_map); -} diff --git a/src/parsing/principal_pars.c b/src/parsing/principal_pars.c new file mode 100644 index 0000000..32f6487 --- /dev/null +++ b/src/parsing/principal_pars.c @@ -0,0 +1,48 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* principal_pars.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: madumerg +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/09/12 12:44:52 by madumerg #+# #+# */ +/* Updated: 2024/09/12 12:54:54 by madumerg ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "cub3d.h" + +int verif_all_map(char **map) +{ + if (check_char_map(map) == 1) + return (err_mess(WRONG_CHAR)); + if (count_player(map) == 1) + return (err_mess(ERR_PLAYER)); + if (check_map_close(map) == 1) + return (err_mess(NOT_CLOSE)); + return (0); +} + +char **parse_map(char *map) +{ + int fd; + char **parse_map; + char *save; + char *join; + + fd = open(map, O_RDONLY); + save = get_next_line(fd); + join = ft_calloc(1, 1); + if (!join) + return (NULL); + while (save != NULL) + { + join = ft_strjoin(join, save); + free(save); + save = get_next_line(fd); + } + parse_map = ft_split(join, '\n'); + free(join); + close(fd); + return (parse_map); +}