/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* map2.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: erey-bet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/01/06 19:06:48 by erey-bet #+# #+# */ /* Updated: 2023/01/06 19:06:51 by erey-bet ### ########.fr */ /* */ /* ************************************************************************** */ #include "../so_long.h" int init_fd_map(char *argv[], char **tmp_map, char **map, int *i) { int fd; fd = open(argv[1], O_RDONLY); if (fd == -1) return (-1); *tmp_map = NULL; *map = NULL; *i = 0; return (fd); } void read_map(char *argv[], t_data *data) { char *tmp_map; char *map; int i; int fd; i = ft_strlen(argv[1]); if (argv[1][i - 1] != 'r' || argv[1][i - 2] != 'e' || argv[1][i - 3] != 'b' || argv[1][i - 4] != '.') return ; fd = init_fd_map(argv, &tmp_map, &map, &i); if (fd == -1) return ; while (i == 0 || tmp_map != NULL) { tmp_map = get_next_line(fd); if (tmp_map && map) map = ft_strjoin_free(map, tmp_map, 1); else if (tmp_map) map = ft_strdup(tmp_map); free(tmp_map); i++; } data->map = ft_split(map, '\n'); data->h_map = i - 1; free(map); }