aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/QueryHandler.cpp
diff options
context:
space:
mode:
authorIntel <chemicstry@gmail.com>2014-11-15 17:13:41 +0200
committerIntel <chemicstry@gmail.com>2014-11-15 17:40:04 +0200
commitcd9be923955c57a0ec5054897ac377a964f502ca (patch)
treee9802959ec45416d897f5069ba850e7399173289 /src/server/game/Handlers/QueryHandler.cpp
parent96fa1eb5ecb6667b4150b1d9bffa7efed79fedd8 (diff)
Core/Packets: Added CMSG_PAGE_TEXT_QUERY and SMSG_PAGE_TEXT_QUERY_RESPONSE
Moved QueryPlayerName to QueryPackets
Diffstat (limited to 'src/server/game/Handlers/QueryHandler.cpp')
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp34
1 files changed, 16 insertions, 18 deletions
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp
index 490097ec647..f432ff70275 100644
--- a/src/server/game/Handlers/QueryHandler.cpp
+++ b/src/server/game/Handlers/QueryHandler.cpp
@@ -39,7 +39,7 @@ void WorldSession::SendNameQueryOpcode(ObjectGuid guid)
Player* player = ObjectAccessor::FindConnectedPlayer(guid);
CharacterInfo const* characterInfo = sWorld->GetCharacterInfo(guid);
- WorldPackets::Character::PlayerNameResponse response;
+ WorldPackets::Query::QueryPlayerNameResponse response;
response.Player = guid;
if (characterInfo)
@@ -68,7 +68,7 @@ void WorldSession::SendNameQueryOpcode(ObjectGuid guid)
SendPacket(response.Write());
}
-void WorldSession::HandleNameQueryOpcode(WorldPackets::Character::QueryPlayerName& packet)
+void WorldSession::HandleNameQueryOpcode(WorldPackets::Query::QueryPlayerName& packet)
{
SendNameQueryOpcode(packet.Player);
}
@@ -326,41 +326,39 @@ void WorldSession::HandleNpcTextQueryOpcode(WorldPacket& recvData)
}
/// Only _static_ data is sent in this packet !!!
-void WorldSession::HandlePageTextQueryOpcode(WorldPacket& recvData)
+void WorldSession::HandlePageTextQueryOpcode(WorldPackets::Query::QueryPageText& packet)
{
TC_LOG_DEBUG("network", "WORLD: Received CMSG_PAGE_TEXT_QUERY");
-
- uint32 pageID;
- recvData >> pageID;
- recvData.read_skip<uint64>(); // guid
+
+ uint32 pageID = packet.PageTextID;
while (pageID)
{
PageText const* pageText = sObjectMgr->GetPageText(pageID);
- // guess size
- WorldPacket data(SMSG_PAGE_TEXT_QUERY_RESPONSE, 50);
- data << pageID;
+
+ WorldPackets::Query::QueryPageTextResponse response;
+ response.PageTextID = pageID;
if (!pageText)
{
- data << "Item page missing.";
- data << uint32(0);
+ response.Allow = false;
pageID = 0;
}
else
{
- std::string Text = pageText->Text;
-
+ response.Allow = true;
+ response.Info.ID = pageID;
+
int loc_idx = GetSessionDbLocaleIndex();
if (loc_idx >= 0)
if (PageTextLocale const* player = sObjectMgr->GetPageTextLocale(pageID))
- ObjectMgr::GetLocaleString(player->Text, loc_idx, Text);
+ ObjectMgr::GetLocaleString(player->Text, loc_idx, response.Info.Text);
- data << Text;
- data << uint32(pageText->NextPageID);
+ response.Info.NextPageID = pageText->NextPageID;
pageID = pageText->NextPageID;
}
- SendPacket(&data);
+
+ SendPacket(response.Write());
TC_LOG_DEBUG("network", "WORLD: Sent SMSG_PAGE_TEXT_QUERY_RESPONSE");
}