diff --git a/src/net/clientthread.h b/src/net/clientthread.h index f26eab91..276d7298 100644 --- a/src/net/clientthread.h +++ b/src/net/clientthread.h @@ -121,6 +121,8 @@ protected: ClientSenderCallback &GetSenderCallback(); + QtToolsInterface &GetQtToolsInterface(); + void AddPlayerData(boost::shared_ptr playerData); void RemovePlayerData(unsigned playerId); void ClearPlayerDataList(); diff --git a/src/net/common/clientstate.cpp b/src/net/common/clientstate.cpp index 6c11e322..6e4735b8 100644 --- a/src/net/common/clientstate.cpp +++ b/src/net/common/clientstate.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -356,7 +357,7 @@ ClientStateStartSession::Process(ClientThread &client) NetPacketInit::Data initData; initData.password = context.GetPassword(); initData.playerName = context.GetPlayerName(); - string avatarFile = context.GetAvatarFile(); + string avatarFile = client.GetQtToolsInterface().stringFromUtf8(context.GetAvatarFile()); initData.showAvatar = false; if (!avatarFile.empty()) { @@ -592,7 +593,7 @@ ClientStateWaitSession::InternalProcess(ClientThread &client, boost::shared_ptr< NetPacketList tmpList; int avatarError = client.GetAvatarManager().AvatarFileToNetPackets( - client.GetContext().GetAvatarFile(), + client.GetQtToolsInterface().stringFromUtf8(client.GetContext().GetAvatarFile()), retrieveAvatarData.requestId, tmpList); @@ -700,7 +701,7 @@ ClientStateWaitGame::InternalProcess(ClientThread &client, boost::shared_ptrSetAvatarFile(avatarFile); + playerData->SetAvatarFile(client.GetQtToolsInterface().stringToUtf8(avatarFile)); else client.RetrieveAvatarIfNeeded(netPlayerData.playerId, info); } diff --git a/src/net/common/clientthread.cpp b/src/net/common/clientthread.cpp index 913f8c0f..c1f47fca 100644 --- a/src/net/common/clientthread.cpp +++ b/src/net/common/clientthread.cpp @@ -454,7 +454,7 @@ ClientThread::SetPlayerInfo(unsigned id, const PlayerInfo &info) string avatarFile; if (GetAvatarManager().GetAvatarFileName(info.avatar, avatarFile)) { - playerData->SetAvatarFile(myQtToolsInterface->stringToUtf8(avatarFile)); + playerData->SetAvatarFile(GetQtToolsInterface().stringToUtf8(avatarFile)); } } } @@ -561,7 +561,7 @@ ClientThread::CompleteTempAvatarData(unsigned playerId) if (GetAvatarManager().GetAvatarFileName(tmpPlayerInfo.avatar, fileName)) { // Dynamically update avatar in GUI. - GetGui().setPlayerAvatar(playerId, fileName); + GetGui().setPlayerAvatar(playerId, GetQtToolsInterface().stringToUtf8(fileName)); } } } @@ -680,6 +680,13 @@ ClientThread::GetSenderCallback() return *m_senderCallback; } +QtToolsInterface & +ClientThread::GetQtToolsInterface() +{ + assert(myQtToolsInterface.get()); + return *myQtToolsInterface; +} + void ClientThread::AddPlayerData(boost::shared_ptr playerData) {