/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_bad_boy_actions.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 #include void ft_bb_wait(t_bad_boy *bl, t_sprite *sl, t_map *ml) { (void)sl; (void)ml; bl->does = 0; } static void ft_bb_collision(double old_y, double old_x, t_sprite *sl, t_map *ml) { if (!ft_ischarset("0e", ml->map[(uint64_t)old_y][(uint64_t)old_x])) { sl->s_pos_x = old_x; sl->s_pos_y = old_y; } } void ft_bb_walk(t_bad_boy *bl, t_sprite *sl, t_map *ml) { int8_t r_x; int8_t r_y; const double old_x = sl->s_pos_x; const double old_y = sl->s_pos_y; if (FT_OS == 2) { r_x = (random() % 2 == 1) ? (1) : (-1); r_y = (random() % 2 == 1) ? (1) : (-1); } else { r_x = (rand() % 2 == 1) ? (1) : (-1); r_y = (rand() % 2 == 1) ? (1) : (-1); } sl->s_pos_x += (0.1 * r_x); sl->s_pos_y += (0.1 * r_y); ft_bb_collision(old_y, old_x, sl, ml); ml->map[lround(old_y)][lround(old_x)] = '0'; ml->map[lround(sl->s_pos_y)][lround(sl->s_pos_x)] = 'e'; bl->does = 1; } void ft_bb_fire(t_bad_boy *bl, t_sprite *sl, t_map *ml) { (void)sl; (void)ml; bl->does = 2; }