diff options
Diffstat (limited to 'src/ft_get_sprite.c')
-rw-r--r-- | src/ft_get_sprite.c | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/ft_get_sprite.c b/src/ft_get_sprite.c index 10c6bdd..a158940 100644 --- a/src/ft_get_sprite.c +++ b/src/ft_get_sprite.c @@ -13,6 +13,38 @@ #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; + + x = 0; + 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); + clist->mlist.sprite_var++; + } +} void ft_get_sprite_spawn(t_cub *clist) @@ -31,9 +63,10 @@ void if (ft_ischarset("2", clist->mlist.map[y][x])) { clist->mlist.sprite_nbr++; - clist->sprites[i].s_pos_x = x; - clist->sprites[i].s_pos_y = y; + clist->sprites[0][i].s_pos_x = x; + clist->sprites[0][i].s_pos_y = y; i++; + ft_get_next_sprite(clist, 1, '3'); } x++; } |