aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/QueryHandler.cpp
diff options
context:
space:
mode:
authorCarbenium <carbenium@outlook.com>2015-06-29 20:03:11 +0200
committerCarbenium <carbenium@outlook.com>2015-06-29 20:03:11 +0200
commitadb5d3ea5f1acc44b3799b08297343ad1413bc8d (patch)
tree9b5ad552ad4074f4f75c707822229b520a2a0358 /src/server/game/Handlers/QueryHandler.cpp
parentaacd8feb61e5b596c4af7dc3d2f530b944437424 (diff)
parent1c0b0f825c70c2fee8c3c5280e5015275056624e (diff)
Merge pull request #14941 from ShinDarth/db_backports3
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");
}