Set fademode to temp 0 when going to in-game options

While I've decoupled fademode from gamemode starting, being faded out on
the title screen results in a black screen and you being unable to make
any input. So we'll need to store the current fademode in a temporary
variable when going to in-game options, then put it back when we return
to the pause menu. Yes, you can turn on glitchrunner mode during the
in-game options, and then immediately return to the pause menu to
instantly go back to the title screen; this is intended.

Due to frame ordering, putting the fademode back needs to be deferred to
the end of the frame to prevent a 1-frame flicker.

It's actually sufficient enough to do this temporary fademode storage to
fix the whole thing, but I also decided to decouple fademode and
gamemode starting just to be sure.
This commit is contained in:
Misa
2021-03-19 23:23:18 -07:00
committed by Ethan Lee
parent 82dfa0b86c
commit be10487c5c
4 changed files with 10 additions and 0 deletions

View File

@@ -6666,6 +6666,11 @@ static void nextbgcolor(void)
map.nexttowercolour();
}
static void setfademode(void)
{
graphics.fademode = graphics.ingame_fademode;
}
void Game::returntoingame(void)
{
ingame_titlemode = false;
@@ -6684,6 +6689,7 @@ void Game::returntoingame(void)
DEFER_CALLBACK(returntoingametemp);
gamestate = MAPMODE;
graphics.flipmode = graphics.setflipmode;
DEFER_CALLBACK(setfademode);
if (!map.custommode && !graphics.flipmode)
{
obj.flags[73] = true;