/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_get_sprite_spawns.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: rbousset +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/14 17:28:51 by rbousset #+# #+# */ /* Updated: 2020/02/14 17:28:51 by rbousset ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include #include #include /* ** cl->sprite[] index summary ** -------------------------- ** 0: sprite 2 - tlist[4] ** 1: sprite 3 - tlist[8] ** 2: sprite 4 - tlist[9] ** 3: sprite 5 - tlist[10] ** 4: sprite 6 - tlist[11] ** 5: sprite 7 - tlist[12] ** 6: sprite 8 - tlist[13] ** 7: sprite 9 - tlist[14] ** 8: trap - tlist[15] ** 9: heal - tlist[17] ** 10: weapon one - tlist[18] ** 11: weapon two - tlist[19] ** 12: weapon three - tlist[20] */ void ft_get_next_sprite(t_cub *clist, int s_n, char c, size_t x) { size_t y; int16_t i; y = 0; i = 0; clist->mlist.sprite_nbr[s_n] = 0; while (clist->mlist.map[++y]) { while (clist->mlist.map[y][++x]) { if (clist->mlist.map[y][x] == c) { clist->mlist.sprite_nbr[s_n]++; 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 < 0) ? (0) : (i - 1)].s_pos_x != 0 && */ s_n + 1 <= 7) { 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; clist->mlist.sprite_nbr[0] = 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[0]++; 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++; } }