(svn r16506) -Fix: count only active clients (not those waiting for map download) when checking min_active_clients limit

This commit is contained in:
smatz 2009-06-02 19:56:23 +00:00
parent 2fc0cb3e76
commit 2b4d37de3d
1 changed files with 10 additions and 4 deletions

View File

@ -334,14 +334,20 @@ StringID GetNetworkErrorMsg(NetworkErrorCode err)
return network_error_strings[err];
}
/* Count the number of active clients connected */
/**
* Counts the number of active clients connected.
* It has to be in STATUS_ACTIVE and not a spectator
* @return number of active clients
*/
static uint NetworkCountActiveClients()
{
const NetworkClientInfo *ci;
const NetworkClientSocket *cs;
uint count = 0;
FOR_ALL_CLIENT_INFOS(ci) {
if (Company::IsValidID(ci->client_playas)) count++;
FOR_ALL_CLIENT_SOCKETS(cs) {
if (cs->status != STATUS_ACTIVE) continue;
if (!Company::IsValidID(cs->GetInfo()->client_playas)) continue;
count++;
}
return count;