diff options
26 files changed, 57 insertions, 90 deletions
diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp index 7c5d4530edf..475c046c4b7 100644 --- a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp +++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp @@ -1376,17 +1376,14 @@ bool AreaTrigger::IsNeverVisibleFor(WorldObject const* seer, bool allowServersid return false; } -void AreaTrigger::BuildValuesCreate(ByteBuffer* data, Player const* target) const +void AreaTrigger::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_areaTriggerData->WriteCreate(*data, flags, this, target); } -void AreaTrigger::BuildValuesUpdate(ByteBuffer* data, Player const* target) const +void AreaTrigger::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.h b/src/server/game/Entities/AreaTrigger/AreaTrigger.h index 8e58d86a7d0..5544ecc9b90 100644 --- a/src/server/game/Entities/AreaTrigger/AreaTrigger.h +++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.h @@ -46,8 +46,8 @@ class TC_GAME_API AreaTrigger final : public WorldObject, public GridObject<Area ~AreaTrigger(); protected: - void BuildValuesCreate(ByteBuffer* data, Player const* target) const override; - void BuildValuesUpdate(ByteBuffer* data, Player const* target) const override; + void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; void ClearUpdateMask(bool remove) override; public: diff --git a/src/server/game/Entities/Conversation/Conversation.cpp b/src/server/game/Entities/Conversation/Conversation.cpp index 03029d01a6d..9d2b615ef8a 100644 --- a/src/server/game/Entities/Conversation/Conversation.cpp +++ b/src/server/game/Entities/Conversation/Conversation.cpp @@ -347,17 +347,14 @@ uint32 Conversation::GetScriptId() const return sConversationDataStore->GetConversationTemplate(GetEntry())->ScriptId; } -void Conversation::BuildValuesCreate(ByteBuffer* data, Player const* target) const +void Conversation::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_conversationData->WriteCreate(*data, flags, this, target); } -void Conversation::BuildValuesUpdate(ByteBuffer* data, Player const* target) const +void Conversation::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) diff --git a/src/server/game/Entities/Conversation/Conversation.h b/src/server/game/Entities/Conversation/Conversation.h index bfa869154e6..3719038e138 100644 --- a/src/server/game/Entities/Conversation/Conversation.h +++ b/src/server/game/Entities/Conversation/Conversation.h @@ -33,8 +33,8 @@ class TC_GAME_API Conversation final : public WorldObject, public GridObject<Con ~Conversation(); protected: - void BuildValuesCreate(ByteBuffer* data, Player const* target) const override; - void BuildValuesUpdate(ByteBuffer* data, Player const* target) const override; + void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; void ClearUpdateMask(bool remove) override; public: diff --git a/src/server/game/Entities/Corpse/Corpse.cpp b/src/server/game/Entities/Corpse/Corpse.cpp index 1d59850ac96..b49dfd031f6 100644 --- a/src/server/game/Entities/Corpse/Corpse.cpp +++ b/src/server/game/Entities/Corpse/Corpse.cpp @@ -238,17 +238,14 @@ bool Corpse::IsExpired(time_t t) const return m_time < t - 3 * DAY; } -void Corpse::BuildValuesCreate(ByteBuffer* data, Player const* target) const +void Corpse::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_corpseData->WriteCreate(*data, flags, this, target); } -void Corpse::BuildValuesUpdate(ByteBuffer* data, Player const* target) const +void Corpse::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) diff --git a/src/server/game/Entities/Corpse/Corpse.h b/src/server/game/Entities/Corpse/Corpse.h index 18b0057d8b3..6fe4d4df213 100644 --- a/src/server/game/Entities/Corpse/Corpse.h +++ b/src/server/game/Entities/Corpse/Corpse.h @@ -56,8 +56,8 @@ class TC_GAME_API Corpse final : public WorldObject, public GridObject<Corpse> ~Corpse(); protected: - void BuildValuesCreate(ByteBuffer* data, Player const* target) const override; - void BuildValuesUpdate(ByteBuffer* data, Player const* target) const override; + void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; void ClearUpdateMask(bool remove) override; public: diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 14cfa015eb0..bcb5344bdbb 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -3784,17 +3784,14 @@ UF::UpdateFieldFlag Creature::GetUpdateFieldFlagsFor(Player const* target) const return flags; } -void Creature::BuildValuesCreate(ByteBuffer* data, Player const* target) const +void Creature::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_unitData->WriteCreate(*data, flags, this, target); } -void Creature::BuildValuesUpdate(ByteBuffer* data, Player const* target) const +void Creature::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index 550563c6ad2..81949f91770 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -470,8 +470,8 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma protected: UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const* target) const final; - void BuildValuesCreate(ByteBuffer* data, Player const* target) const override; - void BuildValuesUpdate(ByteBuffer* data, Player const* target) const override; + void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; public: void BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; diff --git a/src/server/game/Entities/DynamicObject/DynamicObject.cpp b/src/server/game/Entities/DynamicObject/DynamicObject.cpp index f354ef01cab..b36ce45e3d3 100644 --- a/src/server/game/Entities/DynamicObject/DynamicObject.cpp +++ b/src/server/game/Entities/DynamicObject/DynamicObject.cpp @@ -252,17 +252,14 @@ SpellInfo const* DynamicObject::GetSpellInfo() const return sSpellMgr->GetSpellInfo(GetSpellId(), GetMap()->GetDifficultyID()); } -void DynamicObject::BuildValuesCreate(ByteBuffer* data, Player const* target) const +void DynamicObject::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_dynamicObjectData->WriteCreate(*data, flags, this, target); } -void DynamicObject::BuildValuesUpdate(ByteBuffer* data, Player const* target) const +void DynamicObject::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) diff --git a/src/server/game/Entities/DynamicObject/DynamicObject.h b/src/server/game/Entities/DynamicObject/DynamicObject.h index 56358e24106..1f8bb2a0b1c 100644 --- a/src/server/game/Entities/DynamicObject/DynamicObject.h +++ b/src/server/game/Entities/DynamicObject/DynamicObject.h @@ -40,8 +40,8 @@ class TC_GAME_API DynamicObject final : public WorldObject, public GridObject<Dy ~DynamicObject(); protected: - void BuildValuesCreate(ByteBuffer* data, Player const* target) const override; - void BuildValuesUpdate(ByteBuffer* data, Player const* target) const override; + void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; void ClearUpdateMask(bool remove) override; public: diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index d3a5fa4b4dc..80e920f1556 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -4023,17 +4023,14 @@ GameObject* GameObject::GetLinkedTrap() return ObjectAccessor::GetGameObject(*this, m_linkedTrap); } -void GameObject::BuildValuesCreate(ByteBuffer* data, Player const* target) const +void GameObject::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_gameObjectData->WriteCreate(*data, flags, this, target); } -void GameObject::BuildValuesUpdate(ByteBuffer* data, Player const* target) const +void GameObject::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h index 381317169db..94895a50e99 100644 --- a/src/server/game/Entities/GameObject/GameObject.h +++ b/src/server/game/Entities/GameObject/GameObject.h @@ -169,8 +169,8 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject> ~GameObject(); protected: - void BuildValuesCreate(ByteBuffer* data, Player const* target) const override; - void BuildValuesUpdate(ByteBuffer* data, Player const* target) const override; + void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; void ClearUpdateMask(bool remove) override; public: diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp index 481ed961849..2a8e03f64f2 100644 --- a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp +++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp @@ -154,18 +154,15 @@ int64 AzeriteEmpoweredItem::GetRespecCost() const return MAX_MONEY_AMOUNT + 1; } -void AzeriteEmpoweredItem::BuildValuesCreate(ByteBuffer* data, Player const* target) const +void AzeriteEmpoweredItem::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_itemData->WriteCreate(*data, flags, this, target); m_azeriteEmpoweredItemData->WriteCreate(*data, flags, this, target); } -void AzeriteEmpoweredItem::BuildValuesUpdate(ByteBuffer* data, Player const* target) const +void AzeriteEmpoweredItem::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.h b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.h index 0fb82e6e09e..8552e2b0ea8 100644 --- a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.h +++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.h @@ -43,8 +43,8 @@ public: int64 GetRespecCost() const; protected: - void BuildValuesCreate(ByteBuffer* data, Player const* target) const override; - void BuildValuesUpdate(ByteBuffer* data, Player const* target) const override; + void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; void ClearUpdateMask(bool remove) override; public: diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp index aec58210f56..c6e7172ea11 100644 --- a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp +++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp @@ -389,18 +389,15 @@ void AzeriteItem::SetSelectedAzeriteEssence(uint8 slot, uint32 azeriteEssenceId) .ModifyValue(&UF::SelectedAzeriteEssences::AzeriteEssenceID, slot), azeriteEssenceId); } -void AzeriteItem::BuildValuesCreate(ByteBuffer* data, Player const* target) const +void AzeriteItem::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_itemData->WriteCreate(*data, flags, this, target); m_azeriteItemData->WriteCreate(*data, flags, this, target); } -void AzeriteItem::BuildValuesUpdate(ByteBuffer* data, Player const* target) const +void AzeriteItem::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.h b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.h index b682452f1ac..f8e9a8f8cd6 100644 --- a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.h +++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.h @@ -74,8 +74,8 @@ public: void SetSelectedAzeriteEssence(uint8 slot, uint32 azeriteEssenceId); protected: - void BuildValuesCreate(ByteBuffer* data, Player const* target) const override; - void BuildValuesUpdate(ByteBuffer* data, Player const* target) const override; + void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; void ClearUpdateMask(bool remove) override; public: diff --git a/src/server/game/Entities/Item/Container/Bag.cpp b/src/server/game/Entities/Item/Container/Bag.cpp index a949dd6a0f0..14ff0bc52d4 100644 --- a/src/server/game/Entities/Item/Container/Bag.cpp +++ b/src/server/game/Entities/Item/Container/Bag.cpp @@ -182,18 +182,15 @@ void Bag::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) cons m_bagslot[i]->BuildCreateUpdateBlockForPlayer(data, target); } -void Bag::BuildValuesCreate(ByteBuffer* data, Player const* target) const +void Bag::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_itemData->WriteCreate(*data, flags, this, target); m_containerData->WriteCreate(*data, flags, this, target); } -void Bag::BuildValuesUpdate(ByteBuffer* data, Player const* target) const +void Bag::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) diff --git a/src/server/game/Entities/Item/Container/Bag.h b/src/server/game/Entities/Item/Container/Bag.h index acd69e9a265..96c9e1e399a 100644 --- a/src/server/game/Entities/Item/Container/Bag.h +++ b/src/server/game/Entities/Item/Container/Bag.h @@ -54,8 +54,8 @@ class TC_GAME_API Bag : public Item protected: void BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) const override; - void BuildValuesCreate(ByteBuffer* data, Player const* target) const override; - void BuildValuesUpdate(ByteBuffer* data, Player const* target) const override; + void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; void ClearUpdateMask(bool remove) override; public: diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index 67b5ee0200d..90d497ebf91 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -1704,17 +1704,14 @@ UF::UpdateFieldFlag Item::GetUpdateFieldFlagsFor(Player const* target) const return UF::UpdateFieldFlag::None; } -void Item::BuildValuesCreate(ByteBuffer* data, Player const* target) const +void Item::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_itemData->WriteCreate(*data, flags, this, target); } -void Item::BuildValuesUpdate(ByteBuffer* data, Player const* target) const +void Item::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h index 7df8b8534ac..e5b50bed8a6 100644 --- a/src/server/game/Entities/Item/Item.h +++ b/src/server/game/Entities/Item/Item.h @@ -378,8 +378,8 @@ class TC_GAME_API Item : public Object protected: UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const* target) const final; - void BuildValuesCreate(ByteBuffer* data, Player const* target) const override; - void BuildValuesUpdate(ByteBuffer* data, Player const* target) const override; + void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; void ClearUpdateMask(bool remove) override; public: diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 90a33683a5e..37b9d11c79d 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -178,9 +178,11 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c BuildMovementUpdate(&buf, flags, target); + UF::UpdateFieldFlag fieldFlags = GetUpdateFieldFlagsFor(target); std::size_t sizePos = buf.wpos(); buf << uint32(0); - BuildValuesCreate(&buf, target); + buf << uint8(fieldFlags); + BuildValuesCreate(&buf, fieldFlags, target); buf.put<uint32>(sizePos, buf.wpos() - sizePos - 4); data->AddUpdateBlock(); @@ -204,9 +206,10 @@ void Object::BuildValuesUpdateBlockForPlayer(UpdateData* data, Player const* tar { ByteBuffer& buf = PrepareValuesUpdateBuffer(data); + EnumFlag<UF::UpdateFieldFlag> fieldFlags = GetUpdateFieldFlagsFor(target); std::size_t sizePos = buf.wpos(); buf << uint32(0); - BuildValuesUpdate(&buf, target); + BuildValuesUpdate(&buf, fieldFlags, target); buf.put<uint32>(sizePos, buf.wpos() - sizePos - 4); data->AddUpdateBlock(); @@ -264,7 +267,7 @@ void Object::SendOutOfRangeForPlayer(Player* target) const target->SendDirectMessage(&packet); } -void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Player* target) const +void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Player const* target) const { std::vector<uint32> const* PauseTimes = nullptr; if (GameObject const* go = ToGameObject()) diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index f8becf42063..a16a975ed41 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -390,10 +390,10 @@ class TC_GAME_API Object } } - void BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Player* target) const; + void BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Player const* target) const; virtual UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const* target) const; - virtual void BuildValuesCreate(ByteBuffer* data, Player const* target) const = 0; - virtual void BuildValuesUpdate(ByteBuffer* data, Player const* target) const = 0; + virtual void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const = 0; + virtual void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const = 0; public: virtual void BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 468c611d30a..0755ac20a56 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -3644,10 +3644,8 @@ UF::UpdateFieldFlag Player::GetUpdateFieldFlagsFor(Player const* target) const return flags; } -void Player::BuildValuesCreate(ByteBuffer* data, Player const* target) const +void Player::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_unitData->WriteCreate(*data, flags, this, target); m_playerData->WriteCreate(*data, flags, this, target); @@ -3655,9 +3653,8 @@ void Player::BuildValuesCreate(ByteBuffer* data, Player const* target) const m_activePlayerData->WriteCreate(*data, flags, this, target); } -void Player::BuildValuesUpdate(ByteBuffer* data, Player const* target) const +void Player::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); *data << uint32(m_values.GetChangedObjectTypeMask() & ~(uint32(target != this) << TYPEID_ACTIVE_PLAYER)); if (m_values.HasChanged(TYPEID_OBJECT)) diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index e30af788438..aee364a648b 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2187,8 +2187,8 @@ class TC_GAME_API Player final : public Unit, public GridObject<Player> protected: UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const* target) const override; - void BuildValuesCreate(ByteBuffer* data, Player const* target) const override; - void BuildValuesUpdate(ByteBuffer* data, Player const* target) const override; + void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; void ClearUpdateMask(bool remove) override; public: diff --git a/src/server/game/Entities/SceneObject/SceneObject.cpp b/src/server/game/Entities/SceneObject/SceneObject.cpp index e1ccc771db0..80f8e2c624e 100644 --- a/src/server/game/Entities/SceneObject/SceneObject.cpp +++ b/src/server/game/Entities/SceneObject/SceneObject.cpp @@ -136,17 +136,14 @@ bool SceneObject::Create(ObjectGuid::LowType lowGuid, SceneType type, uint32 sce return true; } -void SceneObject::BuildValuesCreate(ByteBuffer* data, Player const* target) const +void SceneObject::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_sceneObjectData->WriteCreate(*data, flags, this, target); } -void SceneObject::BuildValuesUpdate(ByteBuffer* data, Player const* target) const +void SceneObject::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const { - UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) diff --git a/src/server/game/Entities/SceneObject/SceneObject.h b/src/server/game/Entities/SceneObject/SceneObject.h index d085b6d7303..73d4fb31c87 100644 --- a/src/server/game/Entities/SceneObject/SceneObject.h +++ b/src/server/game/Entities/SceneObject/SceneObject.h @@ -36,8 +36,8 @@ public: ~SceneObject(); protected: - void BuildValuesCreate(ByteBuffer* data, Player const* target) const override; - void BuildValuesUpdate(ByteBuffer* data, Player const* target) const override; + void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; void ClearUpdateMask(bool remove) override; public: |
