diff options
Diffstat (limited to 'src/ft_get_sprite_spawns.c')
| -rw-r--r-- | src/ft_get_sprite_spawns.c | 73 | 
1 files changed, 73 insertions, 0 deletions
| diff --git a/src/ft_get_sprite_spawns.c b/src/ft_get_sprite_spawns.c new file mode 100644 index 0000000..3a44f56 --- /dev/null +++ b/src/ft_get_sprite_spawns.c @@ -0,0 +1,73 @@ +/* ************************************************************************** */ +/*                                                                            */ +/*                                                        :::      ::::::::   */ +/*   ft_get_sprite_spawns.c                             :+:      :+:    :+:   */ +/*                                                    +:+ +:+         +:+     */ +/*   By: rbousset <marvin@42.fr>                    +#+  +:+       +#+        */ +/*                                                +#+#+#+#+#+   +#+           */ +/*   Created: 2020/02/14 17:28:51 by rbousset          #+#    #+#             */ +/*   Updated: 2020/02/14 17:28:51 by rbousset         ###   ########lyon.fr   */ +/*                                                                            */ +/* ************************************************************************** */ + +#include <libft.h> +#include <cub3d.h> +#include <stdint.h> +#include <stdio.h> + +void +	ft_get_next_sprite(t_cub *clist, int s_n, char c, size_t x) +{ +	size_t	y; +	uint8_t i; + +	y = 0; +	i = 0; +	while (clist->mlist.map[++y]) +	{ +		while (clist->mlist.map[y][++x]) +		{ +			if (clist->mlist.map[y][x] == c) +			{ +				clist->mlist.sprite_nbr++; +				clist->sprites[s_n][i].s_pos_x = x; +				clist->sprites[s_n][i].s_pos_y = y; +				i++; +			} +		} +		x = 0; +	} +	if (clist->sprites[s_n][i - 1].s_pos_x != 0) +	{ +		ft_get_next_sprite(clist, s_n + 1, c + 1, 0); +	} +} + +void +	ft_get_sprite_spawn(t_cub *clist) +{ +	size_t	x; +	size_t	y; +	uint8_t i; + +	x = 1; +	y = 1; +	i = 0; +	while (clist->mlist.map[y]) +	{ +		while (clist->mlist.map[y][x]) +		{ +			if (ft_ischarset("2", clist->mlist.map[y][x])) +			{ +				clist->mlist.sprite_nbr++; +				clist->sprites[0][i].s_pos_x = x; +				clist->sprites[0][i].s_pos_y = y; +				i++; +				ft_get_next_sprite(clist, 1, '3', 0); +			} +			x++; +		} +		x = 1; +		y++; +	} +} | 
