-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit.c
executable file
·102 lines (95 loc) · 3.47 KB
/
init.c
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* init.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: jchapell <[email protected]> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/05/14 14:22:18 by lebojo #+# #+# */
/* Updated: 2023/06/01 03:00:27 by jchapell ### ########.fr */
/* */
/* ************************************************************************** */
#include "inc/proto.h"
void init_player_frames(t_level *l)
{
l->tx.player[0] = path_to_image(l, "./assets/player_frames/player_1.xpm");
l->tx.player[1] = path_to_image(l, "./assets/player_frames/player_2.xpm");
l->tx.player[2] = path_to_image(l, "./assets/player_frames/player_3.xpm");
l->tx.player[3] = path_to_image(l, "./assets/player_frames/player_4.xpm");
l->tx.pf.nb = 0;
l->tx.pf.max = 3;
}
void init_coins_frames(t_level *l)
{
l->tx.coins[0] = path_to_image(l, "./assets/coins_frames/coins_1.xpm");
l->tx.coins[1] = path_to_image(l, "./assets/coins_frames/coins_2.xpm");
l->tx.coins[2] = path_to_image(l, "./assets/coins_frames/coins_3.xpm");
l->tx.coins[3] = path_to_image(l, "./assets/coins_frames/coins_4.xpm");
l->tx.coins[4] = path_to_image(l, "./assets/coins_frames/coins_5.xpm");
l->tx.coins[5] = path_to_image(l, "./assets/coins_frames/coins_6.xpm");
l->tx.coins[6] = path_to_image(l, "./assets/coins_frames/coins_7.xpm");
l->tx.coins[7] = path_to_image(l, "./assets/coins_frames/coins_8.xpm");
l->tx.cf.nb = 0;
l->tx.cf.max = 7;
}
void init_tx(t_level *l)
{
init_player_frames(l);
init_coins_frames(l);
l->tx.empty[0] = path_to_image(l, "./assets/floor.xpm");
l->tx.empty[1] = path_to_image(l, "./assets/floor2.xpm");
l->tx.wall = path_to_image(l, "./assets/wall.xpm");
l->tx.enemy = path_to_image(l, "./assets/enemy.xpm");
l->tx.exit = path_to_image(l, "./assets/exit.xpm");
l->tx.blck = path_to_image(l, "./assets/blck.xpm");
l->tx.pb = path_to_image(l, "./assets/start_title.xpm");
l->tx.qb = path_to_image(l, "./assets/quit_title.xpm");
l->tx.logo = path_to_image(l, "./assets/logo.xpm");
l->tx.width = 32;
}
void init_level(t_level *l)
{
l->time = 0;
l->data.coins = 'C';
l->data.empty = '0';
l->data.wall = '1';
l->data.exit = 'E';
l->data.player = 'P';
l->data.enemy = 'V';
set_vector(&l->data.size, -1, 1);
l->data.coins_max = 0;
l->player.coins = 0;
l->player.move = 0;
set_vector(&l->player.vel, 0, 0);
l->player.pos.x = -1;
l->player.ls_position = 0;
l->player.max_level = 1;
l->nb_col = 0;
l->nb_en = 0;
l->collision_map = malloc(sizeof(t_vector));
init_tx(l);
info("Game initiated");
}
void init_ls(t_level *l)
{
int i;
char *tmp;
t_vector pos;
i = -1;
set_vector(&pos, 80, 100);
while (++i <= 9)
{
tmp = add_str(add_str("./assets/09/n", ft_itoa(i), 2), ".xpm", 1);
l->ls_09[i] = path_to_image(l, tmp);
free(tmp);
tmp = add_str("./assets/09/darker/n", ft_itoa(i), 2);
tmp = add_str(tmp, ".xpm", 1);
l->ls_09_dark[i] = path_to_image(l, tmp);
free(tmp);
if (i % 3 == 0)
set_vector(&pos, 80, pos.y + 50);
else
pos.x += 80;
l->ls_pos[i] = pos;
}
}