Check timeout only for human players.

This commit is contained in:
lotodore
2011-12-23 17:23:56 +00:00
parent 25ed93f477
commit bf81ba1d98
+13 -12
View File
@@ -1197,7 +1197,7 @@ ServerGameStateHand::StartNewHand(boost::shared_ptr<ServerGame> server)
} }
PlayerListIterator player_i = curGame.getSeatsList()->begin(); PlayerListIterator player_i = curGame.getSeatsList()->begin();
PlayerListIterator player_end = curGame.getSeatsList()->end(); PlayerListIterator player_end = curGame.getSeatsList()->end();
unsigned playerCounter = 0; int playerCounter = 0;
while (player_i != player_end && playerCounter < server->GetStartData().numberOfPlayers) { while (player_i != player_end && playerCounter < server->GetStartData().numberOfPlayers) {
NetPlayerState_t *seatState = (NetPlayerState_t *)calloc(1, sizeof(NetPlayerState_t)); NetPlayerState_t *seatState = (NetPlayerState_t *)calloc(1, sizeof(NetPlayerState_t));
if ((*player_i)->getMyCash() <= 0) { if ((*player_i)->getMyCash() <= 0) {
@@ -1273,17 +1273,18 @@ ServerGameStateHand::StartNewHand(boost::shared_ptr<ServerGame> server)
void void
ServerGameStateHand::CheckPlayerTimeouts(boost::shared_ptr<ServerGame> server) ServerGameStateHand::CheckPlayerTimeouts(boost::shared_ptr<ServerGame> server)
{ {
// Consider all players, even inactive. // Check timeout.
PlayerListIterator i = server->GetGame().getSeatsList()->begin(); int actionTimeout = server->GetGameData().playerActionTimeoutSec;
PlayerListIterator end = server->GetGame().getSeatsList()->end(); if (actionTimeout) {
// Consider all players, even inactive.
PlayerListIterator i = server->GetGame().getSeatsList()->begin();
PlayerListIterator end = server->GetGame().getSeatsList()->end();
// Send cards to all players. // Check timeouts of all players.
while (i != end) { while (i != end) {
boost::shared_ptr<PlayerInterface> tmpPlayer = *i; boost::shared_ptr<PlayerInterface> tmpPlayer = *i;
// Check timeout. if (tmpPlayer->getMyType() == PLAYER_TYPE_HUMAN
int actionTimeout = server->GetGameData().playerActionTimeoutSec; && (int)tmpPlayer->getTimeSecSinceLastRemoteAction() >= actionTimeout * SERVER_GAME_AUTOFOLD_TIMEOUT_FACTOR) {
if (actionTimeout) {
if ((int)tmpPlayer->getTimeSecSinceLastRemoteAction() >= actionTimeout * SERVER_GAME_AUTOFOLD_TIMEOUT_FACTOR) {
if (tmpPlayer->isSessionActive()) { if (tmpPlayer->isSessionActive()) {
tmpPlayer->setIsSessionActive(false); tmpPlayer->setIsSessionActive(false);
boost::shared_ptr<SessionData> session = server->GetSessionManager().GetSessionByUniquePlayerId(tmpPlayer->getMyUniqueID()); boost::shared_ptr<SessionData> session = server->GetSessionManager().GetSessionByUniquePlayerId(tmpPlayer->getMyUniqueID());
@@ -1300,8 +1301,8 @@ ServerGameStateHand::CheckPlayerTimeouts(boost::shared_ptr<ServerGame> server)
server->KickPlayer(tmpPlayer->getMyUniqueID()); server->KickPlayer(tmpPlayer->getMyUniqueID());
} }
} }
++i;
} }
++i;
} }
} }