aboutsummaryrefslogtreecommitdiff
path: root/src/game/ItemHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/ItemHandler.cpp')
-rw-r--r--src/game/ItemHandler.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/game/ItemHandler.cpp b/src/game/ItemHandler.cpp
index 6ade13551de..6b3d3fa3c36 100644
--- a/src/game/ItemHandler.cpp
+++ b/src/game/ItemHandler.cpp
@@ -1530,3 +1530,31 @@ void WorldSession::HandleItemRefund(WorldPacket &recv_data)
if (arenaRefund)
_player->ModifyArenaPoints(arenaRefund);
}
+
+/**
+ * Handles the packet sent by the client when requesting information about item text.
+ *
+ * This function is called when player clicks on item which has some flag set
+ */
+void WorldSession::HandleItemTextQuery(WorldPacket & recv_data )
+{
+ uint64 itemGuid;
+ recv_data >> itemGuid;
+
+ sLog.outDebug("CMSG_ITEM_TEXT_QUERY item guid: %u", GUID_LOPART(itemGuid));
+
+ WorldPacket data(SMSG_ITEM_TEXT_QUERY_RESPONSE, (4+10)); // guess size
+
+ if (Item *item = _player->GetItemByGuid(itemGuid))
+ {
+ data << uint8(0); // has text
+ data << uint64(itemGuid); // item guid
+ data << item->GetText();
+ }
+ else
+ {
+ data << uint8(1); // no text
+ }
+
+ SendPacket(&data);
+}