#include #include #include #include #include static void ft_check_cub(const char *map_path, t_win *wlist) { char **words; size_t i; if (!(words = ft_split(map_path, '.'))) { ft_dprintf(STDERR_FILENO, "Error\n"); ft_dprintf(STDERR_FILENO, "\033[31;1mMap is not a .cub\033[0m\n"); ft_free_words(words, NULL); ft_exit(2, wlist); } i = 0; while (words[i]) i++; if (ft_strcmp(words[i - 1], "cub")) { ft_dprintf(STDERR_FILENO, "Error\n"); ft_dprintf(STDERR_FILENO, "\033[31;1mMap is not a .cub\033[0m\n"); ft_free_words(words, NULL); ft_exit(2, wlist); } ft_free_words(words, NULL); } /* ** I can't close fd */ void ft_parse_map(const char *map_path, t_win *wlist) { int fd; ft_check_cub(map_path, wlist); fd = open(map_path, O_RDONLY); if (fd < 0) { ft_dprintf(STDERR_FILENO, "Error\n"); ft_dprintf(STDERR_FILENO, "\033[31;1mNo map\033[0m\n"); ft_exit(2, wlist); } ft_get_res(fd, wlist); if (ft_get_tex(fd, wlist) < 0) return ; ft_check_empty_line(fd, 6, wlist); if (ft_get_sprite_tex(fd, wlist) < 0) return ; ft_get_colors(fd, wlist); ft_print_list(wlist); ft_check_empty_line(fd, 10, wlist); ft_get_map(fd, wlist); }