From 8fd76831b5b6dd0a654574848ebc2ce0935710db Mon Sep 17 00:00:00 2001 From: kinou-p Date: Wed, 15 Jun 2022 23:40:10 +0200 Subject: [PATCH] norm --- Makefile | 5 +- srcs/parsing/check_color_texture.c | 42 +------------- srcs/parsing/parse_map.c | 90 ++++++++++++------------------ srcs/parsing/utils_parsing.c | 53 ++++++++++++++++++ srcs/utils/cub_utils.c | 3 +- 5 files changed, 95 insertions(+), 98 deletions(-) create mode 100644 srcs/parsing/utils_parsing.c diff --git a/Makefile b/Makefile index de68ada..d21abe7 100644 --- a/Makefile +++ b/Makefile @@ -6,11 +6,11 @@ # By: apommier +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2022/02/13 16:27:49 by apommier #+# #+# # -# Updated: 2022/06/15 18:49:48 by apommier ### ########.fr # +# Updated: 2022/06/15 23:36:51 by apommier ### ########.fr # # # # **************************************************************************** # -NAME = Cub3D +NAME = cub3D SRCS = srcs/main.c\ srcs/cast_ray/get_texture_array.c\ srcs/cast_ray/cast_ray.c\ @@ -20,6 +20,7 @@ SRCS = srcs/main.c\ srcs/utils/cub_utils.c\ srcs/utils/quit_game.c\ srcs/parsing/parse_map.c\ + srcs/parsing/utils_parsing.c\ srcs/parsing/check_color_texture.c OBJS = ${SRCS:.c=.o} diff --git a/srcs/parsing/check_color_texture.c b/srcs/parsing/check_color_texture.c index 84c75d6..a1b25e0 100644 --- a/srcs/parsing/check_color_texture.c +++ b/srcs/parsing/check_color_texture.c @@ -6,52 +6,12 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/06/11 01:00:17 by apommier #+# #+# */ -/* Updated: 2022/06/15 18:32:06 by apommier ### ########.fr */ +/* Updated: 2022/06/15 23:38:56 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ #include "../../includes/Cub3D.h" -char next_space(char *str, int i) -{ - while (str[i] == ' ') - i++; - return (str[i]); -} - -int next_space_index(char *str, int i) -{ - while (str[i] == ' ') - i++; - return (i); -} - -char *transform_map(char **double_map, t_data *img) -{ - char *map; - int i; - int j; - int index; - - i = -1; - index = 0; - img->map.size = img->map.x * img->map.y; - map = ft_calloc(sizeof(char), img->map.size + 1); - if (!map) - quit_game(img); - while (double_map[++i]) - { - j = -1; - while (double_map[i][++j]) - { - map[i * img->map.x + j] = double_map[i][j]; - index++; - } - } - img->map.simple_map = map; - return (0); -} - void set_texture_file(char *str, t_data *img, char c) { int index; diff --git a/srcs/parsing/parse_map.c b/srcs/parsing/parse_map.c index 945aa22..bbd3abc 100644 --- a/srcs/parsing/parse_map.c +++ b/srcs/parsing/parse_map.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/05/10 17:54:25 by sadjigui #+# #+# */ -/* Updated: 2022/06/15 22:03:10 by apommier ### ########.fr */ +/* Updated: 2022/06/15 23:33:19 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,7 +28,7 @@ void verifie_texture_color(t_data *img) ft_exit("Error\nColor not set properly\n", img); } -void error_msg(t_data *img) +void error_msg(t_data *img) { if (img->map.error == 1) ft_exit("Error\nMap isn't closed\n", img); @@ -40,9 +40,9 @@ void error_msg(t_data *img) ft_exit("Error\nBad character in map\n", img); } -void size_line(char *str, t_data *img) +void size_line(char *str, t_data *img) { - int i; + int i; i = 0; while (str[i]) @@ -51,10 +51,10 @@ void size_line(char *str, t_data *img) img->map.x = i; } -char *charge_new(t_data *img, char **map, char **tmp_map) +char *charge_new(t_data *img, char **map, char **tmp_map) { - char *str; - int i; + char *str; + int i; i = 0; str = malloc(sizeof(char) * (img->map.x + 3)); @@ -90,16 +90,16 @@ int reverse_comp(char *s1, char *s2) return (0); } -void inter_map(char **split, char **tmp, t_data *img) +void inter_map(char **split, char **tmp, t_data *img) { - int i; - int j; + int i; + int j; i = 0; while (split[i]) { j = 0; - while(split[i][j]) + while (split[i][j]) { if (split[i][j] == '3') img->map.error = -1; @@ -111,15 +111,15 @@ void inter_map(char **split, char **tmp, t_data *img) } } -void close_or_not(char **tab, int i, int j, t_data *img) +void close_or_not(char **tab, int i, int j, t_data *img) { - if(tab[i + 1][j] == '3' || tab[i - 1][j] == '3') + if (tab[i + 1][j] == '3' || tab[i - 1][j] == '3') img->map.error = 1; - if(tab[i][j + 1] == '3' || tab[i][j - 1] == '3') + if (tab[i][j + 1] == '3' || tab[i][j - 1] == '3') img->map.error = 1; - if(tab[i + 1][j + 1] == '3' || tab[i + 1][j - 1] == '3') + if (tab[i + 1][j + 1] == '3' || tab[i + 1][j - 1] == '3') img->map.error = 1; - if(tab[i - 1][j + 1] == '3' || tab[i - 1][j - 1] == '3') + if (tab[i - 1][j + 1] == '3' || tab[i - 1][j - 1] == '3') img->map.error = 1; if (img->map.error != 1) img->map.error = 0; @@ -140,34 +140,30 @@ void find_angle(char c, t_data *img) int check_inner_utils(char *line, t_data *img) { int i; - int player; + int player; i = 0; player = 0; while (line[i]) { - // if (line[i] == '0' || line[i] == '1' || line[i] == '3' || line[i] == '\n') - // i++; - if (line[i] == 'N' || line[i] == 'S' || line[i] == 'E' || line[i] == 'W') + if (line[i] == 'N' || line[i] == 'S' + || line[i] == 'E' || line[i] == 'W') { find_angle(line[i], img); - //img->player.x = (i - 1) * 64; img->player.x = i * 64 - 32; player++; } else if (line[i] != '3' && line[i] != '0' && line[i] != '1') return (100); - // else - // return (2); i++; } return (player); } -void check_inner(char **map, t_data *img)//fonction bizarre +void check_inner(char **map, t_data *img) { - int i; - int player; + int i; + int player; i = 0; player = 0; @@ -176,21 +172,20 @@ void check_inner(char **map, t_data *img)//fonction bizarre player += check_inner_utils(map[i], img); if (player == 1 && !img->player.y) img->player.y = i * 64 - 32; - //img->player.y = (i - 1) * 64; i++; } if (player == 0) img->map.error = 2; - if (player > 1 && player < 100)//?????? pk 3 et -1? + if (player > 1 && player < 100) img->map.error = 3; if (player >= 100) img->map.error = -1; } -void check_border(char **tab, t_data *img) +void check_border(char **tab, t_data *img) { - int i; - int j; + int i; + int j; i = 0; while (tab[i]) @@ -198,7 +193,8 @@ void check_border(char **tab, t_data *img) j = 0; while (tab[i][j]) { - if (tab[i][j] == '0' || tab[i][j] == 'W' || tab[i][j] == 'N' || tab[i][j] == 'S' || tab[i][j] == 'E') + if (tab[i][j] == '0' || tab[i][j] == 'W' || tab[i][j] == 'N' + || tab[i][j] == 'S' || tab[i][j] == 'E') close_or_not(tab, i, j, img); j++; } @@ -208,8 +204,8 @@ void check_border(char **tab, t_data *img) void check_zero_one(char **split, t_data *img) { - char **tmp; - int i; + char **tmp; + int i; i = 0; while (split[i]) @@ -222,12 +218,9 @@ void check_zero_one(char **split, t_data *img) img->map.y = i; tmp = malloc(sizeof(char *) * (i + 3)); if (!tmp) - { - free_double(split); quit_game(img); - } i = 0; - while(i < img->map.y + 2) + while (i < img->map.y + 2) { tmp[i] = charge_new(img, split, tmp); i++; @@ -237,7 +230,7 @@ void check_zero_one(char **split, t_data *img) if (img->map.error == -1) { free_double(tmp); - return; + return ; } check_border(tmp, img); check_inner(tmp, img); @@ -292,10 +285,10 @@ char **isafile(char **av, t_data *img) char **ret; int count; int pass; - + count = 0; get_map_size(av[1], img, &count, 0); - ret = ft_calloc(sizeof(char*), count); + ret = ft_calloc(sizeof(char *), count); if (!ret) quit_game(img); img->to_be_free.tab = ret; @@ -312,12 +305,11 @@ char **isafile(char **av, t_data *img) return (0); } -int check_map(char **av, t_data *img) +int check_map(char **av, t_data *img) { img->map.x = 0; img->map.y = 0; img->map.error = 0; - if (reverse_comp(av[1], ".cub") || (ft_strlen(av[1]) == ft_strlen(".cub"))) { ft_exit("Error\nNot a valid file \".cub\"\n", img); @@ -331,18 +323,8 @@ int check_map(char **av, t_data *img) if (img->map.error != 0) { error_msg(img); - quit_game(img);//surely leak??? + quit_game(img); } verifie_texture_color(img); return (0); } - -/*int main(int ac, char **av) -{ - t_root img; - - if (check_map(av, &img)) - return (0); - else - printf("map is clean\n"); -}*/ diff --git a/srcs/parsing/utils_parsing.c b/srcs/parsing/utils_parsing.c new file mode 100644 index 0000000..a01f173 --- /dev/null +++ b/srcs/parsing/utils_parsing.c @@ -0,0 +1,53 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* utils_parsing.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/06/15 23:34:49 by apommier #+# #+# */ +/* Updated: 2022/06/15 23:38:38 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../../includes/Cub3D.h" + +char next_space(char *str, int i) +{ + while (str[i] == ' ') + i++; + return (str[i]); +} + +int next_space_index(char *str, int i) +{ + while (str[i] == ' ') + i++; + return (i); +} + +char *transform_map(char **double_map, t_data *img) +{ + char *map; + int i; + int j; + int index; + + i = -1; + index = 0; + img->map.size = img->map.x * img->map.y; + map = ft_calloc(sizeof(char), img->map.size + 1); + if (!map) + quit_game(img); + while (double_map[++i]) + { + j = -1; + while (double_map[i][++j]) + { + map[i * img->map.x + j] = double_map[i][j]; + index++; + } + } + img->map.simple_map = map; + return (0); +} diff --git a/srcs/utils/cub_utils.c b/srcs/utils/cub_utils.c index a1c6984..e52ed2e 100644 --- a/srcs/utils/cub_utils.c +++ b/srcs/utils/cub_utils.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/06/15 18:48:45 by apommier #+# #+# */ -/* Updated: 2022/06/15 19:23:03 by apommier ### ########.fr */ +/* Updated: 2022/06/15 23:22:14 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,6 +35,7 @@ void ft_error(char *error_msg) void ft_exit(char *str, t_data *img) { ft_putstr_fd(str, 2); + quit_game(img); }