1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-16 17:48:29 +02:00

Add graphic options and game options to editor settings

This is a small quality-of-life tweak that makes it so if you're in the
middle of editing a level, you don't have to save the level, exit to the
menu, change whatever setting you wanted, re-enter the editor, and type
in the level name, just to change one setting. This is the same as
adding Graphic Options and Game Options to the in-game pause menu,
except for the editor, too.

To do this, I'm reusing Game::returntopausemenu() (because all of its
callers are the same callers for returning to editor settings) and
renamed it to returntoingame(), then added a variable named
ingame_editormode to Game. When we're in the options menus but still in
the editor, BOTH ingame_titlemode and ingame_editormode will be true.
This commit is contained in:
Misa 2021-03-18 19:52:30 -07:00 committed by Ethan Lee
parent fc8c7d034d
commit 2c8d338e47
4 changed files with 49 additions and 10 deletions

View File

@ -373,6 +373,9 @@ void Game::init(void)
glitchrunnermode = false;
ingame_titlemode = false;
#if !defined(NO_CUSTOM_LEVELS) && !defined(NO_EDITOR)
ingame_editormode = false;
#endif
kludge_ingametemp = Menu::mainmenu;
disablepause = false;
@ -6394,6 +6397,8 @@ void Game::createmenu( enum Menu::MenuName t, bool samemenu/*= false*/ )
option("editor ghosts");
option("load level");
option("save level");
option("graphic options");
option("game options");
option("quit to main menu");
menuyoff = -20;
@ -7076,16 +7081,28 @@ void Game::returntoeditor(void)
}
#endif
void Game::returntopausemenu(void)
void Game::returntoingame(void)
{
ingame_titlemode = false;
returntomenu(kludge_ingametemp);
gamestate = MAPMODE;
mapheld = true;
graphics.flipmode = graphics.setflipmode;
if (!map.custommode && !graphics.flipmode)
#if !defined(NO_CUSTOM_LEVELS) && !defined(NO_EDITOR)
if (ingame_editormode)
{
obj.flags[73] = true;
ingame_editormode = false;
returntomenu(Menu::ed_settings);
gamestate = EDITORMODE;
ed.settingskey = true;
}
else
#endif
{
returntomenu(kludge_ingametemp);
gamestate = MAPMODE;
graphics.flipmode = graphics.setflipmode;
if (!map.custommode && !graphics.flipmode)
{
obj.flags[73] = true;
}
}
}

View File

@ -442,8 +442,11 @@ public:
bool glitchrunnermode; // Have fun speedrunners! <3 Misa
bool ingame_titlemode;
#if !defined(NO_CUSTOM_LEVELS) && !defined(NO_EDITOR)
bool ingame_editormode;
#endif
void returntopausemenu(void);
void returntoingame(void);
void unlockAchievement(const char *name);
bool disablepause;

View File

@ -455,7 +455,7 @@ static void menuactionpress(void)
music.playef(11);
if (game.ingame_titlemode)
{
game.returntopausemenu();
game.returntoingame();
}
else
{
@ -766,7 +766,7 @@ static void menuactionpress(void)
music.playef(11);
if (game.ingame_titlemode)
{
game.returntopausemenu();
game.returntoingame();
}
else
{
@ -1634,7 +1634,7 @@ void titleinput(void)
&& (game.currentmenuname == Menu::options
|| game.currentmenuname == Menu::graphicoptions))
{
game.returntopausemenu();
game.returntoingame();
}
else
{

View File

@ -3769,6 +3769,25 @@ static void editormenuactionpress()
graphics.backgrounddrawn=false;
break;
case 6:
case 7:
/* Graphic options and game options */
music.playef(11);
game.gamestate = TITLEMODE;
game.ingame_titlemode = true;
game.ingame_editormode = true;
if (game.currentmenuoption == 6)
{
game.createmenu(Menu::graphicoptions);
}
else
{
game.createmenu(Menu::options);
}
map.nexttowercolour();
break;
default:
music.playef(11);
game.createmenu(Menu::ed_quit);
map.nexttowercolour();