--- a/ttd.c Wed Aug 25 09:23:55 2004 +0000
+++ b/ttd.c Wed Aug 25 10:17:39 2004 +0000
@@ -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 @@
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 @@
MxInitialize(11025, "sample.cat");
// This must be done early, since functions use the InvalidateWindow* calls
- InitWindowSystem();
+ InitWindowSystem();
GfxLoadSprites();
LoadStringWidthTable();
@@ -597,13 +597,13 @@
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 @@
_opt_mod_ptr = &_new_opt;
GfxLoadSprites();
LoadStringWidthTable();
-
+
// Setup main window
InitWindowSystem();
SetupColorsAndInitialWindow();
@@ -750,8 +750,10 @@
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 @@
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 @@
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();