diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp index 00569209..a987875e 100644 --- a/desktop_version/src/Game.cpp +++ b/desktop_version/src/Game.cpp @@ -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; diff --git a/desktop_version/src/Game.h b/desktop_version/src/Game.h index 0e23dd8e..e55df22e 100644 --- a/desktop_version/src/Game.h +++ b/desktop_version/src/Game.h @@ -245,6 +245,10 @@ public: int creditposx, creditposy, creditposdelay; + //Menu kludge... + bool wasintimetrial; + bool wasincustommode; + //Sine Wave Ninja Minigame bool swnmode; diff --git a/desktop_version/src/Input.cpp b/desktop_version/src/Input.cpp index 66271d3f..38c35b76 100644 --- a/desktop_version/src/Input.cpp +++ b/desktop_version/src/Input.cpp @@ -1958,6 +1958,8 @@ void mapinput() //This fixes an apparent frame flicker. FillRect(graphics.tempBuffer, 0x000000); if (game.intimetrial || game.insecretlab || game.nodeathmode) game.menukludge = true; + game.wasintimetrial = game.intimetrial; + game.wasincustommode = map.custommode; script.hardreset(); if(graphics.setflipmode) graphics.flipmode = true; graphics.fademode = 2;