/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* parsing.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: lfirmin +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/08/22 14:17:58 by lfirmin #+# #+# */ /* Updated: 2025/10/26 02:10:59 by lfirmin ### ########.fr */ /* */ /* ************************************************************************** */ #include "cub.h" int check_xpm_file(char *filepath) { int fd; if (!filepath) return (1); fd = open(filepath, O_RDONLY); if (fd == -1) return (1); close(fd); return (0); } int check_texture_file(t_textures *texture) { if (check_xpm_file(texture->north)) return (ft_error(ERR_I_N), 1); if (check_xpm_file(texture->south)) return (ft_error(ERR_I_S), 1); if (check_xpm_file(texture->east)) return (ft_error(ERR_I_E), 1); if (check_xpm_file(texture->west)) return (ft_error(ERR_I_W), 1); return (0); } int parsing(t_data *data) { if (check_file(data->map_path, &data->parsing) == 1) return (1); if (get_map(data)) { close(data->parsing.fd_map); close(data->parsing.fd_map_dup); return (1); } close(data->parsing.fd_map); close(data->parsing.fd_map_dup); get_next_line(-2); if (check_colors(data->texture) == 1) return (free_char_array(data->parsing.raw_map), 1); if (check_texture_file(data->texture) == 1) return (free_char_array(data->parsing.raw_map), 1); if (validate_map(data->parsing.raw_map, data->parsing.player)) return (free_char_array(data->parsing.raw_map), 1); data->map = data->parsing.raw_map; data->parsing.raw_map = NULL; return (0); }