From 9c23ccdfd7694fd2e509369b7a62bba40b43d880 Mon Sep 17 00:00:00 2001 From: nicolas-arnaud Date: Mon, 14 Nov 2022 20:56:34 +0100 Subject: [PATCH] update --- .gitignore | 25 +++++++++++++++++++++++++ Makefile | 4 ++-- README.md | 4 ++-- includes/cub3d.h | 4 ++-- lib/libft.a | Bin 56760 -> 236418 bytes lib/libmlx_Linux.a | Bin 0 -> 107204 bytes maps/tester.cub | 6 ++++-- maps/tests/empty_map_line.cub | 14 ++++++++++++++ maps/tests/invalid_line_after_map.cub | 15 +++++++++++++++ maps/tests/missing_color.cub | 12 ++++++++++++ maps/tests/missing_color_comp.cub | 13 +++++++++++++ maps/tests/no_door_tex.cub | 12 ++++++++++++ maps/tests/open_map.cub | 13 +++++++++++++ maps/tests/simple.cub | 13 +++++++++++++ maps/tests/unexistant_folder_tex.cub | 13 +++++++++++++ maps/tests/unexistant_tex_file.cub | 13 +++++++++++++ src/main.c | 9 +++++---- src/mlx/mlx_1.c | 12 +++++++----- src/parsing/getline.c | 5 ++++- src/parsing/parsing.c | 14 +++++++------- src/parsing/utils.c | 4 ++-- src/render/render.c | 4 ++-- 22 files changed, 180 insertions(+), 29 deletions(-) create mode 100644 .gitignore create mode 100644 lib/libmlx_Linux.a create mode 100644 maps/tests/empty_map_line.cub create mode 100644 maps/tests/invalid_line_after_map.cub create mode 100644 maps/tests/missing_color.cub create mode 100644 maps/tests/missing_color_comp.cub create mode 100644 maps/tests/no_door_tex.cub create mode 100644 maps/tests/open_map.cub create mode 100755 maps/tests/simple.cub create mode 100644 maps/tests/unexistant_folder_tex.cub create mode 100644 maps/tests/unexistant_tex_file.cub diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4f3ff34 --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +* + +!.gitignore +!LICENSE +!Makefile +!README.md + +!*.h +!includes/ + +!*.a +!lib/ + +!*.cub +!maps/ +!maps/tests/ + +!*.c +!src/ +!src/mlx/ +!src/parsing/ +!src/render/ + +!*.xpm +!textures/ diff --git a/Makefile b/Makefile index 567c17b..cbb2712 100644 --- a/Makefile +++ b/Makefile @@ -14,12 +14,12 @@ RM = rm -rf UNAME_S := $(shell uname -s) ifeq ($(UNAME_S), Linux) - LFLAGS = -lXext -lX11 -lm -lz -Llib -lft -lmlx_Linux + LFLAGS = -lXext -lX11 -lm -lz -Llib -lft -lmlx_Linux endif ifeq ($(UNAME_S), Darwin) LFLAGS = -framework OpenGL -framework AppKit -Llib -lft -lmlx_Mac endif -CFLAGS = -Werror -Wall -Wextra -O3 -ffast-math -funsafe-math-optimizations +CFLAGS = -g -Werror -Wall -Wextra -O3 -ffast-math -funsafe-math-optimizations %.o:%.c ${CC} ${CFLAGS} -c $< -o ${<:.c=.o} diff --git a/README.md b/README.md index d18125e..29ec7e2 100644 --- a/README.md +++ b/README.md @@ -28,8 +28,8 @@ CUBE3D - [x] save player pos, - [ ] handle errors, - [x] not closed map - - [ ] texture files not exist, not permited or with wrong extension - - [ ] impossible color used + - [x] texture files not exist, not permited or with wrong extension + - [x] impossible color used - [-] missing map ### Quit - [ ] clean and exit diff --git a/includes/cub3d.h b/includes/cub3d.h index fd2c706..a2f2439 100644 --- a/includes/cub3d.h +++ b/includes/cub3d.h @@ -6,7 +6,7 @@ /* By: narnaud +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/05/21 19:24:12 by narnaud #+# #+# */ -/* Updated: 2022/11/14 10:35:59 by narnaud ### ########.fr */ +/* Updated: 2022/11/14 16:33:15 by narnaud ### ########.fr */ /* */ /* ************************************************************************** */ @@ -118,7 +118,7 @@ int mouse_move_hook(int x, int y, t_env *env); int mouse_up_hook(int buton, int x, int y, t_env *env); int update_hook(t_env *env); void init_window(t_env *nv); -void init_game(t_env *env); +int init_game(t_env *env); // Utils void vec_set(t_vec *vec, int x, int y); diff --git a/lib/libft.a b/lib/libft.a index a22a09a062c15ea9f63ea6b972ff26023e0e8f99..8630f89a03f871de7b04eeabb93e0ab811986577 100644 GIT binary patch literal 236418 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 ak2q2&_G4I_JBY#ra@?0^14GFEzW)!+u>Z9H diff --git a/lib/libmlx_Linux.a b/lib/libmlx_Linux.a new file mode 100644 index 0000000000000000000000000000000000000000..b7941745c81cf4100cc75cac9c533c98dcd8e40a GIT binary patch literal 107204 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 literal 0 HcmV?d00001 diff --git a/maps/tester.cub b/maps/tester.cub index 4492508..d84e4ee 100644 --- a/maps/tester.cub +++ b/maps/tester.cub @@ -1,11 +1,13 @@ NO ./textures/wood.xpm +EA ./textures/wood.xpm EA ./textures/colorstone.xpm SO ./textures/wood.xpm + WE ./textures/wood.xpm DO ./textures/wood.xpm -F 500, 156, 8 -C 27, 210,27 +F 250, 156,150 +C 27, 210,200 111111111111111111111111111111111111111111111111 100000000000000000010000000000000000000000000001 diff --git a/maps/tests/empty_map_line.cub b/maps/tests/empty_map_line.cub new file mode 100644 index 0000000..330650d --- /dev/null +++ b/maps/tests/empty_map_line.cub @@ -0,0 +1,14 @@ +NO ./textures/redbrick.xpm +EA ./textures/colorstone.xpm +SO ./textures/redbrick.xpm +WE ./textures/redbrick.xpm +DO ./textures/wood.xpm + +F 147, 159, 153 +C 219, 213, 213 + +1111111 +100N001 + +1000001 +1111111 diff --git a/maps/tests/invalid_line_after_map.cub b/maps/tests/invalid_line_after_map.cub new file mode 100644 index 0000000..d57e589 --- /dev/null +++ b/maps/tests/invalid_line_after_map.cub @@ -0,0 +1,15 @@ +NO ./textures/redbrick.xpm +EA ./textures/colorstone.xpm +SO ./textures/redbrick.xpm +WE ./textures/redbrick.xpm +DO ./textures/wood.xpm + +F 147, 159, 153 +C 219, 213, 213 + +1111111 +100N001 +1000001 +1111111 + +test diff --git a/maps/tests/missing_color.cub b/maps/tests/missing_color.cub new file mode 100644 index 0000000..a650306 --- /dev/null +++ b/maps/tests/missing_color.cub @@ -0,0 +1,12 @@ +NO ./textures/redbrick.xpm +EA ./textures/colorstone.xpm +SO ./textures/redbrick.xpm +WE ./textures/redbrick.xpm +DO ./textures/wood.xpm + +F 147, 159, 153 + +1111111 +100N001 +1000001 +1111111 diff --git a/maps/tests/missing_color_comp.cub b/maps/tests/missing_color_comp.cub new file mode 100644 index 0000000..51b80b5 --- /dev/null +++ b/maps/tests/missing_color_comp.cub @@ -0,0 +1,13 @@ +NO ./textures/redbrick.xpm +EA ./textures/colorstone.xpm +SO ./textures/redbrick.xpm +WE ./textures/redbrick.xpm +DO ./textures/wood.xpm + +F 147, 159, 153 +C 219, 213 + +1111111 +100N001 +1000001 +1111111 diff --git a/maps/tests/no_door_tex.cub b/maps/tests/no_door_tex.cub new file mode 100644 index 0000000..9f56dc6 --- /dev/null +++ b/maps/tests/no_door_tex.cub @@ -0,0 +1,12 @@ +NO ./textures/redbrick.xpm +EA ./textures/colorstone.xpm +SO ./textures/redbrick.xpm +WE ./textures/redbrick.xpm + +F 147, 159, 153 +C 219, 213, 213 + +1111111 +100N001 +1000001 +1111111 diff --git a/maps/tests/open_map.cub b/maps/tests/open_map.cub new file mode 100644 index 0000000..e647089 --- /dev/null +++ b/maps/tests/open_map.cub @@ -0,0 +1,13 @@ +NO ./textures/redbrick.xpm +EA ./textures/colorstone.xpm +SO ./textures/redbrick.xpm +WE ./textures/redbrick.xpm +DO ./textures/wood.xpm + +F 147, 159, 153 +C 219, 213, 213 + +1111111 +100N000 +1000001 +1111111 diff --git a/maps/tests/simple.cub b/maps/tests/simple.cub new file mode 100755 index 0000000..cd72949 --- /dev/null +++ b/maps/tests/simple.cub @@ -0,0 +1,13 @@ +NO ./textures/redbrick.xpm +EA ./textures/colorstone.xpm +SO ./textures/redbrick.xpm +WE ./textures/redbrick.xpm +DO ./textures/wood.xpm + +F 147, 159, 153 +C 219, 213, 213 + +1111111 +100N001 +1000001 +1111111 diff --git a/maps/tests/unexistant_folder_tex.cub b/maps/tests/unexistant_folder_tex.cub new file mode 100644 index 0000000..7984804 --- /dev/null +++ b/maps/tests/unexistant_folder_tex.cub @@ -0,0 +1,13 @@ +NO ./textures/redbrick.xpm +EA ./textures/colorstone.xpm +SO ./textures/redbrick.xpm +WE ./textures/redbrick.xpm +DO ./text/wood.xpm + +F 147, 159, 153 +C 219, 213, 213 + +1111111 +100N001 +10002001 +11111111 diff --git a/maps/tests/unexistant_tex_file.cub b/maps/tests/unexistant_tex_file.cub new file mode 100644 index 0000000..ea90e03 --- /dev/null +++ b/maps/tests/unexistant_tex_file.cub @@ -0,0 +1,13 @@ +NO ./textures/redbrick.xpm +EA ./textures/colorstone.xpm +SO ./textures/redbrick.xpm +WE ./textures/redbrick.xpm +DO ./textures/woody.xpm + +F 147, 159, 153 +C 219, 213, 213 + +1111111 +100N001 +1000001 +1111111 diff --git a/src/main.c b/src/main.c index 353c1df..48ed8e5 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: narnaud +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/05/21 19:22:50 by narnaud #+# #+# */ -/* Updated: 2022/11/14 10:39:10 by narnaud ### ########.fr */ +/* Updated: 2022/11/14 16:35:36 by narnaud ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,13 +17,14 @@ int main(int argc, char **argv) t_env *env; if (argc != 2) - return (EXIT_FAILURE); + return (printf("Usage: ./cub3d mapfile.cub\n"), EXIT_FAILURE); env = load_map(argv[1]); if (!env) return (EXIT_FAILURE); init_window(env); - init_game(env); - render(env); + if (init_game(env) == EXIT_FAILURE) + exit(EXIT_FAILURE); + render(env); mlx_loop_hook(env->mlx, update_hook, env); mlx_loop(env->mlx); mlx_destroy_image(env->mlx, env->img); diff --git a/src/mlx/mlx_1.c b/src/mlx/mlx_1.c index 74e08ba..f37a369 100644 --- a/src/mlx/mlx_1.c +++ b/src/mlx/mlx_1.c @@ -2,11 +2,10 @@ /* */ /* ::: :::::::: */ /* mlx_1.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: narnaud +#+ +:+ +#+ */ +/* +:+ +:+ +:+ */ /* By: narnaud +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/08/25 14:14:46 by narnaud #+# #+# */ -/* Updated: 2022/08/25 14:18:18 by narnaud ### ########.fr */ +/* Updated: 2022/11/14 16:28:51 by narnaud ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,7 +22,7 @@ void init_window(t_env *env) env->mlx = mlx; window = mlx_new_window(mlx, WIN_X_SZ, WIN_Y_SZ, "Cub3D"); env->win = window; - mlx_mouse_hide(mlx, win); + mlx_mouse_hide(mlx, window); } int mouse_move_hook(int x, int y, t_env *env) @@ -67,7 +66,7 @@ int mouse_move_hook(int x, int y, t_env *env) } #endif -void init_game(t_env *env) +int init_game(t_env *env) { int y; @@ -76,6 +75,8 @@ void init_game(t_env *env) { env->tex[y].img = mlx_xpm_file_to_image(env->mlx, env->tex[y].file, &env->tex[y].width, &env->tex[y].height); + if (env->tex[y].img == NULL) + return (printf("Error:\nCan't open a texture\n"), EXIT_FAILURE); env->tex[y].buffer = (int *)mlx_get_data_addr(env->tex[y].img, \ &env->tex[y].pixel_bits, &env->tex[y].line_bytes, @@ -90,4 +91,5 @@ void init_game(t_env *env) mlx_hook(env->win, 2, 1L << 0, key_press_hook, env); mlx_hook(env->win, 3, 1L << 1, key_release_hook, env); mlx_hook(env->win, 6, 0L, mouse_move_hook, env); + return (EXIT_SUCCESS); } diff --git a/src/parsing/getline.c b/src/parsing/getline.c index 0ac3ed1..27bd7e9 100644 --- a/src/parsing/getline.c +++ b/src/parsing/getline.c @@ -44,6 +44,7 @@ char *get_next_line(int fd) ssize_t read_size; char *line; char *ret; + char *next; if (!*buffer) { @@ -53,8 +54,10 @@ char *get_next_line(int fd) ret = ft_calloc(1, sizeof(char)); while (buffer[i]) { - line = ft_strjoin(ret, save_buffer(buffer, &i)); + next = save_buffer(buffer, &i); + line = ft_strjoin(ret, next); ret = (free(ret), line); + free(next); if (buffer[i - 1] == '\n') break ; read_size = read(fd, buffer, BUFFER_SIZE); diff --git a/src/parsing/parsing.c b/src/parsing/parsing.c index 9c3fdff..7579064 100644 --- a/src/parsing/parsing.c +++ b/src/parsing/parsing.c @@ -33,16 +33,16 @@ void register_settings(int *progress, t_env *env, char *line) elem = ft_split(line, ' '); if (!elem[0] || !elem[1]) - return ; - if (!ft_strncmp(elem[0], "NO", 3)) + return (ft_free_split(elem)); + if (!env->tex[0].file && !ft_strncmp(elem[0], "NO", 3)) env->tex[0].file = ft_strtrim(elem[1], "\n"); - else if (!ft_strncmp(elem[0], "SO", 3)) + else if (!env->tex[1].file && !ft_strncmp(elem[0], "SO", 3)) env->tex[1].file = ft_strtrim(elem[1], "\n"); - else if (!ft_strncmp(elem[0], "WE", 3)) + else if (!env->tex[2].file && !ft_strncmp(elem[0], "WE", 3)) env->tex[2].file = ft_strtrim(elem[1], "\n"); - else if (!ft_strncmp(elem[0], "EA", 3)) + else if (!env->tex[3].file && !ft_strncmp(elem[0], "EA", 3)) env->tex[3].file = ft_strtrim(elem[1], "\n"); - else if (!ft_strncmp(elem[0], "DO", 3)) + else if (!env->tex[4].file && !ft_strncmp(elem[0], "DO", 3)) env->tex[4].file = ft_strtrim(elem[1], "\n"); else if (!ft_strncmp(elem[0], "F", 2)) env->floorColor = rgb_to_int(elem + 1); @@ -117,7 +117,7 @@ t_env *load_map(char *filename) line = get_next_line(fd); } if (progress < 7 && cleanup_datas(env)) - return (NULL); + return (printf("Error\nYour map isn't valid.\n"), NULL); env->map = create_map_array(e_map, env->wide, env->deep); if (!is_valid_map(env) && cleanup_datas(env)) return (NULL); diff --git a/src/parsing/utils.c b/src/parsing/utils.c index 12b6af8..121fa40 100644 --- a/src/parsing/utils.c +++ b/src/parsing/utils.c @@ -24,7 +24,7 @@ int rgb_to_int(char **rgb) i = 0; ret = 0; colors = ft_split(*rgb, ','); - while (c < 3 && rgb) + while (c < 3 && rgb && colors) { if (!colors[i]) { @@ -39,6 +39,6 @@ int rgb_to_int(char **rgb) ret |= color << (8 * (2 - c++)); } if (c < 3) - return (ft_free_split(colors), printf("Error:\nInvalid color.\n"), -1); + return (printf("Error:\nInvalid color.\n"), -1); return (ft_free_split(colors), ret); } diff --git a/src/render/render.c b/src/render/render.c index bad9083..5b412f8 100644 --- a/src/render/render.c +++ b/src/render/render.c @@ -6,7 +6,7 @@ /* By: narnaud +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/05/31 09:33:02 by narnaud #+# #+# */ -/* Updated: 2022/08/23 16:19:08 by narnaud ### ########.fr */ +/* Updated: 2022/11/14 16:45:42 by narnaud ### ########.fr */ /* */ /* ************************************************************************** */ @@ -91,6 +91,6 @@ void render(t_env *env) bzero(env->buffer, WIN_Y_SZ * WIN_X_SZ * sizeof(int)); render_view(env); if (env->minimap) - render_minimap(env, (t_vec){env->wide * 8, env->deep * 8}); + render_minimap(env, (t_vec){WIN_X_SZ / 3, WIN_Y_SZ / 3}); mlx_put_image_to_window(env->mlx, env->win, env->img, 0, 0); }