Move returning to editor to end of frame

This fixes horizontal and vertical warp backgrounds not resetting, and
also a bunch of other 1-frame glitches, most noticeably cutscene bars
and fadeouts.

This adds a new variable shouldreturntoeditor to Game to signal whether
or not it should return to editor at the end of the frame.
This commit is contained in:
Misa 2020-05-09 12:52:58 -07:00 committed by Ethan Lee
parent 51971fa84c
commit 2d07090a6b
4 changed files with 14 additions and 1 deletions

View File

@ -375,6 +375,10 @@ void Game::init(void)
fadetolab = false; fadetolab = false;
fadetolabdelay = 0; fadetolabdelay = 0;
#if !defined(NO_CUSTOM_LEVELS)
shouldreturntoeditor = false;
#endif
/* Terry's Patrons... */ /* Terry's Patrons... */
superpatrons.push_back("Anders Ekermo"); superpatrons.push_back("Anders Ekermo");
superpatrons.push_back("Andreas K|mper"); superpatrons.push_back("Andreas K|mper");

View File

@ -388,6 +388,7 @@ public:
#if !defined(NO_CUSTOM_LEVELS) #if !defined(NO_CUSTOM_LEVELS)
void returntoeditor(); void returntoeditor();
bool shouldreturntoeditor;
#endif #endif
}; };

View File

@ -1537,7 +1537,7 @@ void gameinput()
game.activeactivity = -1; game.activeactivity = -1;
} }
}else{ }else{
game.returntoeditor(); game.shouldreturntoeditor = true;
} }
} }
} }

View File

@ -1380,4 +1380,12 @@ void gamelogic()
if (game.teleport_to_new_area) if (game.teleport_to_new_area)
script.teleport(); script.teleport();
#if !defined(NO_CUSTOM_LEVELS)
if (game.shouldreturntoeditor)
{
game.shouldreturntoeditor = false;
game.returntoeditor();
}
#endif
} }