Calculate player numbers in a different way, so that a player number on the server can be converted to a player number on the client.

This commit is contained in:
lotodore
2011-12-22 23:16:58 +00:00
parent fc7be88602
commit ae842b9a2d
3 changed files with 7 additions and 7 deletions
+2 -1
View File
@@ -1651,7 +1651,8 @@ ClientStateWaitHand::InternalHandlePacket(boost::shared_ptr<ClientThread> client
if (numPlayers && seatStates && *seatStates) {
for (int i = 0; i < (int)numPlayers; i++) {
NetPlayerState_t *seatState = seatStates[i];
boost::shared_ptr<PlayerInterface> tmpPlayer = client->GetGame()->getPlayerByNumber((i + client->GetOrigGuiPlayerNum()) % numPlayers);
int numberDiff = client->GetStartData().numberOfPlayers - client->GetOrigGuiPlayerNum();
boost::shared_ptr<PlayerInterface> tmpPlayer = client->GetGame()->getPlayerByNumber((i + numberDiff) % client->GetStartData().numberOfPlayers);
if (!tmpPlayer)
throw ClientException(__FILE__, __LINE__, ERR_NET_UNKNOWN_PLAYER_ID, 0);
switch (*seatState)
+2 -5
View File
@@ -1102,11 +1102,8 @@ ClientThread::MapPlayerDataList()
while (i != end) {
boost::shared_ptr<PlayerData> tmpData(new PlayerData(*(*i)));
int numberDiff = tmpData->GetNumber() - m_origGuiPlayerNum;
if (numberDiff >= 0)
tmpData->SetNumber(numberDiff);
else
tmpData->SetNumber(numPlayers + numberDiff);
int numberDiff = GetStartData().numberOfPlayers - m_origGuiPlayerNum;
tmpData->SetNumber((tmpData->GetNumber() + numberDiff) % GetStartData().numberOfPlayers);
mappedList.push_back(tmpData);
++i;
}
+3 -1
View File
@@ -1197,7 +1197,8 @@ ServerGameStateHand::StartNewHand(boost::shared_ptr<ServerGame> server)
}
PlayerListIterator player_i = curGame.getSeatsList()->begin();
PlayerListIterator player_end = curGame.getSeatsList()->end();
while (player_i != player_end) {
unsigned playerCounter = 0;
while (player_i != player_end && playerCounter < server->GetStartData().numberOfPlayers) {
NetPlayerState_t *seatState = (NetPlayerState_t *)calloc(1, sizeof(NetPlayerState_t));
if ((*player_i)->getMyCash() <= 0) {
*seatState = NetPlayerState_playerStateNoMoney;
@@ -1208,6 +1209,7 @@ ServerGameStateHand::StartNewHand(boost::shared_ptr<ServerGame> server)
}
ASN_SEQUENCE_ADD(&netHandStart->seatStates.list, seatState);
++player_i;
++playerCounter;
}
if (!errorFlag) {