blob: 97dc486aa3e55ede629399ecbaf64d18dd226f07 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* badeline.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: kdx <kdx @student.42angouleme.fr +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/10/17 11:32:46 by kdx #+# #+# */
/* Updated: 2022/10/17 11:32:46 by kdx ### ########.fr */
/* */
/* ************************************************************************** */
#include "badeline.h"
#include "player.h"
#include "sprite.h"
#include "game.h"
#include <math.h>
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);
}
|