From 678ade88b91455ab37a496952c801271c87285cf Mon Sep 17 00:00:00 2001 From: Misa Date: Wed, 15 Apr 2020 19:38:42 -0700 Subject: [PATCH] De-duplicate "secret lab" menu option in "play" menu Instead of creating an entirely new menu for it, just dynamically add the Secret Lab menu option as needed. --- desktop_version/src/Game.cpp | 32 +++++++++---------- desktop_version/src/Input.cpp | 60 ++++------------------------------- 2 files changed, 21 insertions(+), 71 deletions(-) diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp index 54399926..bfe9a1f2 100644 --- a/desktop_version/src/Game.cpp +++ b/desktop_version/src/Game.cpp @@ -6939,19 +6939,27 @@ void Game::createmenu( std::string t ) createmenu("unlockintermission"); savemystats = true; } - //ok, secret lab! no notification, but test: - else if (unlock[8]) - { - createmenu("playsecretlab"); - } else { option("continue"); + //ok, secret lab! no notification, but test: + if (unlock[8]) + { + option("secret lab"); + } option("play modes"); option("new game"); option("return"); - menuxoff = -20; - menuyoff = -40; + if (unlock[8]) + { + menuxoff = -40; + menuyoff = -30; + } + else + { + menuxoff = -20; + menuyoff = -40; + } } } } @@ -6965,16 +6973,6 @@ void Game::createmenu( std::string t ) menuxoff = 20; menuyoff = 70; } - else if (t == "playsecretlab") - { - option("continue"); - option("secret lab"); - option("play modes"); - option("new game"); - option("return"); - menuxoff = -40; - menuyoff = -30; - } else if (t == "newgamewarning") { option("start new game"); diff --git a/desktop_version/src/Input.cpp b/desktop_version/src/Input.cpp index a57f23b0..1a1de624 100644 --- a/desktop_version/src/Input.cpp +++ b/desktop_version/src/Input.cpp @@ -886,6 +886,8 @@ void menuactionpress() } else if (game.currentmenuname == "play") { + //Do we have the Secret Lab option? + int offset = game.unlock[8] ? 0 : -1; if (game.currentmenuoption == 0) { //continue @@ -911,57 +913,7 @@ void menuactionpress() map.settowercolour(3); } } - else if (game.currentmenuoption == 1) - { - //play modes - music.playef(11); - game.createmenu("playmodes"); - map.nexttowercolour(); - } - else if (game.currentmenuoption == 2) - { - //newgame - music.playef(11); - game.createmenu("newgamewarning"); - map.nexttowercolour(); - } - else if (game.currentmenuoption == 3) - { - //back - music.playef(11); - game.createmenu("mainmenu"); - map.nexttowercolour(); - } - } - else if (game.currentmenuname == "playsecretlab") - { - //as above, except with an extra option... - if (game.currentmenuoption == 0) - { - //continue - //right, this depends on what saves you've got - if (game.telesummary == "") - { - //You at least have a quicksave, or you couldn't have gotten here - game.mainmenu = 2; - graphics.fademode = 2; - } - else if (game.quicksummary == "") - { - //You at least have a telesave, or you couldn't have gotten here - game.mainmenu = 1; - graphics.fademode = 2; - } - else - { - //go to a menu! - music.playef(11); - game.loadsummary(); //Prepare save slots to display - game.createmenu("continue"); - map.settowercolour(3); - } - } - else if (game.currentmenuoption == 1) + else if (game.currentmenuoption == 1 && game.unlock[8]) { if(!map.invincibility){ game.mainmenu = 11; @@ -971,21 +923,21 @@ void menuactionpress() music.playef(2); } } - else if (game.currentmenuoption == 2) + else if (game.currentmenuoption == offset+2) { //play modes music.playef(11); game.createmenu("playmodes"); map.nexttowercolour(); } - else if (game.currentmenuoption == 3) + else if (game.currentmenuoption == offset+3) { //newgame music.playef(11); game.createmenu("newgamewarning"); map.nexttowercolour(); } - else if (game.currentmenuoption == 4) + else if (game.currentmenuoption == offset+4) { //back music.playef(11);