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:
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user