From 17e7c6983b08b11fe583f974dc797747d12398f3 Mon Sep 17 00:00:00 2001 From: Misa Date: Thu, 7 May 2020 15:23:55 -0700 Subject: [PATCH] Move fading to menu to separate variables Alright, so what I've done here is made exiting to the menu entirely separate from Terry's State Machine, and thus it can now take place entirely within MAPMODE instead of having to go back to GAMEMODE. Also, it's faster by 15 frames since we don't need to wait for the map screen to go back down. --- desktop_version/src/Game.cpp | 3 +++ desktop_version/src/Game.h | 2 ++ desktop_version/src/Input.cpp | 15 +++++++++++++++ 3 files changed, 20 insertions(+) diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp index a5640fc0..b85e1880 100644 --- a/desktop_version/src/Game.cpp +++ b/desktop_version/src/Game.cpp @@ -370,6 +370,9 @@ void Game::init(void) playry = 0; playgc = 0; + fadetomenu = false; + fadetomenudelay = 0; + /* Terry's Patrons... */ superpatrons.push_back("Anders Ekermo"); superpatrons.push_back("Andreas K|mper"); diff --git a/desktop_version/src/Game.h b/desktop_version/src/Game.h index 47fe2204..8259a0e8 100644 --- a/desktop_version/src/Game.h +++ b/desktop_version/src/Game.h @@ -381,6 +381,8 @@ public: void quittomenu(); void returntolab(); + bool fadetomenu; + int fadetomenudelay; }; extern Game game; diff --git a/desktop_version/src/Input.cpp b/desktop_version/src/Input.cpp index 6125bdf0..0176aa6b 100644 --- a/desktop_version/src/Input.cpp +++ b/desktop_version/src/Input.cpp @@ -1812,6 +1812,19 @@ void mapinput() game.press_action = false; game.press_map = false; + if (game.fadetomenu) + { + if (game.fadetomenudelay > 0) + { + game.fadetomenudelay--; + } + else + { + game.quittomenu(); + game.fadetomenu = false; + } + } + if(graphics.menuoffset==0) { if (graphics.flipmode) @@ -1970,6 +1983,8 @@ void mapinput() graphics.fademode = 2; music.fadeout(); map.nexttowercolour(); + game.fadetomenu = true; + game.fadetomenudelay = 15; } }