diff options
author | megamage <none@none.none> | 2011-10-10 12:47:33 -0400 |
---|---|---|
committer | megamage <none@none.none> | 2011-10-10 12:47:33 -0400 |
commit | 765a6f2e196ba945bcc8a9e62e68ff7e7ac6658e (patch) | |
tree | 007571e1d9a0c2a76b6c88f4a3231c751dbe1076 /src | |
parent | 3b4b6a2d9ab8c3b689e9189466cf2b1d7f864775 (diff) |
Remove duplicated code for SendNameQueryOpcode
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Server/Protocol/Handlers/QueryHandler.cpp | 72 | ||||
-rwxr-xr-x | src/server/game/Server/WorldSession.h | 2 |
2 files changed, 33 insertions, 41 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp b/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp index bdb4b93a238..9277464ca21 100755 --- a/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp @@ -31,27 +31,44 @@ #include "Pet.h" #include "MapManager.h" -void WorldSession::SendNameQueryOpcode(Player* p) +void WorldSession::SendNameQueryOpcode(uint64 guid) { - if (!p) - return; + Player* player = NULL; + const CharacterNameData* nameData = sWorld->GetCharacterNameData(GUID_LOPART(guid)); + if (nameData) + player = ObjectAccessor::FindPlayer(guid); + // guess size WorldPacket data(SMSG_NAME_QUERY_RESPONSE, (8+1+1+1+1+1+10)); - data.append(p->GetPackGUID()); // player guid + data.appendPackGUID(guid); data << uint8(0); // added in 3.1 - data << p->GetName(); // played name - data << uint8(0); // realm name for cross realm BG usage - data << uint8(p->getRace()); - data << uint8(p->getGender()); - data << uint8(p->getClass()); - if (DeclinedName const* names = p->GetDeclinedNames()) + if (nameData) { - data << uint8(1); // is declined - for (int i = 0; i < MAX_DECLINED_NAME_CASES; ++i) - data << names->name[i]; + data << nameData->m_name; // played name + data << uint8(0); // realm name for cross realm BG usage + data << uint8(nameData->m_race); + data << uint8(nameData->m_gender); + data << uint8(nameData->m_class); } else - data << uint8(0); // is not declined + { + data << std::string(GetTrinityString(LANG_NON_EXIST_CHARACTER)); + data << uint32(0); + } + + if (player) + { + if (DeclinedName const* names = player->GetDeclinedNames()) + { + data << uint8(1); // is declined + for (int i = 0; i < MAX_DECLINED_NAME_CASES; ++i) + data << names->name[i]; + } + else + data << uint8(0); // is not declined + } + else //TODO: decline names may also need to be stored in char name data + data << uint8(0); SendPacket(&data); } @@ -65,32 +82,7 @@ void WorldSession::HandleNameQueryOpcode(WorldPacket& recv_data) // This is disable by default to prevent lots of console spam // sLog->outString("HandleNameQueryOpcode %u", guid); - if (Player* pChar = ObjectAccessor::FindPlayer(guid)) - SendNameQueryOpcode(pChar); - else - { - if (const CharacterNameData* cname = sWorld->GetCharacterNameData(GUID_LOPART(guid))) - { - WorldPacket data(SMSG_NAME_QUERY_RESPONSE, 8+1+1+1+1+1+1+10); - data.appendPackGUID(guid); - data << uint8(0); - if (cname->m_name == "") - { - data << std::string(GetTrinityString(LANG_NON_EXIST_CHARACTER)); - data << uint32(0); - } - else - { - data << cname->m_name; - data << uint8(0); - data << uint8(cname->m_race); - data << uint8(cname->m_gender); - data << uint8(cname->m_class); - } - data << uint8(0); - SendPacket(&data); - } - } + SendNameQueryOpcode(guid); } void WorldSession::HandleQueryTimeOpcode(WorldPacket & /*recv_data*/) diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 8b8b3b96b85..2337f2a34b2 100755 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -278,7 +278,7 @@ class WorldSession void SendAuthWaitQue(uint32 position); //void SendTestCreatureQueryOpcode(uint32 entry, uint64 guid, uint32 testvalue); - void SendNameQueryOpcode(Player* p); + void SendNameQueryOpcode(uint64 guid); void SendTrainerList(uint64 guid); void SendTrainerList(uint64 guid, const std::string& strTitle); |