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; wipegamestate = GS_NULL;
} }
static boolean g_deferredtitle = false;
// //
// D_StartTitle // D_StartTitle
// //
@ -1085,6 +1087,17 @@ void D_StartTitle(void)
D_ClearState(); D_ClearState();
F_StartTitleScreen(); F_StartTitleScreen();
M_ClearMenus(false); 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_ClearState(void);
void D_StartTitle(void); void D_StartTitle(void);
void D_SetDeferredStartTitle(boolean deferred);
boolean D_IsDeferredStartTitle(void);
#ifdef __cplusplus #ifdef __cplusplus
} // extern "C" } // extern "C"

View file

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

View file

@ -1339,7 +1339,7 @@ boolean G_Responder(event_t *ev)
{ {
if (F_IntroResponder(ev)) if (F_IntroResponder(ev))
{ {
D_StartTitle(); D_SetDeferredStartTitle(true);
return true; return true;
} }
} }