-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinitializer.c
114 lines (98 loc) · 2.83 KB
/
initializer.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
103
104
105
106
107
108
109
110
111
112
113
114
/*
** EPITECH PROJECT, 2018
** rpg
** File description:
** struct_utils functions
*/
# include "rpg.h"
void configure_textures2(battle_t *btl)
{
sfVector2f pos = { 0, 0 };
sfVector2f size = { 1920, 1080 };
btl->background = sfRectangleShape_create();
sfRectangleShape_setPosition(btl->background, pos);
sfRectangleShape_setSize(btl->background, size);
sfRectangleShape_setTexture(btl->background, btl->texture[4], sfTrue);
}
void configure_textures(rpg_t *rpg, battle_t *btl)
{
sfVector2f pos = { 30, 10 };
sfVector2f size = { 20, 20 };
btl->icone = sfRectangleShape_create();
sfRectangleShape_setPosition(btl->icone, pos);
sfRectangleShape_setSize(btl->icone, size);
btl->texture = malloc(sizeof(sfTexture *) * 8);
if (btl->texture != NULL) {
btl->texture[0] = get_texture(rpg, "hp");
btl->texture[1] = get_texture(rpg, "dmg");
btl->texture[2] = get_texture(rpg, "armor");
btl->texture[3] = get_texture(rpg, "arrow");
btl->texture[4] = get_texture(rpg, "fight1");
btl->texture[5] = get_texture(rpg, "fight2");
btl->texture[6] = get_texture(rpg, "fight3");
btl->texture[7] = NULL;
}
configure_textures2(btl);
}
bool configure_internal_battle(rpg_t *rpg)
{
sfVector2f pos = { 1600, 50 };
rpg->battle->text = create_text(rpg->font, "Interface", pos, sfWhite);
for (int i = 0; i < 10; i++) {
rpg->battle->map[i] = malloc(sizeof(int) * 12);
if (rpg->battle->map[i] == NULL)
return (false);
for (int j = 0; j < 12; j++)
rpg->battle->map[i][j] = 0;
}
rpg->battle->run = false;
if (configure_battle_fights(rpg) != 0)
return (false);
configure_textures(rpg, rpg->battle);
return (true);
}
bool fill_struct_values(rpg_t *rpg)
{
rpg->capture = NULL;
rpg->font = sfFont_createFromFile("assets/fonts/Vecna.otf");
rpg->text = sfText_create();
sfText_setFont(rpg->text, rpg->font);
rpg->saves = NULL;
rpg->battle = malloc(sizeof(battle_t));
if (rpg->battle == NULL)
return (false);
rpg->battle->fight = NULL;
rpg->battle->clock = sfClock_create();
rpg->battle->map = malloc(sizeof(int *) * 10);
if (rpg->battle->map == NULL)
return (false);
rpg->battle->id = 0;
rpg->battle->mouse.x = 0;
rpg->battle->mouse.y = 0;
rpg->battle->run = false;
rpg->battle->hero = NULL;
rpg->select_hovered = false;
return (configure_internal_battle(rpg));
}
rpg_t *configure_struct(void)
{
rpg_t *rpg = malloc(sizeof(rpg_t));
sfVideoMode mode = { 1920, 1080, 32 };
char *title = "Legacy Of The Kek | Menu Principal";
if (rpg == NULL)
return (NULL);
rpg->state = gameWait;
rpg->last_st = gameUnknown;
rpg->win = sfRenderWindow_create(mode, title, sfClose, NULL);
rpg->player = NULL;
rpg->clock = sfClock_create();
rpg->options.music_vol = 0;
rpg->options.sound_vol = 0;
rpg->assets = NULL;
rpg->btn = NULL;
rpg->slides = NULL;
rpg->sounds = NULL;
rpg->map_id = 0;
rpg->shape = sfRectangleShape_create();
return (rpg);
}