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

Move some options to a new menu, "advanced options"

VVVVVV's menus are kind of packed to the brim, so I thought it was time
to recategorize the menus a little bit. There's now a new "advanced
options" menu which holds the following options which were moved out of
graphic options, game options and especially accessibility options:

- toggle mouse
- unfocus pause
- fake load screen
- room name background
- glitchrunner mode

I also made the positioning of the titles and descriptions more
consistent, and made some options which were moved to the new menu not
so abbreviated ("load screen" and "room name bg")
This commit is contained in:
Dav999-v 2020-06-30 22:06:19 +02:00 committed by Ethan Lee
parent de2d6a1e86
commit a2d8e57af0
4 changed files with 124 additions and 90 deletions

View file

@ -7163,7 +7163,6 @@ void Game::createmenu( enum Menu::MenuName t, bool samemenu/*= false*/ )
option("toggle letterbox");
option("toggle filter");
option("toggle analogue");
option("toggle mouse");
option("toggle fps");
option("toggle vsync");
option("resize to nearest", graphics.screenbuffer->isWindowed);
@ -7207,7 +7206,7 @@ void Game::createmenu( enum Menu::MenuName t, bool samemenu/*= false*/ )
break;
case Menu::options:
option("accessibility options");
option("glitchrunner mode");
option("advanced options");
#if !defined(MAKEANDPLAY)
if (ingame_titlemode && unlock[18])
#endif
@ -7224,6 +7223,15 @@ void Game::createmenu( enum Menu::MenuName t, bool samemenu/*= false*/ )
option("soundtrack");
}
option("return");
menuyoff = 0;
break;
case Menu::advancedoptions:
option("toggle mouse");
option("unfocus pause");
option("fake load screen");
option("room name background");
option("glitchrunner mode");
option("return");
menuyoff = 0;
break;
@ -7233,11 +7241,8 @@ void Game::createmenu( enum Menu::MenuName t, bool samemenu/*= false*/ )
option("text outline");
option("invincibility", !ingame_titlemode || (!game.insecretlab && !game.intimetrial && !game.nodeathmode));
option("slowdown", !ingame_titlemode || (!game.insecretlab && !game.intimetrial && !game.nodeathmode));
option("unfocus pause");
option("load screen");
option("room name bg");
option("return");
menuyoff = -10;
menuyoff = 0;
break;
case Menu::controller:
option("analog stick sensitivity");

View file

@ -31,6 +31,7 @@ namespace Menu
ed_music,
ed_quit,
options,
advancedoptions,
accessibility,
controller,
cleardatamenu,

View file

@ -351,31 +351,19 @@ void menuactionpress()
game.currentmenuoption = 3;
break;
case 4:
//toggle mouse cursor
music.playef(11);
if (graphics.showmousecursor == true) {
SDL_ShowCursor(SDL_DISABLE);
graphics.showmousecursor = false;
}
else {
SDL_ShowCursor(SDL_ENABLE);
graphics.showmousecursor = true;
}
break;
case 5:
//toggle 30+ fps
music.playef(11);
game.over30mode = !game.over30mode;
game.savestats();
break;
case 6:
case 5:
//toggle vsync
music.playef(11);
graphics.vsync = !graphics.vsync;
graphics.processVsync();
game.savestats();
break;
case 7:
case 6:
// resize to nearest multiple
if (graphics.screenbuffer->isWindowed)
{
@ -478,6 +466,49 @@ void menuactionpress()
break;
}
break;
case Menu::advancedoptions:
switch (game.currentmenuoption)
{
case 0:
//toggle mouse cursor
music.playef(11);
if (graphics.showmousecursor == true) {
SDL_ShowCursor(SDL_DISABLE);
graphics.showmousecursor = false;
}
else {
SDL_ShowCursor(SDL_ENABLE);
graphics.showmousecursor = true;
}
break;
case 1:
// toggle unfocus pause
game.disablepause = !game.disablepause;
music.playef(11);
break;
case 2:
// toggle fake load screen
game.skipfakeload = !game.skipfakeload;
music.playef(11);
break;
case 3:
// toggle translucent roomname BG
graphics.translucentroomname = !graphics.translucentroomname;
music.playef(11);
break;
case 4:
// Glitchrunner mode
music.playef(11);
game.glitchrunnermode = !game.glitchrunnermode;
break;
case 5:
//back
music.playef(11);
game.returnmenu();
map.nexttowercolour();
break;
}
break;
case Menu::accessibility:
switch (game.currentmenuoption)
{
@ -543,21 +574,6 @@ void menuactionpress()
}
break;
case 5:
// toggle unfocus pause
game.disablepause = !game.disablepause;
music.playef(11);
break;
case 6:
// toggle fake load screen
game.skipfakeload = !game.skipfakeload;
music.playef(11);
break;
case 7:
// toggle translucent roomname BG
graphics.translucentroomname = !graphics.translucentroomname;
music.playef(11);
break;
case 8:
//back
music.playef(11);
game.returnmenu();
@ -596,9 +612,10 @@ void menuactionpress()
map.nexttowercolour();
break;
case 1:
// Glitchrunner mode
//advanced options
music.playef(11);
game.glitchrunnermode = !game.glitchrunnermode;
game.createmenu(Menu::advancedoptions);
map.nexttowercolour();
break;
case 2:
#if !defined(MAKEANDPLAY)

