diff options
| author | ariel- <ariel-@users.noreply.github.com> | 2017-02-20 18:08:40 -0300 |
|---|---|---|
| committer | ariel- <ariel-@users.noreply.github.com> | 2017-02-21 03:03:58 -0300 |
| commit | dd1aa64563bfb726e1132a135927a02fbb765454 (patch) | |
| tree | 7b60326913feab118019a8c9e5bc3d8999882f7e /src/server/game/Entities/GameObject | |
| parent | c274ea8a98e9751d50301e99eb55577ba19155f2 (diff) | |
Core/Packet: convert query packets into new system.
- Extra c++11-ification of existing code
- Refs #18637
Diffstat (limited to 'src/server/game/Entities/GameObject')
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 47 |
1 files changed, 23 insertions, 24 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 2fc2d44666b..851fdc5edca 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -33,6 +33,8 @@ #include "World.h" #include "Transport.h" +#include "Packets/QueryPackets.h" + void GameObjectTemplate::InitializeQueryData() { WorldPacket queryTemp; @@ -45,7 +47,7 @@ void GameObjectTemplate::InitializeQueryData() WorldPacket GameObjectTemplate::BuildQueryData(LocaleConstant loc) const { - WorldPacket queryTemp(SMSG_GAMEOBJECT_QUERY_RESPONSE, 200); + WorldPackets::Query::QueryGameObjectResponse queryTemp; std::string locName = name; std::string locIconName = IconName; @@ -57,30 +59,27 @@ WorldPacket GameObjectTemplate::BuildQueryData(LocaleConstant loc) const ObjectMgr::GetLocaleString(gameObjectLocale->CastBarCaption, loc, locCastBarCaption); } - queryTemp << uint32(entry); - queryTemp << uint32(type); - queryTemp << uint32(displayId); - queryTemp << locName; - queryTemp << uint8(0) << uint8(0) << uint8(0); // name2, name3, name4 - queryTemp << locIconName; // 2.0.3, string. Icon name to use instead of default icon for go's (ex: "Attack" makes sword) - queryTemp << locCastBarCaption; // 2.0.3, string. Text will appear in Cast Bar when using GO (ex: "Collecting") - queryTemp << unk1; // 2.0.3, string - queryTemp.append(raw.data, MAX_GAMEOBJECT_DATA); - queryTemp << float(size); // go size - - GameObjectQuestItemList const* items = sObjectMgr->GetGameObjectQuestItemList(entry); - if (items) - { - for (size_t i = 0; i < MAX_GAMEOBJECT_QUEST_ITEMS; ++i) - queryTemp << (i < items->size() ? uint32((*items)[i]) : uint32(0)); - } - else - { - for (size_t i = 0; i < MAX_GAMEOBJECT_QUEST_ITEMS; ++i) - queryTemp << uint32(0); - } + queryTemp.GameObjectID = entry; + queryTemp.Allow = true; + + queryTemp.Stats.Type = type; + queryTemp.Stats.DisplayID = displayId; + queryTemp.Stats.Name = locName; + queryTemp.Stats.IconName = locIconName; + queryTemp.Stats.CastBarCaption = locCastBarCaption; + queryTemp.Stats.UnkString = unk1; + memcpy(queryTemp.Stats.Data, raw.data, sizeof(uint32) * MAX_GAMEOBJECT_DATA); + queryTemp.Stats.Size = size; + + for (uint32 i = 0; i < MAX_GAMEOBJECT_QUEST_ITEMS; ++i) + queryTemp.Stats.QuestItems[i] = 0; + + if (GameObjectQuestItemList const* items = sObjectMgr->GetGameObjectQuestItemList(entry)) + for (uint32 i = 0; i < MAX_GAMEOBJECT_QUEST_ITEMS; ++i) + if (i < items->size()) + queryTemp.Stats.QuestItems[i] = (*items)[i]; - return queryTemp; + return *queryTemp.Write(); } GameObject::GameObject() : WorldObject(false), MapObject(), |
