Properly mark player as kicked on client side.

This commit is contained in:
lotodore
2011-11-13 16:47:33 +00:00
parent fec3a5fb65
commit c3f12fe190
2 changed files with 7 additions and 1 deletions
+4
View File
@@ -674,6 +674,10 @@ AbstractClientStateReceiving::HandlePacket(boost::shared_ptr<ClientThread> clien
// A player left the game.
GamePlayerLeft_t *netLeft = &netGamePlayer->gamePlayerNotification.choice.gamePlayerLeft;
boost::shared_ptr<PlayerInterface> tmpPlayer = client->GetGame()->getPlayerByUniqueId(netLeft->playerId);
if (tmpPlayer) {
tmpPlayer->setIsKicked(netLeft->gamePlayerLeftReason == gamePlayerLeftReason_leftKicked);
}
// Signal to GUI and remove from data list.
client->RemovePlayerData(netLeft->playerId, netLeft->gamePlayerLeftReason);
} else if (netGamePlayer->gamePlayerNotification.present == gamePlayerNotification_PR_gameAdminChanged) {
+3 -1
View File
@@ -1167,7 +1167,9 @@ ClientThread::RemoveDisconnectedPlayers()
if (tmpPlayer->getMyActiveStatus()) {
// If a player is not in the player data list, it was disconnected.
if (!GetPlayerDataByUniqueId(tmpPlayer->getMyUniqueID()).get()) {
//tmpPlayer->setMyCash(0);
if (tmpPlayer->isKicked()) {
tmpPlayer->setMyCash(0);
}
tmpPlayer->setMyActiveStatus(false);
}
}