Redesign of avatar stuff. First part.
This commit is contained in:
@@ -438,9 +438,6 @@ ClientThread::SetPlayerInfo(unsigned id, const PlayerInfo &info, bool retrieveAv
|
||||
retrieveAvatarData.avatar = info.avatar;
|
||||
static_cast<NetPacketRetrieveAvatar *>(retrieveAvatar.get())->SetData(retrieveAvatarData);
|
||||
GetSender().Send(GetContext().GetSessionData(), retrieveAvatar);
|
||||
|
||||
// Insert empty value in list to synchronize waiting.
|
||||
m_tempAvatarMap[id] = boost::shared_ptr<AvatarData>();
|
||||
}
|
||||
|
||||
// Remove it from the request list.
|
||||
@@ -502,20 +499,23 @@ ClientThread::CompleteTempAvatarData(unsigned playerId)
|
||||
boost::shared_ptr<AvatarData> tmpAvatar = pos->second;
|
||||
unsigned avatarSize = (unsigned)tmpAvatar->fileData.size();
|
||||
if (avatarSize != tmpAvatar->reportedSize)
|
||||
throw ClientException(__FILE__, __LINE__, ERR_NET_WRONG_AVATAR_SIZE, 0);
|
||||
|
||||
PlayerInfo tmpPlayerInfo;
|
||||
if (!GetCachedPlayerInfo(playerId, tmpPlayerInfo))
|
||||
throw ClientException(__FILE__, __LINE__, ERR_NET_UNKNOWN_PLAYER_ID, 0);
|
||||
|
||||
if (!GetAvatarManager().StoreAvatarInCache(tmpPlayerInfo.avatar, tmpAvatar->fileType, &tmpAvatar->fileData[0], avatarSize))
|
||||
LOG_ERROR("Failed to store avatar in cache directory.");
|
||||
LOG_ERROR("Client received invalid avatar file size!");
|
||||
else
|
||||
{
|
||||
PlayerInfo tmpPlayerInfo;
|
||||
if (!GetCachedPlayerInfo(playerId, tmpPlayerInfo))
|
||||
LOG_ERROR("Client received invalid player id!");
|
||||
else
|
||||
{
|
||||
if (!GetAvatarManager().StoreAvatarInCache(tmpPlayerInfo.avatar, tmpAvatar->fileType, &tmpAvatar->fileData[0], avatarSize))
|
||||
LOG_ERROR("Failed to store avatar in cache directory.");
|
||||
|
||||
// Update player info, but never re-request avatar.
|
||||
SetPlayerInfo(playerId, tmpPlayerInfo, false);
|
||||
}
|
||||
}
|
||||
// Free memory.
|
||||
m_tempAvatarMap.erase(pos);
|
||||
|
||||
// Update player info, but never re-request avatar.
|
||||
SetPlayerInfo(playerId, tmpPlayerInfo, false);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -938,6 +938,6 @@ ClientThread::SetSessionEstablished(bool flag)
|
||||
bool
|
||||
ClientThread::IsSynchronized() const
|
||||
{
|
||||
return (m_playerInfoRequestList.empty() && m_tempAvatarMap.empty());
|
||||
return m_playerInfoRequestList.empty();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,8 +32,13 @@ using namespace std;
|
||||
#define SEND_ERROR_NORMAL_TIMEOUT_MSEC 20000
|
||||
#define SEND_ERROR_LOW_PRIO_TIMEOUT_MSEC 10000
|
||||
#define SEND_TIMEOUT_MSEC 10
|
||||
#define SEND_QUEUE_SIZE 10000
|
||||
#define SEND_LOW_PRIO_QUEUE_SIZE 10000000
|
||||
#ifdef POKERTH_DEDICATED_SERVER
|
||||
#define SEND_QUEUE_SIZE 10000
|
||||
#define SEND_LOW_PRIO_QUEUE_SIZE 10000000
|
||||
#else
|
||||
#define SEND_QUEUE_SIZE 1000
|
||||
#define SEND_LOW_PRIO_QUEUE_SIZE 10000
|
||||
#endif
|
||||
|
||||
SenderThread::SenderThread(SenderCallback &cb)
|
||||
: m_tmpOutBufSize(0), m_tmpIsLowPrio(false), m_callback(cb)
|
||||
|
||||
@@ -380,16 +380,16 @@ ServerLobbyThread::HandleNetPacketInit(SessionWrapper session, const NetPacketIn
|
||||
new PlayerData(GetNextUniquePlayerId(), 0, PLAYER_TYPE_HUMAN, PLAYER_RIGHTS_NORMAL));
|
||||
tmpPlayerData->SetName(initData.playerName);
|
||||
tmpPlayerData->SetNetSessionData(session.sessionData);
|
||||
// if (initData.showAvatar)
|
||||
// tmpPlayerData->SetAvatarMD5(initData.avatar);
|
||||
if (initData.showAvatar)
|
||||
tmpPlayerData->SetAvatarMD5(initData.avatar);
|
||||
|
||||
// Set player data for session.
|
||||
m_sessionManager.SetSessionPlayerData(session.sessionData->GetId(), tmpPlayerData);
|
||||
session.playerData = tmpPlayerData;
|
||||
|
||||
// if (initData.showAvatar && !GetAvatarManager().HasAvatar(initData.avatar))
|
||||
// RequestPlayerAvatar(session);
|
||||
// else
|
||||
if (initData.showAvatar && !initData.avatar.IsZero() && !GetAvatarManager().HasAvatar(initData.avatar))
|
||||
RequestPlayerAvatar(session);
|
||||
else
|
||||
EstablishSession(session);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user