aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/SceneObject
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-10-30 14:41:27 +0100
committerShauren <shauren.trinity@gmail.com>2024-10-30 14:41:27 +0100
commit68db469ee1f992bcdc81de64d6af1007d303be05 (patch)
tree776b61e7c2eaf0a07e1d8a711c09c1131603a13c /src/server/game/Entities/SceneObject
parent91c12c64037ca906c30f9718fadab619359f1616 (diff)
Core/PacketIO: Updated SMSG_UPDATE_OBJECT for 11.0.5
Diffstat (limited to 'src/server/game/Entities/SceneObject')
-rw-r--r--src/server/game/Entities/SceneObject/SceneObject.cpp4
-rw-r--r--src/server/game/Entities/SceneObject/SceneObject.h2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Entities/SceneObject/SceneObject.cpp b/src/server/game/Entities/SceneObject/SceneObject.cpp
index 80f8e2c624e..0c7d6b3396d 100644
--- a/src/server/game/Entities/SceneObject/SceneObject.cpp
+++ b/src/server/game/Entities/SceneObject/SceneObject.cpp
@@ -33,6 +33,8 @@ SceneObject::SceneObject() : WorldObject(false)
m_updateFlag.Stationary = true;
m_updateFlag.SceneObject = true;
+
+ m_entityFragments.Add(WowCS::EntityFragment::Tag_SceneObject, false);
}
SceneObject::~SceneObject() = default;
@@ -156,6 +158,7 @@ void SceneObject::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags,
void SceneObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask,
UF::SceneObjectData::Mask const& requestedSceneObjectMask, Player const* target) const
{
+ UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
UpdateMask<NUM_CLIENT_OBJECT_TYPES> valuesMask;
if (requestedObjectMask.IsAnySet())
valuesMask.Set(TYPEID_OBJECT);
@@ -166,6 +169,7 @@ void SceneObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Objec
ByteBuffer& buffer = PrepareValuesUpdateBuffer(data);
std::size_t sizePos = buffer.wpos();
buffer << uint32(0);
+ BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags);
buffer << uint32(valuesMask.GetBlock(0));
if (valuesMask[TYPEID_OBJECT])
diff --git a/src/server/game/Entities/SceneObject/SceneObject.h b/src/server/game/Entities/SceneObject/SceneObject.h
index 73d4fb31c87..8932e6f235f 100644
--- a/src/server/game/Entities/SceneObject/SceneObject.h
+++ b/src/server/game/Entities/SceneObject/SceneObject.h
@@ -77,7 +77,7 @@ public:
void SetCreatedBySpellCast(ObjectGuid castId) { _createdBySpellCast = castId; }
- UF::UpdateField<UF::SceneObjectData, 0, TYPEID_SCENEOBJECT> m_sceneObjectData;
+ UF::UpdateField<UF::SceneObjectData, int32(WowCS::EntityFragment::CGObject), TYPEID_SCENEOBJECT> m_sceneObjectData;
private:
bool ShouldBeRemoved() const;