diff options
Diffstat (limited to '')
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | inc/cub3d.h | 4 | ||||
-rw-r--r-- | src/ft_drawsquare.c | 5 | ||||
-rw-r--r-- | src/ft_exit.c | 1 | ||||
-rw-r--r-- | src/ft_get_map.c | 20 | ||||
-rw-r--r-- | src/ft_init_lists.c | 15 | ||||
-rw-r--r-- | src/ft_parse_map.c | 1 | ||||
-rw-r--r-- | src/main.c | 2 |
8 files changed, 39 insertions, 10 deletions
@@ -26,6 +26,7 @@ SRCS_NAME += ft_get_res.c SRCS_NAME += ft_get_tex.c SRCS_NAME += ft_get_sprite_tex.c SRCS_NAME += ft_get_colors.c +SRCS_NAME += ft_get_map.c SRCS_NAME += ft_check_empty_line.c SRCS_NAME += ft_free_words.c SRCS_NAME += ft_map_error.c diff --git a/inc/cub3d.h b/inc/cub3d.h index ead1b52..7df93ad 100644 --- a/inc/cub3d.h +++ b/inc/cub3d.h @@ -28,6 +28,7 @@ typedef struct s_cub char *sprite_path; int f_color; int c_color; + char **map; } t_cub; typedef struct s_win @@ -44,11 +45,12 @@ t_cub *ft_init_cub(void); void ft_parse_map(const char *map_path, t_win *wlist); int ft_key_event(int keycode, void *param); int ft_exit(uint8_t exit_code, t_win *wlist); -void ft_drawsquare(t_win *wlist, int a, int b); +void ft_drawsquare(int a, int b, int rgb, t_win *wlist); int ft_get_res(int fd, t_win *wlist); int ft_get_tex(int fd, t_win *wlist); int ft_get_sprite_tex(int fd, t_win *wlist); int ft_get_colors(int fd, t_win *wlist); +int ft_get_map(int fd, t_win *wlist); void ft_check_empty_line(int fd, unsigned int linum, t_win *wlist); diff --git a/src/ft_drawsquare.c b/src/ft_drawsquare.c index df055fa..1f1334b 100644 --- a/src/ft_drawsquare.c +++ b/src/ft_drawsquare.c @@ -2,7 +2,7 @@ #include <cub3d.h> void -ft_drawsquare(t_win *wlist, int a, int b) +ft_drawsquare(int a, int b, int rgb, t_win *wlist) { int x; int y; @@ -13,8 +13,7 @@ ft_drawsquare(t_win *wlist, int a, int b) { while (y > b - 40) { - mlx_pixel_put(wlist->wlx, wlist->winptr, x, y, - wlist->clist->f_color); + mlx_pixel_put(wlist->wlx, wlist->winptr, x, y, rgb); y--; } y = b; diff --git a/src/ft_exit.c b/src/ft_exit.c index 165c3d9..14f1f2a 100644 --- a/src/ft_exit.c +++ b/src/ft_exit.c @@ -11,6 +11,7 @@ ft_free_lists(t_win *wlist) ft_memdel(wlist->clist->ea_tex_path); ft_memdel(wlist->clist->we_tex_path); ft_memdel(wlist->clist->sprite_path); + ft_free_words(wlist->clist->map, NULL); ft_memdel(wlist->clist); ft_memdel(wlist->winptr); ft_memdel(wlist->wlx); diff --git a/src/ft_get_map.c b/src/ft_get_map.c new file mode 100644 index 0000000..a45052c --- /dev/null +++ b/src/ft_get_map.c @@ -0,0 +1,20 @@ +#include <libft.h> +#include <cub3d.h> +#include <stddef.h> +#include <stdlib.h> + +int +ft_get_map(int fd, t_win *wlist) +{ + size_t i; + char *line; + + ft_free_words(wlist->clist->map, NULL); + i = 0; + if (!(wlist->clist->map = (char**)malloc(40 * sizeof(char*)))) + return (-1); + while (get_next_line(fd, &line) > 0) + { + } + return (0); +} diff --git a/src/ft_init_lists.c b/src/ft_init_lists.c index 6bec697..b395840 100644 --- a/src/ft_init_lists.c +++ b/src/ft_init_lists.c @@ -24,13 +24,18 @@ t_cub if (!(clist = (t_cub*)malloc(sizeof(t_cub)))) return (NULL); - if (!(clist->no_tex_path = (char*)ft_calloc(1, 1)) || - !(clist->so_tex_path = (char*)ft_calloc(1, 1)) || - !(clist->ea_tex_path = (char*)ft_calloc(1, 1)) || - !(clist->we_tex_path = (char*)ft_calloc(1, 1)) || - !(clist->sprite_path = (char*)ft_calloc(1, 1))) + if (!(clist->no_tex_path = (char*)ft_calloc(1, sizeof(char))) || + !(clist->so_tex_path = (char*)ft_calloc(1, sizeof(char))) || + !(clist->ea_tex_path = (char*)ft_calloc(1, sizeof(char))) || + !(clist->we_tex_path = (char*)ft_calloc(1, sizeof(char))) || + !(clist->sprite_path = (char*)ft_calloc(1, sizeof(char)))) return (NULL); clist->f_color = 0; clist->c_color = 0; + if (!(clist->map = (char**)ft_calloc(2, sizeof(char*)))) + return (NULL); + if (!(clist->map[0] = (char*)ft_calloc(1, sizeof(char)))) + return (NULL); + clist->map[1] = 0; return (clist); } diff --git a/src/ft_parse_map.c b/src/ft_parse_map.c index 32ba5d8..70b81d4 100644 --- a/src/ft_parse_map.c +++ b/src/ft_parse_map.c @@ -56,4 +56,5 @@ ft_parse_map(const char *map_path, t_win *wlist) ft_get_colors(fd, wlist); ft_print_list(wlist); ft_check_empty_line(fd, 10, wlist); + ft_get_map(fd, wlist); } @@ -18,7 +18,7 @@ int if (ft_init_winlx(wlist) < 0) return (ft_exit(3, wlist)); mlx_key_hook(wlist->winptr, ft_key_event, wlist); - ft_drawsquare(wlist, 80, 80); + ft_drawsquare(80, 80, wlist->clist->f_color, wlist); mlx_loop(wlist->wlx); return (0); } |