(svn r3500) - Workaround the inaccurate count of spectators/companies that can happen in certain border-cases. For now just dynamically get this value when requested so it is always right. To do properly all player/client creation/destruction needs a hook for networking.

This commit is contained in:
Darkvater
2006-01-31 22:16:15 +00:00
parent 9d07426a29
commit f2448ebfd4
8 changed files with 40 additions and 40 deletions

View File

@@ -762,13 +762,8 @@ void SwitchMode(int new_mode)
_local_player = 0;
DoCommandP(0, 0, 0, NULL, CMD_PAUSE); // decrease pause counter (was increased from opening load dialog)
#ifdef ENABLE_NETWORK
if (_network_server) {
/* If we have loaded a game we need to correctly update the company-count */
const Player *p;
_network_game_info.companies_on = 0;
FOR_ALL_PLAYERS(p) {if (p->is_active) _network_game_info.companies_on++;}
if (_network_server)
snprintf(_network_game_info.map_name, NETWORK_NAME_LENGTH, "%s (Loaded game)", _file_to_saveload.title);
}
#endif /* ENABLE_NETWORK */
}
break;