diff options
-rw-r--r-- | src/openttd.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/openttd.cpp b/src/openttd.cpp index 6007bb4aa..e078c7da0 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -265,11 +265,15 @@ static void ShutdownGame() FioCloseAll(); } -static void LoadIntroGame() +/** + * Load the introduction game. + * @param load_newgrfs Whether to load the NewGRFs or not. + */ +static void LoadIntroGame(bool load_newgrfs = true) { _game_mode = GM_MENU; - ResetGRFConfig(false); + if (load_newgrfs) ResetGRFConfig(false); /* Setup main window */ ResetWindowSystem(); @@ -710,6 +714,8 @@ int ttd_main(int argc, char *argv[]) GenerateWorld(GWM_EMPTY, 64, 64); // Make the viewport initialization happy WaitTillGeneratedWorld(); + LoadIntroGame(false); + CheckForMissingGlyphsInLoadedLanguagePack(); ScanNewGRFFiles(new AfterNewGRFScan(network ? network_conn : NULL, join_server_password, join_company_password)); @@ -1227,7 +1233,7 @@ void GameLoop() } /* switch game mode? */ - if (_switch_mode != SM_NONE) { + if (_switch_mode != SM_NONE && !HasModalProgress()) { SwitchToMode(_switch_mode); _switch_mode = SM_NONE; } |