aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/ItemHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/ItemHandler.cpp')
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp31
1 files changed, 16 insertions, 15 deletions
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index 1ec4e134126..335bb9ce48c 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -310,31 +310,32 @@ void WorldSession::HandleDestroyItemOpcode(WorldPackets::Item::DestroyItem& dest
_player->DestroyItem(destroyItem.ContainerId, destroyItem.SlotNum, true);
}
-void WorldSession::HandleReadItem(WorldPacket& recvData)
+void WorldSession::HandleReadItem(WorldPackets::Item::ReadItem& readItem)
{
- uint8 bag, slot;
- recvData >> bag >> slot;
-
- Item* pItem = _player->GetItemByPos(bag, slot);
-
- if (pItem && pItem->GetTemplate()->GetPageText())
+ Item* item = _player->GetItemByPos(readItem.PackSlot, readItem.Slot);
+ if (item && item->GetTemplate()->GetPageText())
{
- WorldPacket data;
-
- InventoryResult msg = _player->CanUseItem(pItem);
+ InventoryResult msg = _player->CanUseItem(item);
if (msg == EQUIP_ERR_OK)
{
- data.Initialize(SMSG_READ_ITEM_RESULT_OK, 8);
+ WorldPackets::Item::ReadItemResultOK packet;
+ packet.Item = item->GetGUID();
+ SendPacket(packet.Write());
+
TC_LOG_INFO("network", "STORAGE: Item page sent");
}
else
{
- data.Initialize(SMSG_READ_ITEM_RESULT_FAILED, 8);
+ /// @todo: 6.x research new values
+ /*WorldPackets::Item::ReadItemResultFailed packet;
+ packet.Item = item->GetGUID();
+ packet.Subcode = ??;
+ packet.Delay = ??;
+ SendPacket(packet.Write());*/
+
TC_LOG_INFO("network", "STORAGE: Unable to read item");
- _player->SendEquipError(msg, pItem, NULL);
+ _player->SendEquipError(msg, item, NULL);
}
- data << pItem->GetGUID();
- SendPacket(&data);
}
else
_player->SendEquipError(EQUIP_ERR_ITEM_NOT_FOUND, NULL, NULL);