Fix going to wrong menu upon quit

The problem was, if you were in a time trial and quit, it wouldn't go
back to selecting your current time trial. But also if you were in a
custom level and quit, you would still be on the playerworlds menu.

The problem was twofold: first, I simply wasn't doing the custommode
check. But secondly, I couldn't use map.custommode directly, because
whenever you quit the game aggressively hardreset()s everything
immediately when you press ACTION.

There's probably a good reason for that aggressive hardreset(), so I
won't touch that hardreset() in any way. Instead, I had to introduce two
kludge variables wasintimetrial and wasincustommode to Game, and use
those to do the check proper.
This commit is contained in:
Misa
2020-04-17 12:06:37 -07:00
committed by Ethan Lee
parent 995dc3940a
commit b02c4aac78
3 changed files with 13 additions and 1 deletions

View File

@@ -232,6 +232,9 @@ void Game::init(void)
customleveltitle="";
createmenu(Menu::mainmenu);
wasintimetrial = false;
wasincustommode = false;
deathcounts = 0;
gameoverdelay = 0;
frames = 0;
@@ -1341,10 +1344,13 @@ void Game::updatestate()
//Don't be stuck on the summary screen,
//or "who do you want to play the level with?"
//or "do you want cutscenes?"
if (!intimetrial)
//or the confirm-load-quicksave menu
if ((!wasintimetrial && !wasincustommode) || currentmenuname == Menu::quickloadlevel)
{
returnmenu();
}
wasintimetrial = false;
wasincustommode = false;
state = 0;
break;