Reset *all* First Boot specific state in M_ClearSecrets, not M_ClearStats

Guarantees wiping gamedata will send you through goner again, since otherwise why are we wiping gonerlevel
Also fixes restarting Goner's audio
This commit is contained in:
toaster 2025-07-24 19:56:18 +01:00
parent 56df65d18c
commit f8aaa43f73
2 changed files with 7 additions and 3 deletions

View file

@ -660,10 +660,7 @@ void M_ClearStats(void)
gamedata->chaokeytutorial = false;
gamedata->majorkeyskipattempted = false;
gamedata->enteredtutorialchallenge = false;
gamedata->finishedtutorialchallenge = false;
gamedata->sealedswapalerted = false;
gamedata->tutorialdone = false;
gamedata->playgroundroute = false;
gamedata->musicstate = GDMUSIC_NONE;
gamedata->importprofilewins = false;
@ -778,6 +775,10 @@ void M_ClearSecrets(void)
gamedata->chaokeys = GDINIT_CHAOKEYS;
gamedata->prisoneggstothispickup = GDINIT_PRISONSTOPRIZE;
gamedata->tutorialdone = false;
gamedata->playgroundroute = false;
gamedata->finishedtutorialchallenge = false;
gamedata->gonerlevel = GDGONER_INIT;
}

View file

@ -83,6 +83,7 @@ static void M_GonerAccessibilityTick(void)
if (!menumessage.active && !menutransition.dest)
{
M_SetupNextMenu(&MAIN_GonerDef, true);
M_GonerTick(); // tick once, for safety
}
return;
@ -984,6 +985,8 @@ void M_GonerTick(void)
{.cvar = &cv_dummyextraspassword}, 0, 0};
#endif
MAIN_Goner[0].mvar2 = 0;
if (gamedata->gonerlevel < GDGONER_INTRO)
gamedata->gonerlevel = GDGONER_INTRO;