diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2015-04-11 19:36:46 +0200 |
|---|---|---|
| committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2015-04-11 19:36:46 +0200 |
| commit | 9e2e8a7eeb49e50a9bd1e3b748167623819a504b (patch) | |
| tree | d1f8ddaed919780f22499d1ea055f3ff25ef5445 /src | |
| parent | ff101cd100ed6f11afcaeab0ace160b58da80d6f (diff) | |
Core/PacketIO: Fix SMSG_QUERY_PAGE_TEXT_RESPONSE
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Handlers/QueryHandler.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/QueryPackets.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/QueryPackets.h | 14 |
3 files changed, 16 insertions, 11 deletions
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp index 7dad6bec4e7..9ed3fb48b28 100644 --- a/src/server/game/Handlers/QueryHandler.cpp +++ b/src/server/game/Handlers/QueryHandler.cpp @@ -238,6 +238,8 @@ void WorldSession::HandleQueryPageText(WorldPackets::Query::QueryPageText& packe { PageText const* pageText = sObjectMgr->GetPageText(pageID); + std::string text = pageText->Text; + WorldPackets::Query::QueryPageTextResponse response; response.PageTextID = pageID; @@ -248,15 +250,16 @@ void WorldSession::HandleQueryPageText(WorldPackets::Query::QueryPageText& packe } else { - response.Allow = true; - response.Info.ID = pageID; - LocaleConstant localeConstant = GetSessionDbLocaleIndex(); if (localeConstant >= LOCALE_enUS) if (PageTextLocale const* pageTextLocale = sObjectMgr->GetPageTextLocale(pageID)) - ObjectMgr::GetLocaleString(pageTextLocale->Text, localeConstant, response.Info.Text); + ObjectMgr::GetLocaleString(pageTextLocale->Text, localeConstant, text); + response.Allow = true; + response.Info.ID = pageID; response.Info.NextPageID = pageText->NextPageID; + response.Info.Text = text; + pageID = pageText->NextPageID; } diff --git a/src/server/game/Server/Packets/QueryPackets.cpp b/src/server/game/Server/Packets/QueryPackets.cpp index 81bffdbde60..fd50b354c4c 100644 --- a/src/server/game/Server/Packets/QueryPackets.cpp +++ b/src/server/game/Server/Packets/QueryPackets.cpp @@ -203,6 +203,8 @@ WorldPacket const* WorldPackets::Query::QueryPageTextResponse::Write() _worldPacket << PageTextID; _worldPacket.WriteBit(Allow); + _worldPacket.FlushBits(); + if (Allow) { _worldPacket << Info.ID; diff --git a/src/server/game/Server/Packets/QueryPackets.h b/src/server/game/Server/Packets/QueryPackets.h index 469665e9dda..2f69ae062dd 100644 --- a/src/server/game/Server/Packets/QueryPackets.h +++ b/src/server/game/Server/Packets/QueryPackets.h @@ -129,13 +129,6 @@ namespace WorldPackets uint32 PageTextID = 0; }; - struct PageTextInfo - { - uint32 ID = 0; - uint32 NextPageID = 0; - std::string Text; - }; - class QueryPageTextResponse final : public ServerPacket { public: @@ -143,6 +136,13 @@ namespace WorldPackets WorldPacket const* Write() override; + struct PageTextInfo + { + uint32 ID = 0; + uint32 NextPageID = 0; + std::string Text; + }; + bool Allow = false; PageTextInfo Info; uint32 PageTextID = 0; |
