From d5e6f1b3182816c5366515521413a5f837e7096d Mon Sep 17 00:00:00 2001
From: JozanLeClerc <bousset.rudy@gmail.com>
Date: Wed, 4 Mar 2020 00:36:59 +0100
Subject: The surrounds

---
 src/ft_check_map_surrounds.c | 46 ++++++++++++++++++++++++++++++++++++++++++++
 src/ft_get_map_dims.c        |  3 ---
 src/ft_parse_map.c           |  1 +
 3 files changed, 47 insertions(+), 3 deletions(-)
 create mode 100644 src/ft_check_map_surrounds.c

(limited to 'src')

diff --git a/src/ft_check_map_surrounds.c b/src/ft_check_map_surrounds.c
new file mode 100644
index 0000000..8c38a85
--- /dev/null
+++ b/src/ft_check_map_surrounds.c
@@ -0,0 +1,46 @@
+/* ************************************************************************** */
+/*                                                                            */
+/*                                                        :::      ::::::::   */
+/*   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>
+
+void
+	ft_check_map_surrounds(t_map *ml, t_cub *cl)
+{
+	size_t	y;
+	size_t	x;
+
+	(void)ml;
+	y = 0;
+	x = 0;
+	while (ml->map[y])
+	{
+		while (ml->map[y][x])
+		{
+			if (ft_ischarset("02NESWL", ml->map[y][x]))
+			{
+				if (
+		ft_ischarset(" \0", ml->map[y + 1][x]) ||
+		ft_ischarset(" \0", ml->map[y - 1][x]) ||
+		ft_ischarset(" \0", ml->map[y][x + 1]) ||
+		ft_ischarset(" \0", ml->map[y][x - 1])
+					)
+					ft_map_error(FT_ERR_MAP_WALLS, cl);
+			}
+			x++;
+		}
+		x = 0;
+		y++;
+	}
+}
diff --git a/src/ft_get_map_dims.c b/src/ft_get_map_dims.c
index a26a891..281f2fb 100644
--- a/src/ft_get_map_dims.c
+++ b/src/ft_get_map_dims.c
@@ -11,9 +11,6 @@
 /* ************************************************************************** */
 
 #include <libft.h>
-#include <cub3d.h>
-#include <stdlib.h>
-#include <stddef.h>
 #include <stdint.h>
 
 size_t
diff --git a/src/ft_parse_map.c b/src/ft_parse_map.c
index 0d54c6f..eb62f3f 100644
--- a/src/ft_parse_map.c
+++ b/src/ft_parse_map.c
@@ -114,6 +114,7 @@ void
 	if (ft_get_map_core(fd, clist) < 0)
 		ft_map_error(clist->errmsg, clist);
 	ft_check_map_last_line(clist);
+	ft_check_map_surrounds(&clist->mlist, clist);
 	ft_print_map(&clist->mlist);
 	ft_get_player_spawn(&clist->plist, clist);
 	ft_get_nlvl_pos(&clist->mlist);
-- 
cgit v1.2.3