View file

@ -98,17 +98,10 @@ void menurender()
graphics.Print( -1, 75, "slowdown modes or invincibility", tr, tg, tb, true);
break;
case 1:
graphics.bigprint( -1, 30, "Glitchrunner Mode", tr, tg, tb, true);
graphics.Print( -1, 65, "Re-enable glitches that existed", tr, tg, tb, true);
graphics.Print( -1, 75, "in previous versions of the game", tr, tg, tb, true);
if (game.glitchrunnermode)
{
graphics.Print( -1, 95, "Glitchrunner mode is ON", tr, tg, tb, true);
}
else
{
graphics.Print( -1, 95, "Glitchrunner mode is OFF", tr/2, tg/2, tb/2, true);
}
graphics.bigprint( -1, 30, "Advanced Options", tr, tg, tb, true);
graphics.Print( -1, 65, "Hide the mouse cursor, remove", tr, tg, tb, true);
graphics.Print( -1, 75, "the loading screen, turn on", tr, tg, tb, true);
graphics.Print( -1, 85, "glitchrunner mode and more", tr, tg, tb, true);
break;
case 2:
#if !defined(MAKEANDPLAY)
@ -211,17 +204,6 @@ void menurender()
graphics.Print( -1, 85, "adjust the picture.", tr, tg, tb, true);
break;
case 4:
graphics.bigprint(-1, 30, "Toggle Mouse Cursor", tr, tg, tb, true);
graphics.Print(-1, 65, "Show/hide the system mouse cursor.", tr, tg, tb, true);
if (graphics.showmousecursor) {
graphics.Print(-1, 85, "Current mode: SHOW", tr, tg, tb, true);
}
else {
graphics.Print(-1, 85, "Current mode: HIDE", tr/2, tg/2, tb/2, true);
}
break;
case 5:
graphics.bigprint(-1, 30, "Toggle 30+ FPS", tr, tg, tb, true);
graphics.Print(-1, 65, "Change whether the game", tr, tg, tb, true);
graphics.Print(-1, 75, "runs at 30 or over 30 FPS.", tr, tg, tb, true);
@ -235,7 +217,7 @@ void menurender()
graphics.Print(-1, 95, "Current mode: Over 30 FPS", tr, tg, tb, true);
}
break;
case 6:
case 5:
graphics.bigprint(-1, 30, "Toggle VSync", tr, tg, tb, true);
graphics.Print(-1, 65, "Turn VSync on or off.", tr, tg, tb, true);
@ -248,7 +230,7 @@ void menurender()
graphics.Print(-1, 95, "Current mode: VSYNC ON", tr, tg, tb, true);
}
break;
case 7:
case 6:
graphics.bigprint(-1, 30, "Resize to Nearest", tr, tg, tb, true);
graphics.Print(-1, 65, "Resize to the nearest window size", tr, tg, tb, true);
graphics.Print(-1, 75, "that is of an integer multiple.", tr, tg, tb, true);
@ -436,6 +418,64 @@ void menurender()
}
break;
case Menu::advancedoptions:
switch (game.currentmenuoption)
{
case 0:
graphics.bigprint(-1, 30, "Toggle Mouse Cursor", tr, tg, tb, true);
graphics.Print(-1, 65, "Show/hide the system mouse cursor.", tr, tg, tb, true);
if (graphics.showmousecursor) {
graphics.Print(-1, 95, "Current mode: SHOW", tr, tg, tb, true);
}
else {
graphics.Print(-1, 95, "Current mode: HIDE", tr/2, tg/2, tb/2, true);
}
break;
case 1:
graphics.bigprint( -1, 30, "Unfocus Pause", tr, tg, tb, true);
graphics.Print( -1, 65, "Toggle if the game will pause", tr, tg, tb, true);
graphics.Print( -1, 75, "when the window is unfocused.", tr, tg, tb, true);
if (game.disablepause)
{
graphics.Print(-1, 95, "Unfocus pause is OFF", tr/2, tg/2, tb/2, true);
}
else
{
graphics.Print(-1, 95, "Unfocus pause is ON", tr, tg, tb, true);
}
break;
case 2:
graphics.bigprint(-1, 30, "Fake Load Screen", tr, tg, tb, true);
if (game.skipfakeload)
graphics.Print(-1, 65, "Fake loading screen is OFF", tr/2, tg/2, tb/2, true);
else
graphics.Print(-1, 65, "Fake loading screen is ON", tr, tg, tb, true);
break;
case 3:
graphics.bigprint(-1, 30, "Room Name BG", tr, tg, tb, true);
graphics.Print( -1, 65, "Lets you see through what is behind", tr, tg, tb, true);
graphics.Print( -1, 75, "the name at the bottom of the screen.", tr, tg, tb, true);
if (graphics.translucentroomname)
graphics.Print(-1, 95, "Room name background is TRANSLUCENT", tr/2, tg/2, tb/2, true);
else
graphics.Print(-1, 95, "Room name background is OPAQUE", tr, tg, tb, true);
break;
case 4:
graphics.bigprint( -1, 30, "Glitchrunner Mode", tr, tg, tb, true);
graphics.Print( -1, 65, "Re-enable glitches that existed", tr, tg, tb, true);
graphics.Print( -1, 75, "in previous versions of the game", tr, tg, tb, true);
if (game.glitchrunnermode)
{
graphics.Print( -1, 95, "Glitchrunner mode is ON", tr, tg, tb, true);
}
else
{
graphics.Print( -1, 95, "Glitchrunner mode is OFF", tr/2, tg/2, tb/2, true);
}
break;
}
break;
case Menu::accessibility:
switch (game.currentmenuoption)
@ -510,35 +550,6 @@ void menurender()
graphics.Print( -1, 105, "Game speed is at 40%", tr, tg, tb, true);
}
break;
case 5:
graphics.bigprint( -1, 40, "Unfocus Pause", tr, tg, tb, true);
graphics.Print( -1, 75, "Toggle if the game will pause", tr, tg, tb, true);
graphics.Print( -1, 85, "when you're unfocused.", tr, tg, tb, true);
if (game.disablepause)
{
graphics.Print(-1, 105, "Unfocus pause is OFF", tr/2, tg/2, tb/2, true);
}
else
{
graphics.Print(-1, 105, "Unfocus pause is ON", tr, tg, tb, true);
}
break;
case 6:
graphics.bigprint(-1, 30, "Fake Load Screen", tr, tg, tb, true);
if (game.skipfakeload)
graphics.Print(-1, 75, "Fake loading screen is OFF", tr/2, tg/2, tb/2, true);
else
graphics.Print(-1, 75, "Fake loading screen is ON", tr, tg, tb, true);
break;
case 7:
graphics.bigprint(-1, 30, "Room Name BG", tr, tg, tb, true);
graphics.Print( -1, 75, "Lets you see through what is behind", tr, tg, tb, true);
graphics.Print( -1, 85, "the name at the bottom of the screen.", tr, tg, tb, true);
if (graphics.translucentroomname)
graphics.Print(-1, 105, "Room name background is TRANSLUCENT", tr/2, tg/2, tb/2, true);
else
graphics.Print(-1, 105, "Room name background is OPAQUE", tr, tg, tb, true);
break;
}
break;
case Menu::playint1: