/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* badeline.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: kdx void badeline_update(t_badeline *badeline) { int i; if (!badeline->active) return ; if (badeline->queue_size >= BADELINE_DELAY) { badeline->erase[0] = badeline->queue[0][0]; badeline->erase[1] = badeline->queue[0][1]; } i = 0; while (i < badeline->queue_size - 1) { badeline->queue[i][0] = badeline->queue[i + 1][0]; badeline->queue[i][1] = badeline->queue[i + 1][1]; i += 1; } badeline->queue[i][0] = badeline->follow->pos[0]; badeline->queue[i][1] = badeline->follow->pos[1]; badeline->queue_size += (badeline->queue_size < BADELINE_DELAY); } void badeline_erase(t_sily *sily, t_badeline *badeline) { if (badeline->erase[0] && badeline->erase[1]) player_erase(sily, badeline->erase); } void badeline_draw(t_sily *sily, t_badeline *badeline) { int x; int y; x = round(badeline->queue[0][0]); y = round(badeline->queue[0][1]); if (badeline->queue_size >= BADELINE_DELAY && x && y) sprite_draw(sily, sily->game->s_badeline, x, y); }