diff --git a/source/glest_game/network/connection_slot.cpp b/source/glest_game/network/connection_slot.cpp index 5482622dc..2145d7f04 100644 --- a/source/glest_game/network/connection_slot.cpp +++ b/source/glest_game/network/connection_slot.cpp @@ -850,7 +850,7 @@ void ConnectionSlot::update(bool checkForNewClients,int lockedSlotIndex) { int minHeadLessPlayersRequired = Config::getInstance().getInt("MinHeadlessPlayersRequired","2"); if(networkMessageLaunch.getMessageType() == nmtLaunch && - this->serverInterface->getConnectedSlotCount() < minHeadLessPlayersRequired) { + this->serverInterface->getConnectedSlotCount(true) < minHeadLessPlayersRequired) { Lang &lang= Lang::getInstance(); const vector languageList = this->serverInterface->getGameSettings()->getUniqueNetworkPlayerLanguages(); for(unsigned int i = 0; i < languageList.size(); ++i) { diff --git a/source/glest_game/network/server_interface.cpp b/source/glest_game/network/server_interface.cpp index 71093d0b4..a7da160ed 100644 --- a/source/glest_game/network/server_interface.cpp +++ b/source/glest_game/network/server_interface.cpp @@ -563,12 +563,15 @@ int ServerInterface::getSlotCount() { return slotCount; } -int ServerInterface::getConnectedSlotCount() { +int ServerInterface::getConnectedSlotCount(bool authenticated) { int connectedSlotCount = 0; for(int i= 0; exitServer == false && i < GameConstants::maxPlayers; ++i) { MutexSafeWrapper safeMutexSlot(slotAccessorMutexes[i],CODE_AT_LINE_X(i)); if(slots[i] != NULL && slots[i]->isConnected() == true) { - ++connectedSlotCount; + if(authenticated == false || + (authenticated == true && slots[i]->getConnectHasHandshaked() == true)) { + ++connectedSlotCount; + } } } return connectedSlotCount; diff --git a/source/glest_game/network/server_interface.h b/source/glest_game/network/server_interface.h index 257a52730..7510fec29 100644 --- a/source/glest_game/network/server_interface.h +++ b/source/glest_game/network/server_interface.h @@ -145,7 +145,7 @@ public: void removeSlot(int playerIndex, int lockedSlotIndex = -1); ConnectionSlot *getSlot(int playerIndex); int getSlotCount(); - int getConnectedSlotCount(); + int getConnectedSlotCount(bool authenticated); int getOpenSlotCount(); bool launchGame(const GameSettings *gameSettings);