diff options
author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-01-24 17:57:20 +0100 |
---|---|---|
committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-01-24 17:57:20 +0100 |
commit | 6776a1f3491663c85480326e0d01f9a6c5455bbd (patch) | |
tree | 035435a20e933c43b192552a5b3f766fe55131e5 /src/ft_get_tex.c | |
parent | ft_split redone (diff) | |
download | 42-cub3d-6776a1f3491663c85480326e0d01f9a6c5455bbd.tar.gz 42-cub3d-6776a1f3491663c85480326e0d01f9a6c5455bbd.tar.bz2 42-cub3d-6776a1f3491663c85480326e0d01f9a6c5455bbd.tar.xz 42-cub3d-6776a1f3491663c85480326e0d01f9a6c5455bbd.tar.zst 42-cub3d-6776a1f3491663c85480326e0d01f9a6c5455bbd.zip |
Tons of changes
Diffstat (limited to 'src/ft_get_tex.c')
-rw-r--r-- | src/ft_get_tex.c | 77 |
1 files changed, 76 insertions, 1 deletions
diff --git a/src/ft_get_tex.c b/src/ft_get_tex.c index d38e494..5bd7a4f 100644 --- a/src/ft_get_tex.c +++ b/src/ft_get_tex.c @@ -1,7 +1,82 @@ #include <libft.h> #include <cub3d.h> +#include <stdlib.h> + +static int +ft_get_tex_no(int fd, t_win *wlist) +{ + char *line; + char **words; + size_t len; + + get_next_line(fd, &line); + if (!(words = ft_split(line, ' '))) + return (ft_exit(5, wlist)); + if (!(*words) || ft_strcmp(*words, "NO") + || !(*(words + 1)) || (*(words + 2))) + return (ft_map_error(2, wlist)); + ft_memdel(wlist->clist->no_tex_path); + len = ft_strlen(*(words + 1)); + if (!(wlist->clist->no_tex_path = (char*)malloc((len + 1) * sizeof(char)))) + return (-1); + ft_strlcpy(wlist->clist->no_tex_path, *(words + 1), len + 1); + ft_free_words(words); + ft_memdel(line); + return (0); +} + +static int +ft_get_tex_so(int fd, t_win *wlist) +{ + char *line; + char **words; + size_t len; + + get_next_line(fd, &line); + if (!(words = ft_split(line, ' '))) + return (ft_exit(5, wlist)); + if (!(*words) || ft_strcmp(*words, "SO") + || !(*(words + 1)) || (*(words + 2))) + return (ft_map_error(3, wlist)); + ft_memdel(wlist->clist->so_tex_path); + len = ft_strlen(*(words + 1)); + if (!(wlist->clist->so_tex_path = (char*)malloc((len + 1) * sizeof(char)))) + return (-1); + ft_strlcpy(wlist->clist->so_tex_path, *(words + 1), len + 1); + ft_free_words(words); + ft_memdel(line); + return (0); +} + +static int +ft_get_tex_we(int fd, t_win *wlist) +{ + char *line; + char **words; + size_t len; + + get_next_line(fd, &line); + if (!(words = ft_split(line, ' '))) + return (ft_exit(5, wlist)); + if (!(*words) || ft_strcmp(*words, "WE") + || !(*(words + 1)) || (*(words + 2))) + return (ft_map_error(4, wlist)); + ft_memdel(wlist->clist->we_tex_path); + len = ft_strlen(*(words + 1)); + if (!(wlist->clist->we_tex_path = (char*)malloc((len + 1) * sizeof(char)))) + return (-1); + ft_strlcpy(wlist->clist->we_tex_path, *(words + 1), len + 1); + ft_free_words(words); + ft_memdel(line); + return (0); +} int -ft_get_tex(int fd, t_cub *clist) +ft_get_tex(int fd, t_win *wlist) { + if (ft_get_tex_no(fd, wlist) < 0 || + ft_get_tex_so(fd, wlist) < 0 || + ft_get_tex_we(fd, wlist) < 0) + return (-1); + return (0); } |