From fc2f269548371f86e8f2cf77aec657592793fcab Mon Sep 17 00:00:00 2001 From: Misa Date: Thu, 7 May 2020 15:30:26 -0700 Subject: [PATCH] Move returning to lab to separate variables Again, what I've done here is removed the over-reliance on Terry's State Machine to return to the lab, and just moved it into separate variables instead. This means that returning to the lab is ALMOST entirely self-contained in MAPMODE, except there's a quick jaunt over to GAMEMODE to run a script because you can only run scripts in GAMEMODE. --- desktop_version/src/Game.cpp | 2 ++ desktop_version/src/Game.h | 2 ++ desktop_version/src/Input.cpp | 15 +++++++++++++++ 3 files changed, 19 insertions(+) diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp index b85e1880..eb112865 100644 --- a/desktop_version/src/Game.cpp +++ b/desktop_version/src/Game.cpp @@ -372,6 +372,8 @@ void Game::init(void) fadetomenu = false; fadetomenudelay = 0; + fadetolab = false; + fadetolabdelay = 0; /* Terry's Patrons... */ superpatrons.push_back("Anders Ekermo"); diff --git a/desktop_version/src/Game.h b/desktop_version/src/Game.h index 8259a0e8..0dd62d0f 100644 --- a/desktop_version/src/Game.h +++ b/desktop_version/src/Game.h @@ -383,6 +383,8 @@ public: void returntolab(); bool fadetomenu; int fadetomenudelay; + bool fadetolab; + int fadetolabdelay; }; extern Game game; diff --git a/desktop_version/src/Input.cpp b/desktop_version/src/Input.cpp index 0176aa6b..9ea8d3ae 100644 --- a/desktop_version/src/Input.cpp +++ b/desktop_version/src/Input.cpp @@ -1825,6 +1825,19 @@ void mapinput() } } + if (game.fadetolab) + { + if (game.fadetolabdelay > 0) + { + game.fadetolabdelay--; + } + else + { + game.returntolab(); + game.fadetolab = false; + } + } + if(graphics.menuoffset==0) { if (graphics.flipmode) @@ -2001,6 +2014,8 @@ void mapinput() game.swnmode = false; graphics.fademode = 2; music.fadeout(); + game.fadetolab = true; + game.fadetolabdelay = 15; } }