From 9b4d3ff4b88eb6d655bf31afc28a6afa849f07f7 Mon Sep 17 00:00:00 2001 From: Darkvater Date: Thu, 30 Nov 2006 22:23:11 +0000 Subject: (svn r7312) -Fix: When loading a game from a dedicated server the local player global variable was wrongly set to 0. In theory this allowed a dedicated server to also play. I see no history for this bug, but it has been there since the introduction of the dedicated server probably. Thanks peter1138 for bringing it to my attention and thanks myself for rewriting the code so this bug could surface ;p --- openttd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'openttd.c') diff --git a/openttd.c b/openttd.c index 09b0f9496..7d30e3ac3 100644 --- a/openttd.c +++ b/openttd.c @@ -759,7 +759,9 @@ void SwitchMode(int new_mode) LoadIntroGame(); ShowErrorMessage(INVALID_STRING_ID, STR_4009_GAME_LOAD_FAILED, 0, 0); } else { - _local_player = 0; + /* Update the local player for a loaded game. It is either always + * player #1 (eg 0) or in the case of a dedicated server a spectator */ + _local_player = _network_dedicated ? PLAYER_SPECTATOR : 0; DoCommandP(0, 0, 0, NULL, CMD_PAUSE); // decrease pause counter (was increased from opening load dialog) #ifdef ENABLE_NETWORK if (_network_server) { -- cgit v1.2.3-70-g09d2