mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2026-01-29 17:38:16 +03:00
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:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user