Don't wait endlessly for player or avatar requests to complete if the other side does not have the required data. Send notifications and react accordingly.

This commit is contained in:
lotodore
2007-10-11 20:42:44 +00:00
parent 488e909838
commit 5218e038d4
5 changed files with 69 additions and 3 deletions
+12
View File
@@ -396,6 +396,12 @@ AbstractClientStateReceiving::Process(ClientThread &client)
tmpPacket->ToNetPacketPlayerInfo()->GetData(infoData);
client.SetPlayerInfo(infoData.playerId, infoData.playerInfo);
}
else if (tmpPacket->ToNetPacketUnknownPlayerId())
{
NetPacketUnknownPlayerId::Data unknownIdData;
tmpPacket->ToNetPacketUnknownPlayerId()->GetData(unknownIdData);
client.SetUnknownPlayer(unknownIdData.playerId);
}
else if (tmpPacket->ToNetPacketRemovedFromGame())
{
NetPacketRemovedFromGame::Data removedData;
@@ -500,6 +506,12 @@ AbstractClientStateReceiving::Process(ClientThread &client)
tmpPacket->ToNetPacketAvatarEnd()->GetData(endData);
client.CompleteTempAvatarData(endData.requestId);
}
else if (tmpPacket->ToNetPacketUnknownAvatar())
{
NetPacketUnknownAvatar::Data unknownAvatarData;
tmpPacket->ToNetPacketUnknownAvatar()->GetData(unknownAvatarData);
client.SetUnknownAvatar(unknownAvatarData.requestId);
}
else if (tmpPacket->ToNetPacketError())
{
// Server reported an error.