diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 13 | ||||
-rw-r--r-- | src/server/game/Entities/Creature/Creature.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 13 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 2 |
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 bcb5344bdbb..37eeab24446 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -3771,19 +3771,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 81949f91770..9bb49a334a1 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -469,7 +469,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 c7d440306f0..2a3a84db61c 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -794,11 +794,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 fe0b7bd931c..abbee9da81e 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -13749,6 +13749,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 e40827ece4e..d5ac501e56d 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1841,6 +1841,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; |