1
0
Fork 0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-12-23 10:09:43 +01:00

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.
This commit is contained in:
Misa 2020-04-15 19:38:42 -07:00 committed by Ethan Lee
parent 4f6835c485
commit 678ade88b9
2 changed files with 21 additions and 71 deletions

View file

@ -6939,22 +6939,30 @@ void Game::createmenu( std::string t )
createmenu("unlockintermission"); createmenu("unlockintermission");
savemystats = true; savemystats = true;
} }
//ok, secret lab! no notification, but test:
else if (unlock[8])
{
createmenu("playsecretlab");
}
else else
{ {
option("continue"); option("continue");
//ok, secret lab! no notification, but test:
if (unlock[8])
{
option("secret lab");
}
option("play modes"); option("play modes");
option("new game"); option("new game");
option("return"); option("return");
if (unlock[8])
{
menuxoff = -40;
menuyoff = -30;
}
else
{
menuxoff = -20; menuxoff = -20;
menuyoff = -40; menuyoff = -40;
} }
} }
} }
}
else if (t == "unlocktimetrial" else if (t == "unlocktimetrial"
|| t == "unlocktimetrials" || t == "unlocktimetrials"
|| t == "unlocknodeathmode" || t == "unlocknodeathmode"
@ -6965,16 +6973,6 @@ void Game::createmenu( std::string t )
menuxoff = 20; menuxoff = 20;
menuyoff = 70; 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") else if (t == "newgamewarning")
{ {
option("start new game"); option("start new game");

View file

@ -886,6 +886,8 @@ void menuactionpress()
} }
else if (game.currentmenuname == "play") else if (game.currentmenuname == "play")
{ {
//Do we have the Secret Lab option?
int offset = game.unlock[8] ? 0 : -1;
if (game.currentmenuoption == 0) if (game.currentmenuoption == 0)
{ {
//continue //continue
@ -911,57 +913,7 @@ void menuactionpress()
map.settowercolour(3); map.settowercolour(3);
} }
} }
else if (game.currentmenuoption == 1) else if (game.currentmenuoption == 1 && game.unlock[8])
{
//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)
{ {
if(!map.invincibility){ if(!map.invincibility){
game.mainmenu = 11; game.mainmenu = 11;
@ -971,21 +923,21 @@ void menuactionpress()
music.playef(2); music.playef(2);
} }
} }
else if (game.currentmenuoption == 2) else if (game.currentmenuoption == offset+2)
{ {
//play modes //play modes
music.playef(11); music.playef(11);
game.createmenu("playmodes"); game.createmenu("playmodes");
map.nexttowercolour(); map.nexttowercolour();
} }
else if (game.currentmenuoption == 3) else if (game.currentmenuoption == offset+3)
{ {
//newgame //newgame
music.playef(11); music.playef(11);
game.createmenu("newgamewarning"); game.createmenu("newgamewarning");
map.nexttowercolour(); map.nexttowercolour();
} }
else if (game.currentmenuoption == 4) else if (game.currentmenuoption == offset+4)
{ {
//back //back
music.playef(11); music.playef(11);