From 951679b1f8ac7919b4ed174ba5ec0c0e0a5e1587 Mon Sep 17 00:00:00 2001 From: Misa Date: Thu, 18 Mar 2021 21:12:55 -0700 Subject: [PATCH] Fix 1-frame background glitch when returning from in-game options The background would change for 1 frame before sending you back to the pause menu or editor settings. The map.nexttowercolour() call needs to be deferred until the end of the frame. --- desktop_version/src/Game.cpp | 6 ++++++ desktop_version/src/Input.cpp | 3 +-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp index 951f8109..5e913909 100644 --- a/desktop_version/src/Game.cpp +++ b/desktop_version/src/Game.cpp @@ -6632,6 +6632,11 @@ static void returntoedsettings(void) } #endif +static void nextbgcolor(void) +{ + map.nexttowercolour(); +} + void Game::returntoingame(void) { ingame_titlemode = false; @@ -6655,6 +6660,7 @@ void Game::returntoingame(void) obj.flags[73] = true; } } + DEFER_CALLBACK(nextbgcolor); } void Game::unlockAchievement(const char *name) { diff --git a/desktop_version/src/Input.cpp b/desktop_version/src/Input.cpp index f8f58d7e..7cdfbf1c 100644 --- a/desktop_version/src/Input.cpp +++ b/desktop_version/src/Input.cpp @@ -1638,10 +1638,9 @@ void titleinput(void) else { game.returnmenu(); + map.nexttowercolour(); } } - - map.nexttowercolour(); } if(game.menustart)