aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/GameObject
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2017-02-20 18:08:40 -0300
committerariel- <ariel-@users.noreply.github.com>2017-02-21 03:03:58 -0300
commitdd1aa64563bfb726e1132a135927a02fbb765454 (patch)
tree7b60326913feab118019a8c9e5bc3d8999882f7e /src/server/game/Entities/GameObject
parentc274ea8a98e9751d50301e99eb55577ba19155f2 (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.cpp47
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(),