aboutsummaryrefslogtreecommitdiffstats
path: root/src/ft_check_map_surrounds.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ft_check_map_surrounds.c')
-rw-r--r--src/ft_check_map_surrounds.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/ft_check_map_surrounds.c b/src/ft_check_map_surrounds.c
new file mode 100644
index 0000000..8122cc3
--- /dev/null
+++ b/src/ft_check_map_surrounds.c
@@ -0,0 +1,55 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_check_map_surrounds.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/02/14 17:28:34 by rbousset #+# #+# */
+/* Updated: 2020/02/14 17:28:37 by rbousset ### ########lyon.fr */
+/* */
+/* ************************************************************************** */
+
+#include <libft.h>
+#include <cub3d.h>
+#include <stddef.h>
+#include <stdint.h>
+
+static int8_t
+ ft_wall_check(size_t y, size_t x, char **map)
+{
+ if (map[y + 1][x] == ' ' ||
+ map[y - 1][x] == ' ' ||
+ map[y][x + 1] == ' ' ||
+ map[y][x - 1] == ' ' ||
+ map[y + 1][x] == '\0' ||
+ map[y - 1][x] == '\0' ||
+ map[y][x + 1] == '\0' ||
+ map[y][x - 1] == '\0')
+ return (-1);
+ return (0);
+}
+
+void
+ ft_check_map_surrounds(t_map *ml, t_cub *cl)
+{
+ size_t y;
+ size_t x;
+
+ y = 0;
+ x = 0;
+ while (ml->map[y])
+ {
+ while (ml->map[y][x])
+ {
+ if (ft_ischarset(FT_CHRST_MAP_NON_WALL, ml->map[y][x]))
+ {
+ if (ft_wall_check(y, x, ml->map) < 0)
+ ft_map_error(FT_ERR_MAP_WALLS, cl);
+ }
+ x++;
+ }
+ x = 0;
+ y++;
+ }
+}