From 3ec77973dfd9f1328cf1e8792cf8c8eec4288e82 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Fri, 16 Feb 2024 18:25:47 +0000 Subject: [PATCH] Fix setting callbacks when using setting_newgame console command See: https://github.com/OpenTTD/OpenTTD/issues/12059 --- src/settings.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/settings.cpp b/src/settings.cpp index 3f25c15804..5d43e7c62f 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -3381,6 +3381,12 @@ void IConsoleSetSetting(const char *name, const char *value, bool force_newgame) return; } + const auto old_game_mode = _game_mode; + if (force_newgame) _game_mode = GM_MENU; + auto guard = scope_guard([force_newgame, old_game_mode]() { + if (force_newgame) _game_mode = old_game_mode; + }); + bool success = true; if (sd->IsStringSetting()) { success = SetSettingValue(sd->AsStringSetting(), value, force_newgame);