diff options
Diffstat (limited to '')
-rw-r--r-- | src/ft_check_map_line.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/ft_check_map_line.c b/src/ft_check_map_line.c new file mode 100644 index 0000000..1c8c6c6 --- /dev/null +++ b/src/ft_check_map_line.c @@ -0,0 +1,49 @@ +#include <libft.h> +#include <cub3d.h> +#include <stdint.h> + +size_t +ft_get_line_len(char *line) +{ + size_t i; + size_t j; + + i = 0; + j = 0; + while (line[i]) + { + if (line[i] == ' ') + j++; + i++; + } + return (i - j); +} + +int8_t +ft_check_map_line(char *line, uint8_t l, t_cub *clist) +{ + size_t i; + + i = 0; + while (line[i]) + { + if (l != 1) + { + if (!ft_ischarset("012NSEW ", line[i])) + return (-1); + if (ft_ischarset("NSEW", line[i])) + clist->nsew += 1; + if (clist->nsew > 1) + return (-1); + } + else + { + if (!ft_ischarset("1 ", line[i])) + return (-1); + } + i++; + } + if (line[0] != '1' || line[i - 1] != '1') + return (-1); + return (0); +} |