mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2025-01-08 01:49:44 +01:00
Factor out slowdown/invincibility conds to function
This factors out the slowdown and invincibility conditionals to a function. This means less copy-pasted code, and it also conveys intent (that we don't want to allow competitive options if we have either of these cheats enabled). This function isn't implemented in the header because then we would have to include Map.h for map.invincibility, and transitive includes are evil. Although, map.invincibility ought to be on Game instead (it was only mapclass due to 2.2-and-previous argument passing), but that's a bunch of variable reshuffling that can be done later.
This commit is contained in:
parent
96488d27c8
commit
b3c2f56c79
4 changed files with 17 additions and 8 deletions
|
@ -6251,7 +6251,7 @@ void Game::createmenu( enum Menu::MenuName t, bool samemenu/*= false*/ )
|
||||||
//ok, secret lab! no notification, but test:
|
//ok, secret lab! no notification, but test:
|
||||||
if (unlock[8])
|
if (unlock[8])
|
||||||
{
|
{
|
||||||
option("secret lab", !map.invincibility && slowdown == 30);
|
option("secret lab", !nocompetitive());
|
||||||
}
|
}
|
||||||
option("play modes");
|
option("play modes");
|
||||||
if (save_exists())
|
if (save_exists())
|
||||||
|
@ -6285,9 +6285,9 @@ void Game::createmenu( enum Menu::MenuName t, bool samemenu/*= false*/ )
|
||||||
menuyoff = 64;
|
menuyoff = 64;
|
||||||
break;
|
break;
|
||||||
case Menu::playmodes:
|
case Menu::playmodes:
|
||||||
option("time trials", !map.invincibility && slowdown == 30);
|
option("time trials", !nocompetitive());
|
||||||
option("intermissions", unlock[16]);
|
option("intermissions", unlock[16]);
|
||||||
option("no death mode", unlock[17] && !map.invincibility && slowdown == 30);
|
option("no death mode", unlock[17] && !nocompetitive());
|
||||||
option("flip mode", unlock[18]);
|
option("flip mode", unlock[18]);
|
||||||
option("return to play menu");
|
option("return to play menu");
|
||||||
menuyoff = 8;
|
menuyoff = 8;
|
||||||
|
@ -6810,3 +6810,8 @@ bool Game::incompetitive(void)
|
||||||
{
|
{
|
||||||
return insecretlab || intimetrial || nodeathmode;
|
return insecretlab || intimetrial || nodeathmode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Game::nocompetitive(void)
|
||||||
|
{
|
||||||
|
return slowdown < 30 || map.invincibility;
|
||||||
|
}
|
||||||
|
|
|
@ -451,6 +451,10 @@ public:
|
||||||
return inintermission || insecretlab || intimetrial || nodeathmode;
|
return inintermission || insecretlab || intimetrial || nodeathmode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool incompetitive(void);
|
||||||
|
|
||||||
|
bool nocompetitive(void);
|
||||||
|
|
||||||
bool over30mode;
|
bool over30mode;
|
||||||
bool glitchrunnermode; // Have fun speedrunners! <3 Misa
|
bool glitchrunnermode; // Have fun speedrunners! <3 Misa
|
||||||
|
|
||||||
|
|
|
@ -1252,7 +1252,7 @@ static void menuactionpress(void)
|
||||||
}
|
}
|
||||||
else if (game.currentmenuoption == 1 && game.unlock[8])
|
else if (game.currentmenuoption == 1 && game.unlock[8])
|
||||||
{
|
{
|
||||||
if(!map.invincibility && game.slowdown == 30){
|
if(!game.nocompetitive()){
|
||||||
music.playef(11);
|
music.playef(11);
|
||||||
startmode(11);
|
startmode(11);
|
||||||
}else{
|
}else{
|
||||||
|
@ -1346,7 +1346,7 @@ static void menuactionpress(void)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Menu::playmodes:
|
case Menu::playmodes:
|
||||||
if (game.currentmenuoption == 0 && game.slowdown == 30 && !map.invincibility) //go to the time trial menu
|
if (game.currentmenuoption == 0 && !game.nocompetitive()) //go to the time trial menu
|
||||||
{
|
{
|
||||||
music.playef(11);
|
music.playef(11);
|
||||||
game.createmenu(Menu::timetrials);
|
game.createmenu(Menu::timetrials);
|
||||||
|
@ -1359,7 +1359,7 @@ static void menuactionpress(void)
|
||||||
game.createmenu(Menu::intermissionmenu);
|
game.createmenu(Menu::intermissionmenu);
|
||||||
map.nexttowercolour();
|
map.nexttowercolour();
|
||||||
}
|
}
|
||||||
else if (game.currentmenuoption == 2 && game.unlock[17] && game.slowdown == 30 && !map.invincibility) //start a game in no death mode
|
else if (game.currentmenuoption == 2 && game.unlock[17] && !game.nocompetitive()) //start a game in no death mode
|
||||||
{
|
{
|
||||||
music.playef(11);
|
music.playef(11);
|
||||||
game.createmenu(Menu::startnodeathmode);
|
game.createmenu(Menu::startnodeathmode);
|
||||||
|
|
|
@ -713,7 +713,7 @@ static void menurender(void)
|
||||||
graphics.Print( -1, 65, "Replay any level in the game in", tr, tg, tb, true);
|
graphics.Print( -1, 65, "Replay any level in the game in", tr, tg, tb, true);
|
||||||
graphics.Print( -1, 75, "a competitive time trial mode.", tr, tg, tb, true);
|
graphics.Print( -1, 75, "a competitive time trial mode.", tr, tg, tb, true);
|
||||||
|
|
||||||
if (game.slowdown < 30 || map.invincibility)
|
if (game.nocompetitive())
|
||||||
{
|
{
|
||||||
graphics.Print( -1, 105, "Time Trials are not available", tr, tg, tb, true);
|
graphics.Print( -1, 105, "Time Trials are not available", tr, tg, tb, true);
|
||||||
graphics.Print( -1, 115, "with slowdown or invincibility.", tr, tg, tb, true);
|
graphics.Print( -1, 115, "with slowdown or invincibility.", tr, tg, tb, true);
|
||||||
|
@ -734,7 +734,7 @@ static void menurender(void)
|
||||||
graphics.Print( -1, 65, "Play the entire game", tr, tg, tb, true);
|
graphics.Print( -1, 65, "Play the entire game", tr, tg, tb, true);
|
||||||
graphics.Print( -1, 75, "without dying once.", tr, tg, tb, true);
|
graphics.Print( -1, 75, "without dying once.", tr, tg, tb, true);
|
||||||
|
|
||||||
if (game.slowdown < 30 || map.invincibility)
|
if (game.nocompetitive())
|
||||||
{
|
{
|
||||||
graphics.Print( -1, 105, "No Death Mode is not available", tr, tg, tb, true);
|
graphics.Print( -1, 105, "No Death Mode is not available", tr, tg, tb, true);
|
||||||
graphics.Print( -1, 115, "with slowdown or invincibility.", tr, tg, tb, true);
|
graphics.Print( -1, 115, "with slowdown or invincibility.", tr, tg, tb, true);
|
||||||
|
|
Loading…
Reference in a new issue