dev: reorganize global variables and constants
This commit is contained in:
parent
a395676ee9
commit
5992784dce
26 changed files with 401 additions and 356 deletions
|
|
@ -6,14 +6,19 @@
|
|||
/* By: mcolonna <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/04/16 20:02:29 by mcolonna #+# #+# */
|
||||
/* Updated: 2024/04/19 13:17:46 by mcolonna ### ########.fr */
|
||||
/* Updated: 2024/04/20 13:48:31 by mcolonna ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "includes.h"
|
||||
#include "gameover_utils.h"
|
||||
|
||||
static t_gameover_env g_gameover_env;
|
||||
static t_gameover_env *get_gameover_env(void)
|
||||
{
|
||||
static t_gameover_env v;
|
||||
|
||||
return (&v);
|
||||
}
|
||||
|
||||
static void gameover_byfirskattack_loop(void)
|
||||
{
|
||||
|
|
@ -21,25 +26,25 @@ static void gameover_byfirskattack_loop(void)
|
|||
|
||||
static void gameover_byfirskattack_draw(void)
|
||||
{
|
||||
void *const allsprites[][5] = {
|
||||
{&g_gameover_env.spr_snas, &g_gameover_env.spr_attack, NULL, NULL, NULL},
|
||||
{&g_gameover_env.spr_snas, &g_gameover_env.spr_explosion1, NULL, NULL,
|
||||
t_gameover_env *const env = get_gameover_env();
|
||||
void *const allsprites[][5] = {
|
||||
{&env->spr_snas, &env->spr_attack, NULL, NULL, NULL},
|
||||
{&env->spr_snas, &env->spr_explosion1, NULL, NULL,
|
||||
NULL},
|
||||
{&g_gameover_env.spr_explosion2, NULL, (void *)1, (void *)1, NULL},
|
||||
{NULL, NULL, (void *)1, (void *)1, &ask_retry},
|
||||
};
|
||||
void *const *sprites = allsprites[g_gameover_env.state];
|
||||
t_point p_gameover;
|
||||
t_point p_youded;
|
||||
{&env->spr_explosion2, NULL, (void *)1, (void *)1, NULL},
|
||||
{NULL, NULL, (void *)1, (void *)1, &ask_retry}};
|
||||
void *const *sprites = allsprites[env->state];
|
||||
t_point p_gameover;
|
||||
t_point p_youded;
|
||||
|
||||
p_gameover = point_init(145, 120);
|
||||
p_youded = point_init(145, 210);
|
||||
if (sprites[0])
|
||||
if (!sprite_draw(g_gameover_env.snaspos, sprites[0]))
|
||||
g_gameover_env.state++;
|
||||
if (!sprite_draw(env->snaspos, sprites[0]))
|
||||
env->state++;
|
||||
if (sprites[1])
|
||||
if (!sprite_draw(g_gameover_env.snaspos, sprites[1]))
|
||||
g_gameover_env.state++;
|
||||
if (!sprite_draw(env->snaspos, sprites[1]))
|
||||
env->state++;
|
||||
if (sprites[2])
|
||||
display_text(&p_gameover, TEXT_BIG_GAMEOVER);
|
||||
if (sprites[3])
|
||||
|
|
@ -50,11 +55,11 @@ static void gameover_byfirskattack_draw(void)
|
|||
|
||||
void gameover_byfirskattack(t_character *character)
|
||||
{
|
||||
t_gameover_env *const env = get_gameover_env();
|
||||
const t_point snas_p = room_find(snas_init);
|
||||
const t_spritesmap_id snas_sprite = character->sprites->still;
|
||||
|
||||
g_gameover_env.snaspos
|
||||
= point_subpoint(
|
||||
env->snaspos = point_subpoint(
|
||||
point_subpoint(
|
||||
point_multiply(snas_p, 50),
|
||||
g_env.camera.pos),
|
||||
|
|
@ -62,12 +67,12 @@ void gameover_byfirskattack(t_character *character)
|
|||
point_fromdirection(character->direction),
|
||||
character->walk_remaining_steps * 50 / character->walk_steps_nb
|
||||
));
|
||||
g_gameover_env.spr_snas = sprite_init(snas_sprite);
|
||||
g_gameover_env.spr_snas.index = character->direction;
|
||||
g_gameover_env.spr_attack = sprite_init(SPR_KNIFEATTACK);
|
||||
g_gameover_env.spr_explosion1 = sprite_init(SPR_EXPLOSION_1);
|
||||
g_gameover_env.spr_explosion2 = sprite_init(SPR_EXPLOSION_2);
|
||||
g_gameover_env.state = 0;
|
||||
g_loopfunctions.loop = gameover_byfirskattack_loop;
|
||||
g_loopfunctions.draw = gameover_byfirskattack_draw;
|
||||
env->spr_snas = sprite_init(snas_sprite);
|
||||
env->spr_snas.index = character->direction;
|
||||
env->spr_attack = sprite_init(SPR_KNIFEATTACK);
|
||||
env->spr_explosion1 = sprite_init(SPR_EXPLOSION_1);
|
||||
env->spr_explosion2 = sprite_init(SPR_EXPLOSION_2);
|
||||
env->state = 0;
|
||||
g_env.loopfunctions.loop = gameover_byfirskattack_loop;
|
||||
g_env.loopfunctions.draw = gameover_byfirskattack_draw;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue