aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-10-29 00:48:21 +0100
committerOvahlord <dreadkiller@gmx.de>2024-11-01 07:54:35 +0100
commitb0fb2d20a8fe7cbb040c890a516b3a691cf2fc39 (patch)
tree30acdd06e3a06ad155a66869e4b29061bc1be4c7 /src
parent4dbc0a522a0d985962daa2541bc81e751a2c43d0 (diff)
Core/Objects: Fixup SMSG_UPDATE_OBJECT related refactors
* Object::BuildValuesUpdateWithFlag is actually unused * Restore UF::UpdateFieldFlag::Owner for players (self packet) (cherry picked from commit 963eb6b80c1231ebaadd29806666c9ae5b79a985)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp13
-rw-r--r--src/server/game/Entities/Creature/Creature.h1
-rw-r--r--src/server/game/Entities/Object/Object.cpp4
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp13
-rw-r--r--src/server/game/Entities/Unit/Unit.h2
5 files changed, 15 insertions, 18 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index ee0a326cabf..cb32cfc0ee9 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -3584,19 +3584,6 @@ void Creature::InitializeInteractSpellId()
SetInteractSpellId(0);
}
-UF::UpdateFieldFlag Creature::GetUpdateFieldFlagsFor(Player const* target) const
-{
- UF::UpdateFieldFlag flags = UF::UpdateFieldFlag::None;
- if (GetOwnerGUID() == target->GetGUID())
- flags |= UF::UpdateFieldFlag::Owner;
-
- if (HasDynamicFlag(UNIT_DYNFLAG_SPECIALINFO))
- if (HasAuraTypeWithCaster(SPELL_AURA_EMPATHY, target->GetGUID()))
- flags |= UF::UpdateFieldFlag::Empath;
-
- return flags;
-}
-
void Creature::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const
{
m_objectData->WriteCreate(*data, flags, this, target);
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index cfa38d7af4c..d8fd4447ecb 100644
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -458,7 +458,6 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
void SetInteractSpellId(int32 interactSpellId) { SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::InteractSpellID), interactSpellId); }
protected:
- UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const* target) const final;
void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override;
void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override;
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 66a9124befd..f9c6d8d135e 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -825,11 +825,7 @@ UF::UpdateFieldFlag Object::GetUpdateFieldFlagsFor(Player const* /*target*/) con
void Object::BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag /*flags*/, Player const* /*target*/) const
{
- std::size_t sizePos = data->wpos();
*data << uint32(0);
- *data << uint32(0);
-
- data->put<uint32>(sizePos, data->wpos() - sizePos - 4);
}
void Object::AddToObjectUpdateIfNeeded()
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 71fb021d40d..7dedf9418c0 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -13770,6 +13770,19 @@ bool Unit::IsSplineEnabled() const
return movespline->Initialized() && !movespline->Finalized();
}
+UF::UpdateFieldFlag Unit::GetUpdateFieldFlagsFor(Player const* target) const
+{
+ UF::UpdateFieldFlag flags = UF::UpdateFieldFlag::None;
+ if (target == this || GetOwnerGUID() == target->GetGUID())
+ flags |= UF::UpdateFieldFlag::Owner;
+
+ if (HasDynamicFlag(UNIT_DYNFLAG_SPECIALINFO))
+ if (HasAuraTypeWithCaster(SPELL_AURA_EMPATHY, target->GetGUID()))
+ flags |= UF::UpdateFieldFlag::Empath;
+
+ return flags;
+}
+
void Unit::DestroyForPlayer(Player* target) const
{
if (Battleground* bg = target->GetBattleground())
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 09ecfeb32ce..74c8ec63f43 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -1825,6 +1825,8 @@ class TC_GAME_API Unit : public WorldObject
protected:
explicit Unit (bool isWorldObject);
+ UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const* target) const override;
+
void DestroyForPlayer(Player* target) const override;
void ClearUpdateMask(bool remove) override;