From 427f42c41885c29d6859ebd947817af10ebb09ee Mon Sep 17 00:00:00 2001
From: JozanLeClerc <bousset.rudy@gmail.com>
Date: Mon, 9 Mar 2020 15:10:56 +0100
Subject: Best parser

---
 src/ft_get_darkness.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

(limited to 'src/ft_get_darkness.c')

diff --git a/src/ft_get_darkness.c b/src/ft_get_darkness.c
index e9c3966..7f1bc00 100644
--- a/src/ft_get_darkness.c
+++ b/src/ft_get_darkness.c
@@ -10,10 +10,40 @@
 /*                                                                            */
 /* ************************************************************************** */
 
+#include <libft.h>
 #include <cub3d.h>
 
+static int8_t
+	ft_checkdigit(const char *word, t_cub *clist)
+{
+	size_t	i;
+
+	i = 0;
+	while (ft_isdigit(word[i]))
+		i++;
+	if (i != ft_strlen(word))
+	{
+		ft_sprintf(clist->errmsg, FT_ERR_SH_ALPHA);
+		return (-1);
+	}
+	return (0);
+}
+
 int8_t
 	ft_get_darkness(char **words, t_cub *clist)
 {
+	if (!(*words) || !words[1] || words[2])
+	{
+		ft_sprintf(clist->errmsg, FT_ERR_ARGS);
+		return (-1);
+	}
+	if (ft_checkdigit(words[1], clist))
+		return (-1);
+	if (ft_atoi(words[1]) < 0 || ft_atoi(words[1]) > 10)
+	{
+		ft_sprintf(clist->errmsg, FT_ERR_SH_RANGE);
+		return (-1);
+	}
+	clist->mlist.darklvl = ft_atoi(words[1]);
 	return (0);
 }
-- 
cgit v1.2.3