diff options
author | Carbenium <carbenium@outlook.com> | 2015-06-29 20:03:11 +0200 |
---|---|---|
committer | Carbenium <carbenium@outlook.com> | 2015-06-29 20:03:11 +0200 |
commit | adb5d3ea5f1acc44b3799b08297343ad1413bc8d (patch) | |
tree | 9b5ad552ad4074f4f75c707822229b520a2a0358 /src/server/game/Handlers/QueryHandler.cpp | |
parent | aacd8feb61e5b596c4af7dc3d2f530b944437424 (diff) | |
parent | 1c0b0f825c70c2fee8c3c5280e5015275056624e (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.cpp | 22 |
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"); } |