/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_find_item.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: rbousset +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/17 20:06:26 by rbousset #+# #+# */ /* Updated: 2020/02/17 20:06:29 by rbousset ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include #include #include static uint16_t ft_fetch_heals_id(uint64_t pos_y, uint64_t pos_x, t_cub *cl) { uint16_t id; id = 0; while (id <= 64) { if (cl->heals[id].s_pos_y == pos_y && cl->heals[id].s_pos_x == pos_x) return (id); id++; } return (0); } void ft_find_item(t_player *pl, t_map *ml, t_cub *cl) { uint16_t id; if (ft_ischarset(FT_CHRST_ITEM, ml->map[(uint64_t)pl->pos_y][(uint64_t)pl->pos_x])) { if (ml->map[(uint64_t)pl->pos_y][(uint64_t)pl->pos_x] == '+' && pl->life < 100) { pl->life += FT_HEAL_PACK_AMOUNT; pl->life = (pl->life > 100) ? (100) : (pl->life); ml->map[(uint64_t)pl->pos_y][(uint64_t)pl->pos_x] = '0'; id = ft_fetch_heals_id((uint64_t)pl->pos_y, (uint64_t)pl->pos_x, cl); cl->heals[id].s_pos_x = 0; cl->heals[id].s_pos_y = 0; /* TODO: ft_sfx_heal(3) */ } } }