Defer title start in intro responder to ticker

Fixes KartKrew/Kart#731
This commit is contained in:
Eidolon 2023-10-22 17:56:16 -05:00
parent 9c585e35de
commit d32823bac8
4 changed files with 24 additions and 2 deletions

View file

@ -1075,6 +1075,8 @@ void D_ClearState(void)
wipegamestate = GS_NULL;
}
static boolean g_deferredtitle = false;
//
// D_StartTitle
//
@ -1085,6 +1087,17 @@ void D_StartTitle(void)
D_ClearState();
F_StartTitleScreen();
M_ClearMenus(false);
g_deferredtitle = true;
}
void D_SetDeferredStartTitle(boolean deferred)
{
g_deferredtitle = true;
}
boolean D_IsDeferredStartTitle(void)
{
return g_deferredtitle;
}
//

View file

@ -59,6 +59,8 @@ const char *D_Home(void);
//
void D_ClearState(void);
void D_StartTitle(void);
void D_SetDeferredStartTitle(boolean deferred);
boolean D_IsDeferredStartTitle(void);
#ifdef __cplusplus
} // extern "C"

View file

@ -39,6 +39,7 @@
#include "p_setup.h"
#include "st_stuff.h" // hud hiding
#include "fastcmp.h"
#include "r_fps.h"
#include "lua_hud.h"
#include "lua_hook.h"
@ -385,6 +386,12 @@ void F_IntroTicker(void)
timetonext--;
if (D_IsDeferredStartTitle())
{
D_StartTitle();
return;
}
if (intro_scenenum == 0)
{
if (timetonext <= 0)

View file

@ -1339,7 +1339,7 @@ boolean G_Responder(event_t *ev)
{
if (F_IntroResponder(ev))
{
D_StartTitle();
D_SetDeferredStartTitle(true);
return true;
}
}
@ -5437,7 +5437,7 @@ void G_SaveGameData(void)
}
}
}
WRITEUINT16(save.p, gamedata->numspraycans); // 2
// gamedata->numspraycans * (2 + 4)