From a2d8e57af0a9408bb2880d4e767115ecb1f5bf79 Mon Sep 17 00:00:00 2001 From: Dav999-v Date: Tue, 30 Jun 2020 22:06:19 +0200 Subject: [PATCH] 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") --- desktop_version/src/Game.cpp | 17 +++-- desktop_version/src/Game.h | 1 + desktop_version/src/Input.cpp | 79 +++++++++++++--------- desktop_version/src/Render.cpp | 117 ++++++++++++++++++--------------- 4 files changed, 124 insertions(+), 90 deletions(-) diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp index b007b6d3..45c162e6 100644 --- a/desktop_version/src/Game.cpp +++ b/desktop_version/src/Game.cpp @@ -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"); diff --git a/desktop_version/src/Game.h b/desktop_version/src/Game.h index 802db984..76207c9e 100644 --- a/desktop_version/src/Game.h +++ b/desktop_version/src/Game.h @@ -31,6 +31,7 @@ namespace Menu ed_music, ed_quit, options, + advancedoptions, accessibility, controller, cleardatamenu, diff --git a/desktop_version/src/Input.cpp b/desktop_version/src/Input.cpp index bbd9a12a..cee54b49 100644 --- a/desktop_version/src/Input.cpp +++ b/desktop_version/src/Input.cpp @@ -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) diff --git a/desktop_version/src/Render.cpp b/desktop_version/src/Render.cpp index b6b7eaf3..7f02bbd1 100644 --- a/desktop_version/src/Render.cpp +++ b/desktop_version/src/Render.cpp @@ -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: