Intro adjustments

- Force to play when selecting "START GAME" from the Goner Setup
- Make far shorter on the First Boot, obscuring the extended Kart Krew vroom, to prevent it playing identically twice
- Prevent skipping the intro at all if Ring Cup hasn't been unlocked
    - Both for the shortened initial startup and the START GAME first encounter
- It already clears dirmenu if relevant, don't do that twice
This commit is contained in:
toaster 2023-12-18 01:10:37 +00:00
parent fe669ff281
commit f5722b7569
3 changed files with 14 additions and 5 deletions

View file

@ -4795,9 +4795,6 @@ static void Command_Playintro_f(void)
if (netgame)
return;
if (dirmenu)
closefilemenu(true);
F_StartIntro();
}

View file

@ -303,6 +303,8 @@ static tic_t introscenetime[NUMINTROSCENES] =
// custom intros
void F_StartCustomCutscene(INT32 cutscenenum, boolean precutscene, boolean resetplayer);
static boolean skippableallowed = true;
void F_StartIntro(void)
{
if (gamestate)
@ -315,6 +317,11 @@ void F_StartIntro(void)
D_ClearState();
}
skippableallowed = (
gamestartchallenge >= MAXUNLOCKABLES
|| (gamedata && gamedata->unlocked[gamestartchallenge])
);
M_ClearMenus(false);
D_SetDeferredStartTitle(false);
@ -459,7 +466,7 @@ void F_IntroTicker(void)
timetonext--;
if (D_IsDeferredStartTitle())
if (skippableallowed && D_IsDeferredStartTitle())
{
D_StartTitle();
return;
@ -468,7 +475,10 @@ void F_IntroTicker(void)
if (timetonext <= 0)
{
intro_scenenum++;
if (intro_scenenum == NUMINTROSCENES)
if (intro_scenenum == (M_GameTrulyStarted()
? NUMINTROSCENES
: INTROSCENE_KREW)
)
{
D_StartTitle();
// Custom built fade to skip the to-black

View file

@ -5,6 +5,7 @@
#include "../m_cond.h"
#include "../r_skins.h"
#include "../s_sound.h"
#include "../f_finale.h"
#include "../music.h"
#include "../p_local.h" // P_AutoPause
#include "../st_stuff.h" // faceprefix
@ -1178,6 +1179,7 @@ static void M_GonerConclude(INT32 choice)
gamedata->gonerlevel = GDGONER_DONE;
F_StartIntro();
M_ClearMenus(true);
M_GonerResetText();
}