aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/QueryHandler.cpp
diff options
context:
space:
mode:
authorShinDarth <borzifrancesco@gmail.com>2015-06-21 13:32:51 +0200
committerShinDarth <borzifrancesco@gmail.com>2015-06-29 19:21:00 +0200
commit1c0b0f825c70c2fee8c3c5280e5015275056624e (patch)
tree1679ef261145634aa186815bd93407bf8ed5f997 /src/server/game/Handlers/QueryHandler.cpp
parent6b43e72f019b6a91be812f4e4da58a4dae7c21a6 (diff)
DB/World schema backport: move questItem* fields to *_questitem tables
Diffstat (limited to 'src/server/game/Handlers/QueryHandler.cpp')
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp
index d15f21f4ad3..03782481ef7 100644
--- a/src/server/game/Handlers/QueryHandler.cpp
+++ b/src/server/game/Handlers/QueryHandler.cpp
@@ -131,8 +131,15 @@ void WorldSession::HandleCreatureQueryOpcode(WorldPacket& recvData)
data << float(ci->ModHealth); // dmg/hp modifier
data << float(ci->ModMana); // dmg/mana modifier
data << uint8(ci->RacialLeader);
- for (uint32 i = 0; i < MAX_CREATURE_QUEST_ITEMS; ++i)
- data << uint32(ci->questItems[i]); // itemId[6], quest drop
+
+ CreatureQuestItemList const* items = sObjectMgr->GetCreatureQuestItemList(entry);
+ if (items)
+ for (size_t i = 0; i < MAX_CREATURE_QUEST_ITEMS; ++i)
+ data << (i < items->size() ? uint32((*items)[i]) : uint32(0));
+ else
+ for (size_t i = 0; i < MAX_CREATURE_QUEST_ITEMS; ++i)
+ data << uint32(0);
+
data << uint32(ci->movementId); // CreatureMovementInfo.dbc
SendPacket(&data);
TC_LOG_DEBUG("network", "WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE");
@@ -188,8 +195,15 @@ void WorldSession::HandleGameObjectQueryOpcode(WorldPacket& recvData)
data << info->unk1; // 2.0.3, string
data.append(info->raw.data, MAX_GAMEOBJECT_DATA);
data << float(info->size); // go size
- for (uint32 i = 0; i < MAX_GAMEOBJECT_QUEST_ITEMS; ++i)
- data << uint32(info->questItems[i]); // itemId[6], quest drop
+
+ GameObjectQuestItemList const* items = sObjectMgr->GetGameObjectQuestItemList(entry);
+ if (items)
+ for (size_t i = 0; i < MAX_GAMEOBJECT_QUEST_ITEMS; ++i)
+ data << (i < items->size() ? uint32((*items)[i]) : uint32(0));
+ else
+ for (size_t i = 0; i < MAX_GAMEOBJECT_QUEST_ITEMS; ++i)
+ data << uint32(0);
+
SendPacket(&data);
TC_LOG_DEBUG("network", "WORLD: Sent SMSG_GAMEOBJECT_QUERY_RESPONSE");
}