diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-10-30 14:41:27 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-10-30 14:41:27 +0100 |
| commit | 68db469ee1f992bcdc81de64d6af1007d303be05 (patch) | |
| tree | 776b61e7c2eaf0a07e1d8a711c09c1131603a13c /src/server/game/Entities/SceneObject | |
| parent | 91c12c64037ca906c30f9718fadab619359f1616 (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.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Entities/SceneObject/SceneObject.h | 2 |
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; |
