diff options
author | ariel- <ariel-@users.noreply.github.com> | 2017-02-20 18:08:40 -0300 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2017-02-21 03:03:58 -0300 |
commit | dd1aa64563bfb726e1132a135927a02fbb765454 (patch) | |
tree | 7b60326913feab118019a8c9e5bc3d8999882f7e /src/server/game/Handlers/ItemHandler.cpp | |
parent | c274ea8a98e9751d50301e99eb55577ba19155f2 (diff) |
Core/Packet: convert query packets into new system.
- Extra c++11-ification of existing code
- Refs #18637
Diffstat (limited to 'src/server/game/Handlers/ItemHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/ItemHandler.cpp | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp index 7dca74d59d0..721e0a9b54e 100644 --- a/src/server/game/Handlers/ItemHandler.cpp +++ b/src/server/game/Handlers/ItemHandler.cpp @@ -26,6 +26,8 @@ #include "Item.h" #include "SpellInfo.h" +#include "Packets/QueryPackets.h" + void WorldSession::HandleSplitItemOpcode(WorldPacket& recvData) { //TC_LOG_DEBUG("network", "WORLD: CMSG_SPLIT_ITEM"); @@ -305,31 +307,26 @@ void WorldSession::HandleDestroyItemOpcode(WorldPacket& recvData) } // Only _static_ data send in this packet !!! -void WorldSession::HandleItemQuerySingleOpcode(WorldPacket& recvData) +void WorldSession::HandleItemQuerySingleOpcode(WorldPackets::Query::QueryItemSingle& query) { - //TC_LOG_DEBUG("network", "WORLD: CMSG_ITEM_QUERY_SINGLE"); - uint32 item; - recvData >> item; + TC_LOG_INFO("network", "STORAGE: Item Query = %u", query.ItemID); - TC_LOG_INFO("network", "STORAGE: Item Query = %u", item); - - ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(item); - if (itemTemplate) + if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(query.ItemID)) { if (sWorld->getBoolConfig(CONFIG_CACHE_DATA_QUERIES)) SendPacket(&itemTemplate->QueryData[static_cast<uint32>(GetSessionDbLocaleIndex())]); else { - WorldPacket queryPacket = itemTemplate->BuildQueryData(GetSessionDbLocaleIndex()); - SendPacket(&queryPacket); + WorldPacket response = itemTemplate->BuildQueryData(GetSessionDbLocaleIndex()); + SendPacket(&response); } } else { - TC_LOG_DEBUG("network", "WORLD: CMSG_ITEM_QUERY_SINGLE - NO item INFO! (ENTRY: %u)", item); - WorldPacket data(SMSG_ITEM_QUERY_SINGLE_RESPONSE, 4); - data << uint32(item | 0x80000000); - SendPacket(&data); + TC_LOG_DEBUG("network", "WORLD: CMSG_ITEM_QUERY_SINGLE - NO item INFO! (ENTRY: %u)", query.ItemID); + WorldPackets::Query::QueryItemSingleResponse response; + response.ItemID = query.ItemID; + SendPacket(response.Write()); } } |