diff --git a/src/net/common/servergamestate.cpp b/src/net/common/servergamestate.cpp index 8207c093..9d5d18df 100644 --- a/src/net/common/servergamestate.cpp +++ b/src/net/common/servergamestate.cpp @@ -1371,15 +1371,15 @@ ServerGameStateHand::PerformRejoin(boost::shared_ptr server, boost:: netStartModeRejoin->handNum = curGame.getCurrentHandID(); PlayerListIterator player_i = curGame.getSeatsList()->begin(); PlayerListIterator player_end = curGame.getSeatsList()->end(); - while (player_i != player_end) { + int player_count = 0; + while (player_i != player_end && player_count < server->GetStartData().numberOfPlayers) { boost::shared_ptr tmpPlayer = *player_i; - if (tmpPlayer->getMyActiveStatus()) { - RejoinPlayerData_t *playerSlot = (RejoinPlayerData_t *)calloc(1, sizeof(RejoinPlayerData_t)); - playerSlot->playerId = tmpPlayer->getMyUniqueID(); - playerSlot->playerMoney = tmpPlayer->getMyCash(); - ASN_SEQUENCE_ADD(&netStartModeRejoin->rejoinPlayerData.list, playerSlot); - } + RejoinPlayerData_t *playerSlot = (RejoinPlayerData_t *)calloc(1, sizeof(RejoinPlayerData_t)); + playerSlot->playerId = tmpPlayer->getMyUniqueID(); + playerSlot->playerMoney = tmpPlayer->getMyCash(); + ASN_SEQUENCE_ADD(&netStartModeRejoin->rejoinPlayerData.list, playerSlot); ++player_i; + ++player_count; } server->GetLobbyThread().GetSender().Send(session, packet); diff --git a/src/playerdata.cpp b/src/playerdata.cpp index e309506b..bb6d264c 100644 --- a/src/playerdata.cpp +++ b/src/playerdata.cpp @@ -21,7 +21,7 @@ using namespace std; PlayerData::PlayerData(unsigned uniqueId, int number, PlayerType type, PlayerRights rights, bool isGameAdmin) - : m_uniqueId(uniqueId), m_dbId(DB_ID_INVALID), m_number(number), m_startCash(0), m_type(type), m_rights(rights), m_isGameAdmin(isGameAdmin) + : m_uniqueId(uniqueId), m_dbId(DB_ID_INVALID), m_number(number), m_startCash(-1), m_type(type), m_rights(rights), m_isGameAdmin(isGameAdmin) { }