diff options
author | truelight <truelight@openttd.org> | 2004-08-25 10:17:39 +0000 |
---|---|---|
committer | truelight <truelight@openttd.org> | 2004-08-25 10:17:39 +0000 |
commit | ebbfaced672abb14ed174e49008a3ba58a44d778 (patch) | |
tree | c5b233be3be306f9c02981fe8e9af263355d3799 | |
parent | ea2d013ff0b50090d6bbc7ca4bd70253fee2322b (diff) | |
download | openttd-ebbfaced672abb14ed174e49008a3ba58a44d778.tar.xz |
(svn r140) -Fix: Load Scenario fix
-rw-r--r-- | ttd.c | 31 |
1 files changed, 19 insertions, 12 deletions
@@ -20,7 +20,7 @@ #include "hal.h" #include "airport.h" #include "saveload.h" -#include "ai.h"
+#include "ai.h" #include "console.h" #include <stdarg.h> @@ -75,7 +75,7 @@ void CDECL debug(const char *s, ...) va_start(va, s); vsprintf(buf, s, va); va_end(va); - fprintf(stderr, "dbg: %s\n", buf);
+ fprintf(stderr, "dbg: %s\n", buf); IConsoleDebug((byte *) &buf); } @@ -571,7 +571,7 @@ int ttd_main(int argc, char* argv[]) MxInitialize(11025, "sample.cat"); // This must be done early, since functions use the InvalidateWindow* calls - InitWindowSystem();
+ InitWindowSystem(); GfxLoadSprites(); LoadStringWidthTable(); @@ -597,13 +597,13 @@ int ttd_main(int argc, char* argv[]) NetworkCoreConnectGame("auto",_network_server_port); } } -
- // initialize the ingame console
- IConsoleInit();
+ + // initialize the ingame console + IConsoleInit(); while (_video_driver->main_loop() == ML_SWITCHDRIVER) {} -
- IConsoleFree();
+ + IConsoleFree(); if (_network_available) { // shutdown network-core @@ -642,7 +642,7 @@ void LoadIntroGame() _opt_mod_ptr = &_new_opt; GfxLoadSprites(); LoadStringWidthTable(); -
+ // Setup main window InitWindowSystem(); SetupColorsAndInitialWindow(); @@ -750,8 +750,10 @@ void StartScenario() StartupEngines(); StartupDisasters(); - // Create a single player - DoStartupNewPlayer(false); + // When starting a scenario, is it really a load.. + // and in AfterLoad a player is started when it is + // a scenario.. so we do not need it here. +// DoStartupNewPlayer(false); _local_player = 0; @@ -782,7 +784,7 @@ bool SafeSaveOrLoad(const char *filename, int mode, int newgm) static void SwitchMode(int new_mode) { - _in_state_game_loop = true;
+ _in_state_game_loop = true; switch(new_mode) { case SM_EDITOR: // Switch to scenario editor @@ -1133,6 +1135,11 @@ bool AfterLoadGame(uint version) if (version <= 0x400) { CheckIsPlayerActive(); } + + // If Load Scenario / New (Scenario) Game is used, + // a player does not exist yet. So create one here. + if (!_players[0].is_active) + DoStartupNewPlayer(false); DoZoomInOut(ZOOM_NONE); // update button status MarkWholeScreenDirty(); |