diff options
Diffstat (limited to '')
| -rw-r--r-- | src/ft_check_map_surrounds.c | 55 | 
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++; +	} +} | 
