From 03d05f2cfe8ace04c78ccc153ed6bf4219f398b9 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 7 Feb 2026 13:00:34 +0100 Subject: [PATCH] Core/Objects: Refactor entity fragment functions to separate global array and move ClearChangesMask there * Additionally unify argument order for UF::Structure::WriteSomething and Object::BuildValuesSomething --- src/server/game/Entities/Account/Account.cpp | 8 +- src/server/game/Entities/Account/Account.h | 2 - .../game/Entities/AreaTrigger/AreaTrigger.cpp | 24 +- .../game/Entities/AreaTrigger/AreaTrigger.h | 6 +- .../Entities/Conversation/Conversation.cpp | 24 +- .../game/Entities/Conversation/Conversation.h | 6 +- src/server/game/Entities/Corpse/Corpse.cpp | 24 +- src/server/game/Entities/Corpse/Corpse.h | 6 +- .../game/Entities/Creature/Creature.cpp | 48 +- src/server/game/Entities/Creature/Creature.h | 8 +- .../Entities/DynamicObject/DynamicObject.cpp | 24 +- .../Entities/DynamicObject/DynamicObject.h | 6 +- .../game/Entities/GameObject/GameObject.cpp | 24 +- .../game/Entities/GameObject/GameObject.h | 6 +- .../Item/AzeriteItem/AzeriteEmpoweredItem.cpp | 32 +- .../Item/AzeriteItem/AzeriteEmpoweredItem.h | 6 +- .../Entities/Item/AzeriteItem/AzeriteItem.cpp | 46 +- .../Entities/Item/AzeriteItem/AzeriteItem.h | 8 +- .../game/Entities/Item/Container/Bag.cpp | 32 +- src/server/game/Entities/Item/Container/Bag.h | 6 +- src/server/game/Entities/Item/Item.cpp | 34 +- src/server/game/Entities/Item/Item.h | 8 +- .../game/Entities/Object/BaseEntity.cpp | 477 +++---- src/server/game/Entities/Object/BaseEntity.h | 26 +- src/server/game/Entities/Object/Object.cpp | 55 +- src/server/game/Entities/Object/Object.h | 20 +- .../Entities/Object/Updates/UpdateField.h | 2 - .../Entities/Object/Updates/UpdateFieldImpl.h | 22 +- .../Entities/Object/Updates/UpdateFields.cpp | 1186 ++++++++--------- .../Entities/Object/Updates/UpdateFields.h | 678 ++++++---- .../Object/Updates/ViewerDependentValues.h | 54 +- .../Object/Updates/WowCSEntityDefinitions.cpp | 32 +- .../Object/Updates/WowCSEntityDefinitions.h | 105 +- src/server/game/Entities/Player/Player.cpp | 52 +- src/server/game/Entities/Player/Player.h | 8 +- .../game/Entities/SceneObject/SceneObject.cpp | 24 +- .../game/Entities/SceneObject/SceneObject.h | 6 +- src/server/game/Entities/Unit/Unit.cpp | 4 +- src/server/game/Entities/Unit/Unit.h | 2 +- 39 files changed, 1657 insertions(+), 1484 deletions(-) diff --git a/src/server/game/Entities/Account/Account.cpp b/src/server/game/Entities/Account/Account.cpp index 1de478212b..7eb319a4fd 100644 --- a/src/server/game/Entities/Account/Account.cpp +++ b/src/server/game/Entities/Account/Account.cpp @@ -27,18 +27,12 @@ Account::Account(WorldSession* session, ObjectGuid guid, std::string&& name) : m { _Create(guid); - m_entityFragments.Add(WowCS::EntityFragment::FHousingStorage_C, false, WowCS::FragmentSerializationTraits<&Account::m_housingStorageData>{}); + m_entityFragments.Add(WowCS::EntityFragment::FHousingStorage_C, false, WowCS::GetRawFragmentData(m_housingStorageData)); // Default value SetUpdateFieldValue(m_values.ModifyValue(&Account::m_housingStorageData).ModifyValue(&UF::HousingStorageData::DecorMaxOwnedCount), 5000); } -void Account::ClearUpdateMask(bool remove) -{ - m_values.ClearChangesMask(&Account::m_housingStorageData); - BaseEntity::ClearUpdateMask(remove); -} - std::string Account::GetNameForLocaleIdx(LocaleConstant /*locale*/) const { return m_name; diff --git a/src/server/game/Entities/Account/Account.h b/src/server/game/Entities/Account/Account.h index 3e6f1360e9..5dbaaa890f 100644 --- a/src/server/game/Entities/Account/Account.h +++ b/src/server/game/Entities/Account/Account.h @@ -29,8 +29,6 @@ class Account final : public BaseEntity public: explicit Account(WorldSession* session, ObjectGuid guid, std::string&& name); - void ClearUpdateMask(bool remove) override; - std::string GetNameForLocaleIdx(LocaleConstant locale) const override; void BuildUpdate(UpdateDataMapType& data_map) override; diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp index 8ede240dac..082bdc840c 100644 --- a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp +++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp @@ -1498,21 +1498,21 @@ bool AreaTrigger::IsNeverVisibleFor(WorldObject const* seer, bool allowServersid return false; } -void AreaTrigger::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void AreaTrigger::BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - m_objectData->WriteCreate(*data, flags, this, target); - m_areaTriggerData->WriteCreate(*data, flags, this, target); + m_objectData->WriteCreate(flags, data, target, this); + m_areaTriggerData->WriteCreate(flags, data, target, this); } -void AreaTrigger::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void AreaTrigger::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - *data << uint32(m_values.GetChangedObjectTypeMask()); + data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) - m_objectData->WriteUpdate(*data, flags, this, target); + m_objectData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_AREATRIGGER)) - m_areaTriggerData->WriteUpdate(*data, flags, this, target); + m_areaTriggerData->WriteUpdate(flags, data, target, this); } void AreaTrigger::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, @@ -1529,14 +1529,14 @@ void AreaTrigger::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Objec ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); - BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags); + BuildEntityFragmentsForValuesUpdateForPlayerWithMask(buffer, flags); buffer << uint32(valuesMask.GetBlock(0)); if (valuesMask[TYPEID_OBJECT]) - m_objectData->WriteUpdate(buffer, requestedObjectMask, true, this, target); + m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true); if (valuesMask[TYPEID_AREATRIGGER]) - m_areaTriggerData->WriteUpdate(buffer, requestedAreaTriggerMask, true, this, target); + m_areaTriggerData->WriteUpdate(requestedAreaTriggerMask, buffer, target, this, true); buffer.put(sizePos, buffer.wpos() - sizePos - 4); @@ -1554,8 +1554,8 @@ void AreaTrigger::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player->SendDirectMessage(&packet); } -void AreaTrigger::ClearUpdateMask(bool remove) +void AreaTrigger::ClearValuesChangesMask() { m_values.ClearChangesMask(&AreaTrigger::m_areaTriggerData); - Object::ClearUpdateMask(remove); + WorldObject::ClearValuesChangesMask(); } diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.h b/src/server/game/Entities/AreaTrigger/AreaTrigger.h index d9b2027c8b..c5c3ef99ff 100644 --- a/src/server/game/Entities/AreaTrigger/AreaTrigger.h +++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.h @@ -78,9 +78,9 @@ class TC_GAME_API AreaTrigger final : public WorldObject, public GridObjectGetConversationTemplate(GetEntry())->ScriptId; } -void Conversation::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Conversation::BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - m_objectData->WriteCreate(*data, flags, this, target); - m_conversationData->WriteCreate(*data, flags, this, target); + m_objectData->WriteCreate(flags, data, target, this); + m_conversationData->WriteCreate(flags, data, target, this); } -void Conversation::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Conversation::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - *data << uint32(m_values.GetChangedObjectTypeMask()); + data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) - m_objectData->WriteUpdate(*data, flags, this, target); + m_objectData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_CONVERSATION)) - m_conversationData->WriteUpdate(*data, flags, this, target); + m_conversationData->WriteUpdate(flags, data, target, this); } void Conversation::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, @@ -400,14 +400,14 @@ void Conversation::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Obje ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); - BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags); + BuildEntityFragmentsForValuesUpdateForPlayerWithMask(buffer, flags); buffer << uint32(valuesMask.GetBlock(0)); if (valuesMask[TYPEID_OBJECT]) - m_objectData->WriteUpdate(buffer, requestedObjectMask, true, this, target); + m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true); if (valuesMask[TYPEID_CONVERSATION]) - m_conversationData->WriteUpdate(buffer, requestedConversationMask, true, this, target); + m_conversationData->WriteUpdate(requestedConversationMask, buffer, target, this, true); buffer.put(sizePos, buffer.wpos() - sizePos - 4); @@ -425,8 +425,8 @@ void Conversation::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player->SendDirectMessage(&packet); } -void Conversation::ClearUpdateMask(bool remove) +void Conversation::ClearValuesChangesMask() { m_values.ClearChangesMask(&Conversation::m_conversationData); - Object::ClearUpdateMask(remove); + WorldObject::ClearValuesChangesMask(); } diff --git a/src/server/game/Entities/Conversation/Conversation.h b/src/server/game/Entities/Conversation/Conversation.h index aed7f7318e..43483c4374 100644 --- a/src/server/game/Entities/Conversation/Conversation.h +++ b/src/server/game/Entities/Conversation/Conversation.h @@ -33,9 +33,9 @@ class TC_GAME_API Conversation final : public WorldObject, public GridObjectWriteCreate(*data, flags, this, target); - m_corpseData->WriteCreate(*data, flags, this, target); + m_objectData->WriteCreate(flags, data, target, this); + m_corpseData->WriteCreate(flags, data, target, this); } -void Corpse::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Corpse::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - *data << uint32(m_values.GetChangedObjectTypeMask()); + data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) - m_objectData->WriteUpdate(*data, flags, this, target); + m_objectData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_CORPSE)) - m_corpseData->WriteUpdate(*data, flags, this, target); + m_corpseData->WriteUpdate(flags, data, target, this); } void Corpse::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, @@ -270,14 +270,14 @@ void Corpse::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); - BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags); + BuildEntityFragmentsForValuesUpdateForPlayerWithMask(buffer, flags); buffer << uint32(valuesMask.GetBlock(0)); if (valuesMask[TYPEID_OBJECT]) - m_objectData->WriteUpdate(buffer, requestedObjectMask, true, this, target); + m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true); if (valuesMask[TYPEID_CORPSE]) - m_corpseData->WriteUpdate(buffer, requestedCorpseMask, true, this, target); + m_corpseData->WriteUpdate(requestedCorpseMask, buffer, target, this, true); buffer.put(sizePos, buffer.wpos() - sizePos - 4); @@ -295,8 +295,8 @@ void Corpse::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* playe player->SendDirectMessage(&packet); } -void Corpse::ClearUpdateMask(bool remove) +void Corpse::ClearValuesChangesMask() { m_values.ClearChangesMask(&Corpse::m_corpseData); - Object::ClearUpdateMask(remove); + WorldObject::ClearValuesChangesMask(); } diff --git a/src/server/game/Entities/Corpse/Corpse.h b/src/server/game/Entities/Corpse/Corpse.h index 3af6cb7b58..864c2d05a7 100644 --- a/src/server/game/Entities/Corpse/Corpse.h +++ b/src/server/game/Entities/Corpse/Corpse.h @@ -56,9 +56,9 @@ class TC_GAME_API Corpse final : public WorldObject, public GridObject ~Corpse(); protected: - 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; + void BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void ClearValuesChangesMask() override; public: void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 3ca8b75f92..e075cc62ee 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -3304,11 +3304,13 @@ void Creature::SetVendor(NPCFlags flags, bool apply) VendorDataTypeFlags vendorFlags = static_cast(AsUnderlyingType(flags) >> 7); if (apply) { - if (!m_vendorData) - m_entityFragments.Add(WowCS::EntityFragment::FVendor_C, IsInWorld(), WowCS::FragmentSerializationTraits<&Creature::m_vendorData>{}); + bool addFragment = !m_vendorData.has_value(); SetNpcFlag(flags); SetUpdateFieldFlagValue(m_values.ModifyValue(&Creature::m_vendorData, 0).ModifyValue(&UF::VendorData::Flags), AsUnderlyingType(vendorFlags)); + + if (addFragment) + m_entityFragments.Add(WowCS::EntityFragment::FVendor_C, IsInWorld(), WowCS::GetRawFragmentData(m_vendorData)); } else if (m_vendorData) { @@ -3326,11 +3328,13 @@ void Creature::SetPetitioner(bool apply) { if (apply) { - if (!m_vendorData) - m_entityFragments.Add(WowCS::EntityFragment::FVendor_C, IsInWorld(), WowCS::FragmentSerializationTraits<&Creature::m_vendorData>{}); + bool addFragment = !m_vendorData.has_value(); SetNpcFlag(UNIT_NPC_FLAG_PETITIONER); SetUpdateFieldFlagValue(m_values.ModifyValue(&Creature::m_vendorData, 0).ModifyValue(&UF::VendorData::Flags), AsUnderlyingType(VendorDataTypeFlags::Petition)); + + if (addFragment) + m_entityFragments.Add(WowCS::EntityFragment::FVendor_C, IsInWorld(), WowCS::GetRawFragmentData(m_vendorData)); } else if (m_vendorData) { @@ -3872,33 +3876,33 @@ void Creature::InitializeInteractSpellId() SetInteractSpellId(0); } -void Creature::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Creature::BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - m_objectData->WriteCreate(*data, flags, this, target); - m_unitData->WriteCreate(*data, flags, this, target); + m_objectData->WriteCreate(flags, data, target, this); + m_unitData->WriteCreate(flags, data, target, this); } -void Creature::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Creature::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - *data << uint32(m_values.GetChangedObjectTypeMask()); + data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) - m_objectData->WriteUpdate(*data, flags, this, target); + m_objectData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_UNIT)) - m_unitData->WriteUpdate(*data, flags, this, target); + m_unitData->WriteUpdate(flags, data, target, this); } -void Creature::BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Creature::BuildValuesUpdateWithFlag(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { UpdateMask valuesMask; valuesMask.Set(TYPEID_UNIT); - *data << uint32(valuesMask.GetBlock(0)); + data << uint32(valuesMask.GetBlock(0)); UF::UnitData::Mask mask; - m_unitData->AppendAllowedFieldsMaskForFlag(mask, flags); - m_unitData->WriteUpdate(*data, mask, true, this, target); + UF::UnitData::AppendAllowedFieldsMaskForFlag(mask, flags); + m_unitData->WriteUpdate(mask, data, target, this, true); } void Creature::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, @@ -3910,21 +3914,21 @@ void Creature::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectDa valuesMask.Set(TYPEID_OBJECT); UF::UnitData::Mask unitMask = requestedUnitMask; - m_unitData->FilterDisallowedFieldsMaskForFlag(unitMask, flags); + UF::UnitData::FilterDisallowedFieldsMaskForFlag(unitMask, flags); if (unitMask.IsAnySet()) valuesMask.Set(TYPEID_UNIT); ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); - BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags); + BuildEntityFragmentsForValuesUpdateForPlayerWithMask(buffer, flags); buffer << uint32(valuesMask.GetBlock(0)); if (valuesMask[TYPEID_OBJECT]) - m_objectData->WriteUpdate(buffer, requestedObjectMask, true, this, target); + m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true); if (valuesMask[TYPEID_UNIT]) - m_unitData->WriteUpdate(buffer, unitMask, true, this, target); + m_unitData->WriteUpdate(unitMask, buffer, target, this, true); buffer.put(sizePos, buffer.wpos() - sizePos - 4); @@ -3941,9 +3945,3 @@ void Creature::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* pla udata.BuildPacket(&packet); player->SendDirectMessage(&packet); } - -void Creature::ClearUpdateMask(bool remove) -{ - m_values.ClearChangesMask(&Creature::m_vendorData); - Unit::ClearUpdateMask(remove); -} diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index 7cecf8e1d3..a21bb94326 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -492,11 +492,11 @@ class TC_GAME_API Creature : public Unit, public GridObject, public Ma UF::OptionalUpdateField m_vendorData; protected: - 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 BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; public: - void BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdateWithFlag(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, UF::UnitData::Mask const& requestedUnitMask, Player const* target) const; @@ -512,8 +512,6 @@ class TC_GAME_API Creature : public Unit, public GridObject, public Ma }; protected: - void ClearUpdateMask(bool remove) override; - bool CreateFromProto(ObjectGuid::LowType guidlow, uint32 entry, CreatureData const* data = nullptr, uint32 vehId = 0); bool InitEntry(uint32 entry, CreatureData const* data = nullptr); diff --git a/src/server/game/Entities/DynamicObject/DynamicObject.cpp b/src/server/game/Entities/DynamicObject/DynamicObject.cpp index d59de6ae94..fdb2a12373 100644 --- a/src/server/game/Entities/DynamicObject/DynamicObject.cpp +++ b/src/server/game/Entities/DynamicObject/DynamicObject.cpp @@ -248,21 +248,21 @@ SpellInfo const* DynamicObject::GetSpellInfo() const return sSpellMgr->GetSpellInfo(GetSpellId(), GetMap()->GetDifficultyID()); } -void DynamicObject::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void DynamicObject::BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - m_objectData->WriteCreate(*data, flags, this, target); - m_dynamicObjectData->WriteCreate(*data, flags, this, target); + m_objectData->WriteCreate(flags, data, target, this); + m_dynamicObjectData->WriteCreate(flags, data, target, this); } -void DynamicObject::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void DynamicObject::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - *data << uint32(m_values.GetChangedObjectTypeMask()); + data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) - m_objectData->WriteUpdate(*data, flags, this, target); + m_objectData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_DYNAMICOBJECT)) - m_dynamicObjectData->WriteUpdate(*data, flags, this, target); + m_dynamicObjectData->WriteUpdate(flags, data, target, this); } void DynamicObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, @@ -279,14 +279,14 @@ void DynamicObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Obj ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); - BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags); + BuildEntityFragmentsForValuesUpdateForPlayerWithMask(buffer, flags); buffer << uint32(valuesMask.GetBlock(0)); if (valuesMask[TYPEID_OBJECT]) - m_objectData->WriteUpdate(buffer, requestedObjectMask, true, this, target); + m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true); if (valuesMask[TYPEID_DYNAMICOBJECT]) - m_dynamicObjectData->WriteUpdate(buffer, requestedDynamicObjectMask, true, this, target); + m_dynamicObjectData->WriteUpdate(requestedDynamicObjectMask, buffer, target, this, true); buffer.put(sizePos, buffer.wpos() - sizePos - 4); @@ -304,8 +304,8 @@ void DynamicObject::ValuesUpdateForPlayerWithMaskSender::operator()(Player const player->SendDirectMessage(&packet); } -void DynamicObject::ClearUpdateMask(bool remove) +void DynamicObject::ClearValuesChangesMask() { m_values.ClearChangesMask(&DynamicObject::m_dynamicObjectData); - Object::ClearUpdateMask(remove); + WorldObject::ClearValuesChangesMask(); } diff --git a/src/server/game/Entities/DynamicObject/DynamicObject.h b/src/server/game/Entities/DynamicObject/DynamicObject.h index 79c66f9a46..5dc501f240 100644 --- a/src/server/game/Entities/DynamicObject/DynamicObject.h +++ b/src/server/game/Entities/DynamicObject/DynamicObject.h @@ -40,9 +40,9 @@ class TC_GAME_API DynamicObject final : public WorldObject, public GridObjectWriteCreate(*data, flags, this, target); - m_gameObjectData->WriteCreate(*data, flags, this, target); + m_objectData->WriteCreate(flags, data, target, this); + m_gameObjectData->WriteCreate(flags, data, target, this); } -void GameObject::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void GameObject::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - *data << uint32(m_values.GetChangedObjectTypeMask()); + data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) - m_objectData->WriteUpdate(*data, flags, this, target); + m_objectData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_GAMEOBJECT)) - m_gameObjectData->WriteUpdate(*data, flags, this, target); + m_gameObjectData->WriteUpdate(flags, data, target, this); } void GameObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, @@ -4105,14 +4105,14 @@ void GameObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Object ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); - BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags); + BuildEntityFragmentsForValuesUpdateForPlayerWithMask(buffer, flags); buffer << uint32(valuesMask.GetBlock(0)); if (valuesMask[TYPEID_OBJECT]) - m_objectData->WriteUpdate(buffer, requestedObjectMask, true, this, target); + m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true); if (valuesMask[TYPEID_GAMEOBJECT]) - m_gameObjectData->WriteUpdate(buffer, requestedGameObjectMask, true, this, target); + m_gameObjectData->WriteUpdate(requestedGameObjectMask, buffer, target, this, true); buffer.put(sizePos, buffer.wpos() - sizePos - 4); @@ -4130,10 +4130,10 @@ void GameObject::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* p player->SendDirectMessage(&packet); } -void GameObject::ClearUpdateMask(bool remove) +void GameObject::ClearValuesChangesMask() { m_values.ClearChangesMask(&GameObject::m_gameObjectData); - Object::ClearUpdateMask(remove); + WorldObject::ClearValuesChangesMask(); } std::span GameObject::GetPauseTimes() const diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h index 97333c937e..cfcc9b1c40 100644 --- a/src/server/game/Entities/GameObject/GameObject.h +++ b/src/server/game/Entities/GameObject/GameObject.h @@ -169,9 +169,9 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject ~GameObject(); protected: - 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; + void BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void ClearValuesChangesMask() override; public: void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp index 0dffdacb8a..5ab7fb4bde 100644 --- a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp +++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp @@ -155,25 +155,25 @@ int64 AzeriteEmpoweredItem::GetRespecCost() const return MAX_MONEY_AMOUNT + 1; } -void AzeriteEmpoweredItem::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void AzeriteEmpoweredItem::BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - m_objectData->WriteCreate(*data, flags, this, target); - m_itemData->WriteCreate(*data, flags, this, target); - m_azeriteEmpoweredItemData->WriteCreate(*data, flags, this, target); + m_objectData->WriteCreate(flags, data, target, this); + m_itemData->WriteCreate(flags, data, target, this); + m_azeriteEmpoweredItemData->WriteCreate(flags, data, target, this); } -void AzeriteEmpoweredItem::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void AzeriteEmpoweredItem::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - *data << uint32(m_values.GetChangedObjectTypeMask()); + data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) - m_objectData->WriteUpdate(*data, flags, this, target); + m_objectData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_ITEM)) - m_itemData->WriteUpdate(*data, flags, this, target); + m_itemData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_AZERITE_EMPOWERED_ITEM)) - m_azeriteEmpoweredItemData->WriteUpdate(*data, flags, this, target); + m_azeriteEmpoweredItemData->WriteUpdate(flags, data, target, this); } void AzeriteEmpoweredItem::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, @@ -185,7 +185,7 @@ void AzeriteEmpoweredItem::BuildValuesUpdateForPlayerWithMask(UpdateData* data, valuesMask.Set(TYPEID_OBJECT); UF::ItemData::Mask itemMask = requestedItemMask; - m_itemData->FilterDisallowedFieldsMaskForFlag(itemMask, flags); + UF::ItemData::FilterDisallowedFieldsMaskForFlag(itemMask, flags); if (itemMask.IsAnySet()) valuesMask.Set(TYPEID_ITEM); @@ -195,17 +195,17 @@ void AzeriteEmpoweredItem::BuildValuesUpdateForPlayerWithMask(UpdateData* data, ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); - BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags); + BuildEntityFragmentsForValuesUpdateForPlayerWithMask(buffer, flags); buffer << uint32(valuesMask.GetBlock(0)); if (valuesMask[TYPEID_OBJECT]) - m_objectData->WriteUpdate(buffer, requestedObjectMask, true, this, target); + m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true); if (valuesMask[TYPEID_ITEM]) - m_itemData->WriteUpdate(buffer, itemMask, true, this, target); + m_itemData->WriteUpdate(itemMask, buffer, target, this, true); if (valuesMask[TYPEID_AZERITE_EMPOWERED_ITEM]) - m_azeriteEmpoweredItemData->WriteUpdate(buffer, requestedAzeriteEmpoweredItemMask, true, this, target); + m_azeriteEmpoweredItemData->WriteUpdate(requestedAzeriteEmpoweredItemMask, buffer, target, this, true); buffer.put(sizePos, buffer.wpos() - sizePos - 4); @@ -223,10 +223,10 @@ void AzeriteEmpoweredItem::ValuesUpdateForPlayerWithMaskSender::operator()(Playe player->SendDirectMessage(&packet); } -void AzeriteEmpoweredItem::ClearUpdateMask(bool remove) +void AzeriteEmpoweredItem::ClearValuesChangesMask() { m_values.ClearChangesMask(&AzeriteEmpoweredItem::m_azeriteEmpoweredItemData); - Item::ClearUpdateMask(remove); + Item::ClearValuesChangesMask(); } void AzeriteEmpoweredItem::InitAzeritePowerData() diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.h b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.h index 07ad0b0d96..3bf0b9a61b 100644 --- a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.h +++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.h @@ -43,9 +43,9 @@ public: int64 GetRespecCost() const; protected: - 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; + void BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void ClearValuesChangesMask() override; public: void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, UF::ItemData::Mask const& requestedItemMask, diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp index 213dac345d..7b87b88b8d 100644 --- a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp +++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp @@ -390,42 +390,42 @@ void AzeriteItem::SetSelectedAzeriteEssence(uint8 slot, uint32 azeriteEssenceId) .ModifyValue(&UF::SelectedAzeriteEssences::AzeriteEssenceID, slot), azeriteEssenceId); } -void AzeriteItem::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void AzeriteItem::BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - m_objectData->WriteCreate(*data, flags, this, target); - m_itemData->WriteCreate(*data, flags, this, target); - m_azeriteItemData->WriteCreate(*data, flags, this, target); + m_objectData->WriteCreate(flags, data, target, this); + m_itemData->WriteCreate(flags, data, target, this); + m_azeriteItemData->WriteCreate(flags, data, target, this); } -void AzeriteItem::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void AzeriteItem::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - *data << uint32(m_values.GetChangedObjectTypeMask()); + data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) - m_objectData->WriteUpdate(*data, flags, this, target); + m_objectData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_ITEM)) - m_itemData->WriteUpdate(*data, flags, this, target); + m_itemData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_AZERITE_ITEM)) - m_azeriteItemData->WriteUpdate(*data, flags, this, target); + m_azeriteItemData->WriteUpdate(flags, data, target, this); } -void AzeriteItem::BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void AzeriteItem::BuildValuesUpdateWithFlag(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { UpdateMask valuesMask; valuesMask.Set(TYPEID_ITEM); valuesMask.Set(TYPEID_AZERITE_ITEM); - *data << uint32(valuesMask.GetBlock(0)); + data << uint32(valuesMask.GetBlock(0)); UF::ItemData::Mask mask; - m_itemData->AppendAllowedFieldsMaskForFlag(mask, flags); - m_itemData->WriteUpdate(*data, mask, true, this, target); + UF::ItemData::AppendAllowedFieldsMaskForFlag(mask, flags); + m_itemData->WriteUpdate(mask, data, target, this, true); UF::AzeriteItemData::Mask mask2; - m_azeriteItemData->AppendAllowedFieldsMaskForFlag(mask2, flags); - m_azeriteItemData->WriteUpdate(*data, mask2, true, this, target); + UF::AzeriteItemData::AppendAllowedFieldsMaskForFlag(mask2, flags); + m_azeriteItemData->WriteUpdate(mask2, data, target, this, true); } void AzeriteItem::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, @@ -437,29 +437,29 @@ void AzeriteItem::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Objec valuesMask.Set(TYPEID_OBJECT); UF::ItemData::Mask itemMask = requestedItemMask; - m_itemData->FilterDisallowedFieldsMaskForFlag(itemMask, flags); + UF::ItemData::FilterDisallowedFieldsMaskForFlag(itemMask, flags); if (itemMask.IsAnySet()) valuesMask.Set(TYPEID_ITEM); UF::AzeriteItemData::Mask azeriteItemMask = requestedAzeriteItemMask; - m_azeriteItemData->FilterDisallowedFieldsMaskForFlag(azeriteItemMask, flags); + UF::AzeriteItemData::FilterDisallowedFieldsMaskForFlag(azeriteItemMask, flags); if (azeriteItemMask.IsAnySet()) valuesMask.Set(TYPEID_AZERITE_ITEM); ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); - BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags); + BuildEntityFragmentsForValuesUpdateForPlayerWithMask(buffer, flags); buffer << uint32(valuesMask.GetBlock(0)); if (valuesMask[TYPEID_OBJECT]) - m_objectData->WriteUpdate(buffer, requestedObjectMask, true, this, target); + m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true); if (valuesMask[TYPEID_ITEM]) - m_itemData->WriteUpdate(buffer, itemMask, true, this, target); + m_itemData->WriteUpdate(itemMask, buffer, target, this, true); if (valuesMask[TYPEID_AZERITE_ITEM]) - m_azeriteItemData->WriteUpdate(buffer, azeriteItemMask, true, this, target); + m_azeriteItemData->WriteUpdate(azeriteItemMask, buffer, target, this, true); buffer.put(sizePos, buffer.wpos() - sizePos - 4); @@ -477,10 +477,10 @@ void AzeriteItem::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player->SendDirectMessage(&packet); } -void AzeriteItem::ClearUpdateMask(bool remove) +void AzeriteItem::ClearValuesChangesMask() { m_values.ClearChangesMask(&AzeriteItem::m_azeriteItemData); - Item::ClearUpdateMask(remove); + Item::ClearValuesChangesMask(); } void AzeriteItem::UnlockDefaultMilestones() diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.h b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.h index ba6af2411f..e344b59e25 100644 --- a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.h +++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.h @@ -74,12 +74,12 @@ public: void SetSelectedAzeriteEssence(uint8 slot, uint32 azeriteEssenceId); protected: - 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; + void BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void ClearValuesChangesMask() override; public: - void BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdateWithFlag(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, UF::ItemData::Mask const& requestedItemMask, UF::AzeriteItemData::Mask const& requestedAzeriteItemMask, Player const* target) const; diff --git a/src/server/game/Entities/Item/Container/Bag.cpp b/src/server/game/Entities/Item/Container/Bag.cpp index 70ae39e471..3c35e5ea38 100644 --- a/src/server/game/Entities/Item/Container/Bag.cpp +++ b/src/server/game/Entities/Item/Container/Bag.cpp @@ -183,25 +183,25 @@ void Bag::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) cons m_bagslot[i]->BuildCreateUpdateBlockForPlayer(data, target); } -void Bag::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Bag::BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - m_objectData->WriteCreate(*data, flags, this, target); - m_itemData->WriteCreate(*data, flags, this, target); - m_containerData->WriteCreate(*data, flags, this, target); + m_objectData->WriteCreate(flags, data, target, this); + m_itemData->WriteCreate(flags, data, target, this); + m_containerData->WriteCreate(flags, data, target, this); } -void Bag::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Bag::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - *data << uint32(m_values.GetChangedObjectTypeMask()); + data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) - m_objectData->WriteUpdate(*data, flags, this, target); + m_objectData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_ITEM)) - m_itemData->WriteUpdate(*data, flags, this, target); + m_itemData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_CONTAINER)) - m_containerData->WriteUpdate(*data, flags, this, target); + m_containerData->WriteUpdate(flags, data, target, this); } void Bag::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, @@ -213,7 +213,7 @@ void Bag::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::M valuesMask.Set(TYPEID_OBJECT); UF::ItemData::Mask itemMask = requestedItemMask; - m_itemData->FilterDisallowedFieldsMaskForFlag(itemMask, flags); + UF::ItemData::FilterDisallowedFieldsMaskForFlag(itemMask, flags); if (itemMask.IsAnySet()) valuesMask.Set(TYPEID_ITEM); @@ -223,17 +223,17 @@ void Bag::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::M ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); - BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags); + BuildEntityFragmentsForValuesUpdateForPlayerWithMask(buffer, flags); buffer << uint32(valuesMask.GetBlock(0)); if (valuesMask[TYPEID_OBJECT]) - m_objectData->WriteUpdate(buffer, requestedObjectMask, true, this, target); + m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true); if (valuesMask[TYPEID_ITEM]) - m_itemData->WriteUpdate(buffer, itemMask, true, this, target); + m_itemData->WriteUpdate(itemMask, buffer, target, this, true); if (valuesMask[TYPEID_CONTAINER]) - m_containerData->WriteUpdate(buffer, requestedContainerMask, true, this, target); + m_containerData->WriteUpdate(requestedContainerMask, buffer, target, this, true); buffer.put(sizePos, buffer.wpos() - sizePos - 4); @@ -251,10 +251,10 @@ void Bag::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) player->SendDirectMessage(&packet); } -void Bag::ClearUpdateMask(bool remove) +void Bag::ClearValuesChangesMask() { m_values.ClearChangesMask(&Bag::m_containerData); - Item::ClearUpdateMask(remove); + Item::ClearValuesChangesMask(); } // If the bag is empty returns true diff --git a/src/server/game/Entities/Item/Container/Bag.h b/src/server/game/Entities/Item/Container/Bag.h index 0a7d359046..25c5248be0 100644 --- a/src/server/game/Entities/Item/Container/Bag.h +++ b/src/server/game/Entities/Item/Container/Bag.h @@ -54,9 +54,9 @@ class TC_GAME_API Bag : public Item protected: void BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* 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; + void BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void ClearValuesChangesMask() override; public: void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, UF::ItemData::Mask const& requestedItemMask, diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index 2eab8cc081..9e1d8280a6 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -1803,33 +1803,33 @@ UF::UpdateFieldFlag Item::GetUpdateFieldFlagsFor(Player const* target) const return UF::UpdateFieldFlag::None; } -void Item::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Item::BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - m_objectData->WriteCreate(*data, flags, this, target); - m_itemData->WriteCreate(*data, flags, this, target); + m_objectData->WriteCreate(flags, data, target, this); + m_itemData->WriteCreate(flags, data, target, this); } -void Item::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Item::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - *data << uint32(m_values.GetChangedObjectTypeMask()); + data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) - m_objectData->WriteUpdate(*data, flags, this, target); + m_objectData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_ITEM)) - m_itemData->WriteUpdate(*data, flags, this, target); + m_itemData->WriteUpdate(flags, data, target, this); } -void Item::BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Item::BuildValuesUpdateWithFlag(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { UpdateMask valuesMask; valuesMask.Set(TYPEID_ITEM); - *data << uint32(valuesMask.GetBlock(0)); + data << uint32(valuesMask.GetBlock(0)); UF::ItemData::Mask mask; - m_itemData->AppendAllowedFieldsMaskForFlag(mask, flags); - m_itemData->WriteUpdate(*data, mask, true, this, target); + UF::ItemData::AppendAllowedFieldsMaskForFlag(mask, flags); + m_itemData->WriteUpdate(mask, data, target, this, true); } void Item::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, @@ -1841,21 +1841,21 @@ void Item::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData:: valuesMask.Set(TYPEID_OBJECT); UF::ItemData::Mask itemMask = requestedItemMask; - m_itemData->FilterDisallowedFieldsMaskForFlag(itemMask, flags); + UF::ItemData::FilterDisallowedFieldsMaskForFlag(itemMask, flags); if (itemMask.IsAnySet()) valuesMask.Set(TYPEID_ITEM); ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); - BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags); + BuildEntityFragmentsForValuesUpdateForPlayerWithMask(buffer, flags); buffer << uint32(valuesMask.GetBlock(0)); if (valuesMask[TYPEID_OBJECT]) - m_objectData->WriteUpdate(buffer, requestedObjectMask, true, this, target); + m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true); if (valuesMask[TYPEID_ITEM]) - m_itemData->WriteUpdate(buffer, itemMask, true, this, target); + m_itemData->WriteUpdate(itemMask, buffer, target, this, true); buffer.put(sizePos, buffer.wpos() - sizePos - 4); @@ -1873,10 +1873,10 @@ void Item::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player) player->SendDirectMessage(&packet); } -void Item::ClearUpdateMask(bool remove) +void Item::ClearValuesChangesMask() { m_values.ClearChangesMask(&Item::m_itemData); - Object::ClearUpdateMask(remove); + Object::ClearValuesChangesMask(); } bool Item::AddToObjectUpdate() diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h index e415c6e1f8..6030dcff05 100644 --- a/src/server/game/Entities/Item/Item.h +++ b/src/server/game/Entities/Item/Item.h @@ -387,12 +387,12 @@ class TC_GAME_API Item : public Object 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; - void ClearUpdateMask(bool remove) override; + void BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void ClearValuesChangesMask() override; public: - void BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdateWithFlag(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, UF::ItemData::Mask const& requestedItemMask, Player const* target) const; diff --git a/src/server/game/Entities/Object/BaseEntity.cpp b/src/server/game/Entities/Object/BaseEntity.cpp index db10953c74..ea0ca37684 100644 --- a/src/server/game/Entities/Object/BaseEntity.cpp +++ b/src/server/game/Entities/Object/BaseEntity.cpp @@ -28,6 +28,30 @@ #include "UpdateData.h" #include "Vehicle.h" +namespace WowCS +{ +struct FragmentInfoInitializer +{ + FragmentInfoInitializer() + { + EntityFragmentInfos::Register(EntityFragment::FVendor_C, WowCS::FragmentSerializationTraits{}); + EntityFragmentInfos::Register(EntityFragment::FMeshObjectData_C, WowCS::FragmentSerializationTraits{}); + EntityFragmentInfos::Register(EntityFragment::FHousingDecor_C, WowCS::FragmentSerializationTraits{}); + EntityFragmentInfos::Register(EntityFragment::FHousingRoom_C, WowCS::FragmentSerializationTraits{}); + EntityFragmentInfos::Register(EntityFragment::FHousingRoomComponentMesh_C, WowCS::FragmentSerializationTraits{}); + EntityFragmentInfos::Register(EntityFragment::FHousingPlayerHouse_C, WowCS::FragmentSerializationTraits{}); + EntityFragmentInfos::Register(EntityFragment::FJamHousingCornerstone_C, WowCS::FragmentSerializationTraits{}); + EntityFragmentInfos::Register(EntityFragment::FHousingPlotAreaTrigger_C, WowCS::FragmentSerializationTraits{}); + EntityFragmentInfos::Register(EntityFragment::FNeighborhoodMirrorData_C, WowCS::FragmentSerializationTraits{}); + EntityFragmentInfos::Register(EntityFragment::FMirroredPositionData_C, WowCS::FragmentSerializationTraits{}); + EntityFragmentInfos::Register(EntityFragment::PlayerHouseInfoComponent_C, WowCS::FragmentSerializationTraits{}); + EntityFragmentInfos::Register(EntityFragment::FHousingStorage_C, WowCS::FragmentSerializationTraits{}); + EntityFragmentInfos::Register(EntityFragment::FHousingFixture_C, WowCS::FragmentSerializationTraits{}); + EntityFragmentInfos::Register(EntityFragment::PlayerInitiativeComponent_C, WowCS::FragmentSerializationTraits{}); + } +} static InitFragments; +} + BaseEntity::BaseEntity() = default; BaseEntity::~BaseEntity() @@ -96,13 +120,13 @@ void BaseEntity::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* targe buf << GetGUID(); buf << uint8(objectType); - BuildMovementUpdate(&buf, flags, target); + BuildMovementUpdate(buf, flags, target); UF::UpdateFieldFlag fieldFlags = GetUpdateFieldFlagsFor(target); std::size_t sizePos = buf.wpos(); buf << uint32(0); buf << uint8(fieldFlags); - BuildEntityFragments(&buf, m_entityFragments.GetIds()); + BuildEntityFragments(buf, m_entityFragments.GetIds()); for (std::size_t i = 0; i < m_entityFragments.UpdateableCount; ++i) { @@ -110,7 +134,8 @@ void BaseEntity::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* targe if (WowCS::IsIndirectFragment(fragmentId)) buf << uint8(1); // IndirectFragmentActive - m_entityFragments.Updateable.SerializeCreate[i](this, buf, fieldFlags, target); + WowCS::EntityFragmentInfo->SerializeCreate[static_cast(m_entityFragments.Updateable.Ids[i])]( + m_entityFragments.Updateable.Data[i], fieldFlags, buf, target, this); } buf.put(sizePos, buf.wpos() - sizePos - 4); @@ -144,7 +169,7 @@ void BaseEntity::BuildValuesUpdateBlockForPlayer(UpdateData* data, Player const* if (m_entityFragments.IdsChanged) { buf << uint8(WowCS::EntityFragmentSerializationType::Full); - BuildEntityFragments(&buf, m_entityFragments.GetIds()); + BuildEntityFragments(buf, m_entityFragments.GetIds()); } buf << uint8(m_entityFragments.ContentsChangedMask); @@ -153,7 +178,8 @@ void BaseEntity::BuildValuesUpdateBlockForPlayer(UpdateData* data, Player const* if (!(m_entityFragments.ContentsChangedMask & m_entityFragments.Updateable.Masks[i])) continue; - m_entityFragments.Updateable.SerializeUpdate[i](this, buf, fieldFlags, target); + WowCS::EntityFragmentInfo->SerializeUpdate[static_cast(m_entityFragments.Updateable.Ids[i])]( + m_entityFragments.Updateable.Data[i], fieldFlags, buf, target, this); } buf.put(sizePos, buf.wpos() - sizePos - 4); @@ -161,10 +187,10 @@ void BaseEntity::BuildValuesUpdateBlockForPlayer(UpdateData* data, Player const* data->AddUpdateBlock(); } -inline void BaseEntity::BuildEntityFragments(ByteBuffer* data, std::span fragments) +inline void BaseEntity::BuildEntityFragments(ByteBuffer& data, std::span fragments) { - data->append(fragments.data(), fragments.size()); - *data << uint8(WowCS::EntityFragment::End); + data.append(fragments.data(), fragments.size()); + data << uint8(WowCS::EntityFragment::End); } void BaseEntity::BuildDestroyUpdateBlock(UpdateData* data) const @@ -207,34 +233,34 @@ void BaseEntity::SendOutOfRangeForPlayer(Player const* target) const target->SendDirectMessage(&packet); } -void BaseEntity::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Player const* target) const +void BaseEntity::BuildMovementUpdate(ByteBuffer& data, CreateObjectBits flags, Player const* target) const { std::span PauseTimes; if (IsGameObject()) PauseTimes = static_cast(this)->GetPauseTimes(); - data->WriteBit(flags.HasEntityPosition); - data->WriteBit(flags.NoBirthAnim); - data->WriteBit(flags.EnablePortals); - data->WriteBit(flags.PlayHoverAnim); - data->WriteBit(flags.ThisIsYou); - data->WriteBit(flags.MovementUpdate); - data->WriteBit(flags.MovementTransport); - data->WriteBit(flags.Stationary); - data->WriteBit(flags.CombatVictim); - data->WriteBit(flags.ServerTime); - data->WriteBit(flags.Vehicle); - data->WriteBit(flags.AnimKit); - data->WriteBit(flags.Rotation); - data->WriteBit(flags.GameObject); - data->WriteBit(flags.SmoothPhasing); - data->WriteBit(flags.SceneObject); - data->WriteBit(flags.ActivePlayer); - data->WriteBit(flags.Conversation); - data->WriteBit(flags.Room); - data->WriteBit(flags.Decor); - data->WriteBit(flags.MeshObject); - data->FlushBits(); + data.WriteBit(flags.HasEntityPosition); + data.WriteBit(flags.NoBirthAnim); + data.WriteBit(flags.EnablePortals); + data.WriteBit(flags.PlayHoverAnim); + data.WriteBit(flags.ThisIsYou); + data.WriteBit(flags.MovementUpdate); + data.WriteBit(flags.MovementTransport); + data.WriteBit(flags.Stationary); + data.WriteBit(flags.CombatVictim); + data.WriteBit(flags.ServerTime); + data.WriteBit(flags.Vehicle); + data.WriteBit(flags.AnimKit); + data.WriteBit(flags.Rotation); + data.WriteBit(flags.GameObject); + data.WriteBit(flags.SmoothPhasing); + data.WriteBit(flags.SceneObject); + data.WriteBit(flags.ActivePlayer); + data.WriteBit(flags.Conversation); + data.WriteBit(flags.Room); + data.WriteBit(flags.Decor); + data.WriteBit(flags.MeshObject); + data.FlushBits(); if (flags.MovementUpdate) { @@ -247,191 +273,191 @@ void BaseEntity::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, P bool HasDriveStatus = unit->m_movementInfo.driveStatus.has_value(); bool HasStandingOnGameObjectGUID = unit->m_movementInfo.standingOnGameObjectGUID.has_value(); - *data << GetGUID(); // MoverGUID + data << GetGUID(); // MoverGUID - *data << uint32(unit->GetUnitMovementFlags()); - *data << uint32(unit->GetExtraUnitMovementFlags()); - *data << uint32(unit->GetExtraUnitMovementFlags2()); + data << uint32(unit->GetUnitMovementFlags()); + data << uint32(unit->GetExtraUnitMovementFlags()); + data << uint32(unit->GetExtraUnitMovementFlags2()); - *data << uint32(unit->m_movementInfo.time); // MoveTime - *data << float(unit->GetPositionX()); - *data << float(unit->GetPositionY()); - *data << float(unit->GetPositionZ()); - *data << float(unit->GetOrientation()); + data << uint32(unit->m_movementInfo.time); // MoveTime + data << float(unit->GetPositionX()); + data << float(unit->GetPositionY()); + data << float(unit->GetPositionZ()); + data << float(unit->GetOrientation()); - *data << float(unit->m_movementInfo.pitch); // Pitch - *data << float(unit->m_movementInfo.stepUpStartElevation); // StepUpStartElevation + data << float(unit->m_movementInfo.pitch); // Pitch + data << float(unit->m_movementInfo.stepUpStartElevation); // StepUpStartElevation - *data << uint32(0); // RemoveForcesIDs.size() - *data << uint32(0); // MoveIndex + data << uint32(0); // RemoveForcesIDs.size() + data << uint32(0); // MoveIndex - *data << float(unit->m_movementInfo.gravityModifier); + data << float(unit->m_movementInfo.gravityModifier); //for (std::size_t i = 0; i < RemoveForcesIDs.size(); ++i) - // *data << ObjectGuid(RemoveForcesIDs); + // data << ObjectGuid(RemoveForcesIDs); - data->WriteBit(HasStandingOnGameObjectGUID); // HasStandingOnGameObjectGUID - data->WriteBit(!unit->m_movementInfo.transport.guid.IsEmpty()); // HasTransport - data->WriteBit(HasFall); // HasFall - data->WriteBit(HasSpline); // HasSpline - marks that the unit uses spline movement - data->WriteBit(false); // HeightChangeFailed - data->WriteBit(false); // RemoteTimeValid - data->WriteBit(HasInertia); // HasInertia - data->WriteBit(HasAdvFlying); // HasAdvFlying - data->WriteBit(HasDriveStatus); // HasDriveStatus - data->FlushBits(); + data.WriteBit(HasStandingOnGameObjectGUID); // HasStandingOnGameObjectGUID + data.WriteBit(!unit->m_movementInfo.transport.guid.IsEmpty()); // HasTransport + data.WriteBit(HasFall); // HasFall + data.WriteBit(HasSpline); // HasSpline - marks that the unit uses spline movement + data.WriteBit(false); // HeightChangeFailed + data.WriteBit(false); // RemoteTimeValid + data.WriteBit(HasInertia); // HasInertia + data.WriteBit(HasAdvFlying); // HasAdvFlying + data.WriteBit(HasDriveStatus); // HasDriveStatus + data.FlushBits(); if (!unit->m_movementInfo.transport.guid.IsEmpty()) - *data << unit->m_movementInfo.transport; + data << unit->m_movementInfo.transport; if (HasStandingOnGameObjectGUID) - *data << *unit->m_movementInfo.standingOnGameObjectGUID; + data << *unit->m_movementInfo.standingOnGameObjectGUID; if (HasInertia) { - *data << unit->m_movementInfo.inertia->id; - *data << unit->m_movementInfo.inertia->force.PositionXYZStream(); - *data << uint32(unit->m_movementInfo.inertia->lifetime); + data << unit->m_movementInfo.inertia->id; + data << unit->m_movementInfo.inertia->force.PositionXYZStream(); + data << uint32(unit->m_movementInfo.inertia->lifetime); } if (HasAdvFlying) { - *data << float(unit->m_movementInfo.advFlying->forwardVelocity); - *data << float(unit->m_movementInfo.advFlying->upVelocity); + data << float(unit->m_movementInfo.advFlying->forwardVelocity); + data << float(unit->m_movementInfo.advFlying->upVelocity); } if (HasFall) { - *data << uint32(unit->m_movementInfo.jump.fallTime); // Time - *data << float(unit->m_movementInfo.jump.zspeed); // JumpVelocity + data << uint32(unit->m_movementInfo.jump.fallTime); // Time + data << float(unit->m_movementInfo.jump.zspeed); // JumpVelocity - if (data->WriteBit(HasFallDirection)) + if (data.WriteBit(HasFallDirection)) { - *data << float(unit->m_movementInfo.jump.sinAngle); // Direction - *data << float(unit->m_movementInfo.jump.cosAngle); - *data << float(unit->m_movementInfo.jump.xyspeed); // Speed + data << float(unit->m_movementInfo.jump.sinAngle); // Direction + data << float(unit->m_movementInfo.jump.cosAngle); + data << float(unit->m_movementInfo.jump.xyspeed); // Speed } } if (HasDriveStatus) { - *data << float(unit->m_movementInfo.driveStatus->speed); - *data << float(unit->m_movementInfo.driveStatus->movementAngle); - data->WriteBit(unit->m_movementInfo.driveStatus->accelerating); - data->WriteBit(unit->m_movementInfo.driveStatus->drifting); - data->FlushBits(); + data << float(unit->m_movementInfo.driveStatus->speed); + data << float(unit->m_movementInfo.driveStatus->movementAngle); + data.WriteBit(unit->m_movementInfo.driveStatus->accelerating); + data.WriteBit(unit->m_movementInfo.driveStatus->drifting); + data.FlushBits(); } - *data << float(unit->GetSpeed(MOVE_WALK)); - *data << float(unit->GetSpeed(MOVE_RUN)); - *data << float(unit->GetSpeed(MOVE_RUN_BACK)); - *data << float(unit->GetSpeed(MOVE_SWIM)); - *data << float(unit->GetSpeed(MOVE_SWIM_BACK)); - *data << float(unit->GetSpeed(MOVE_FLIGHT)); - *data << float(unit->GetSpeed(MOVE_FLIGHT_BACK)); - *data << float(unit->GetSpeed(MOVE_TURN_RATE)); - *data << float(unit->GetSpeed(MOVE_PITCH_RATE)); + data << float(unit->GetSpeed(MOVE_WALK)); + data << float(unit->GetSpeed(MOVE_RUN)); + data << float(unit->GetSpeed(MOVE_RUN_BACK)); + data << float(unit->GetSpeed(MOVE_SWIM)); + data << float(unit->GetSpeed(MOVE_SWIM_BACK)); + data << float(unit->GetSpeed(MOVE_FLIGHT)); + data << float(unit->GetSpeed(MOVE_FLIGHT_BACK)); + data << float(unit->GetSpeed(MOVE_TURN_RATE)); + data << float(unit->GetSpeed(MOVE_PITCH_RATE)); if (MovementForces const* movementForces = unit->GetMovementForces()) { - *data << uint32(movementForces->GetForces()->size()); - *data << float(movementForces->GetModMagnitude()); // MovementForcesModMagnitude + data << uint32(movementForces->GetForces()->size()); + data << float(movementForces->GetModMagnitude()); // MovementForcesModMagnitude } else { - *data << uint32(0); - *data << float(1.0f); // MovementForcesModMagnitude + data << uint32(0); + data << float(1.0f); // MovementForcesModMagnitude } - *data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_AIR_FRICTION)); - *data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_MAX_VEL)); - *data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_LIFT_COEFFICIENT)); - *data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_DOUBLE_JUMP_VEL_MOD)); - *data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_GLIDE_START_MIN_HEIGHT)); - *data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_ADD_IMPULSE_MAX_SPEED)); - *data << float(unit->GetAdvFlyingSpeedMin(ADV_FLYING_BANKING_RATE)); - *data << float(unit->GetAdvFlyingSpeedMax(ADV_FLYING_BANKING_RATE)); - *data << float(unit->GetAdvFlyingSpeedMin(ADV_FLYING_PITCHING_RATE_DOWN)); - *data << float(unit->GetAdvFlyingSpeedMax(ADV_FLYING_PITCHING_RATE_DOWN)); - *data << float(unit->GetAdvFlyingSpeedMin(ADV_FLYING_PITCHING_RATE_UP)); - *data << float(unit->GetAdvFlyingSpeedMax(ADV_FLYING_PITCHING_RATE_UP)); - *data << float(unit->GetAdvFlyingSpeedMin(ADV_FLYING_TURN_VELOCITY_THRESHOLD)); - *data << float(unit->GetAdvFlyingSpeedMax(ADV_FLYING_TURN_VELOCITY_THRESHOLD)); - *data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_SURFACE_FRICTION)); - *data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_OVER_MAX_DECELERATION)); - *data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_LAUNCH_SPEED_COEFFICIENT)); + data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_AIR_FRICTION)); + data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_MAX_VEL)); + data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_LIFT_COEFFICIENT)); + data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_DOUBLE_JUMP_VEL_MOD)); + data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_GLIDE_START_MIN_HEIGHT)); + data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_ADD_IMPULSE_MAX_SPEED)); + data << float(unit->GetAdvFlyingSpeedMin(ADV_FLYING_BANKING_RATE)); + data << float(unit->GetAdvFlyingSpeedMax(ADV_FLYING_BANKING_RATE)); + data << float(unit->GetAdvFlyingSpeedMin(ADV_FLYING_PITCHING_RATE_DOWN)); + data << float(unit->GetAdvFlyingSpeedMax(ADV_FLYING_PITCHING_RATE_DOWN)); + data << float(unit->GetAdvFlyingSpeedMin(ADV_FLYING_PITCHING_RATE_UP)); + data << float(unit->GetAdvFlyingSpeedMax(ADV_FLYING_PITCHING_RATE_UP)); + data << float(unit->GetAdvFlyingSpeedMin(ADV_FLYING_TURN_VELOCITY_THRESHOLD)); + data << float(unit->GetAdvFlyingSpeedMax(ADV_FLYING_TURN_VELOCITY_THRESHOLD)); + data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_SURFACE_FRICTION)); + data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_OVER_MAX_DECELERATION)); + data << float(unit->GetAdvFlyingSpeed(ADV_FLYING_LAUNCH_SPEED_COEFFICIENT)); - data->WriteBit(HasSpline); - data->FlushBits(); + data.WriteBit(HasSpline); + data.FlushBits(); if (MovementForces const* movementForces = unit->GetMovementForces()) for (MovementForce const& force : *movementForces->GetForces()) - WorldPackets::Movement::CommonMovement::WriteMovementForceWithDirection(force, *data, unit); + WorldPackets::Movement::CommonMovement::WriteMovementForceWithDirection(force, data, unit); if (HasSpline) - WorldPackets::Movement::CommonMovement::WriteCreateObjectSplineDataBlock(*unit->movespline, *data); + WorldPackets::Movement::CommonMovement::WriteCreateObjectSplineDataBlock(*unit->movespline, data); } - *data << uint32(PauseTimes.size()); + data << uint32(PauseTimes.size()); if (flags.Stationary) { WorldObject const* self = static_cast(this); - *data << self->GetStationaryPosition().PositionXYZOStream(); + data << self->GetStationaryPosition().PositionXYZOStream(); } if (flags.CombatVictim) { Unit const* unit = static_cast(this); - *data << unit->GetVictim()->GetGUID(); // CombatVictim + data << unit->GetVictim()->GetGUID(); // CombatVictim } if (flags.ServerTime) - *data << uint32(GameTime::GetGameTimeMS()); + data << uint32(GameTime::GetGameTimeMS()); if (flags.Vehicle) { Unit const* unit = static_cast(this); - *data << uint32(unit->GetVehicleKit()->GetVehicleInfo()->ID); // RecID - *data << float(unit->GetOrientation()); // InitialRawFacing + data << uint32(unit->GetVehicleKit()->GetVehicleInfo()->ID); // RecID + data << float(unit->GetOrientation()); // InitialRawFacing } if (flags.AnimKit) { WorldObject const* self = static_cast(this); - *data << uint16(self->GetAIAnimKitId()); // AiID - *data << uint16(self->GetMovementAnimKitId()); // MovementID - *data << uint16(self->GetMeleeAnimKitId()); // MeleeID + data << uint16(self->GetAIAnimKitId()); // AiID + data << uint16(self->GetMovementAnimKitId()); // MovementID + data << uint16(self->GetMeleeAnimKitId()); // MeleeID } if (flags.Rotation) { GameObject const* gameObject = static_cast(this); - *data << uint64(gameObject->GetPackedLocalRotation()); // Rotation + data << uint64(gameObject->GetPackedLocalRotation()); // Rotation } //if (flags.Room) - // *data << ObjectGuid(HouseGUID); + // data << ObjectGuid(HouseGUID); //if (flags.Decor) - // *data << ObjectGuid(RoomGUID); + // data << ObjectGuid(RoomGUID); //if (flags.MeshObject) //{ - // *data << ObjectGuid(AttachParentGUID); - // *data << TaggedPosition(PositionLocalSpace); - // *data << QuaternionData(RotationLocalSpace); - // *data << float(ScaleLocalSpace); - // *data << uint8(AttachmentFlags); + // data << ObjectGuid(AttachParentGUID); + // data << TaggedPosition(PositionLocalSpace); + // data << QuaternionData(RotationLocalSpace); + // data << float(ScaleLocalSpace); + // data << uint8(AttachmentFlags); //} if (!PauseTimes.empty()) - data->append(PauseTimes.data(), PauseTimes.size()); + data.append(PauseTimes.data(), PauseTimes.size()); if (flags.MovementTransport) { WorldObject const* self = static_cast(this); - *data << self->m_movementInfo.transport; + data << self->m_movementInfo.transport; } if (flags.GameObject) @@ -441,30 +467,30 @@ void BaseEntity::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, P bool bit8 = false; bool isTransport = gameObject->GetGOInfo()->type == GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT; - *data << uint32(gameObject->GetWorldEffectID()); + data << uint32(gameObject->GetWorldEffectID()); - data->WriteBit(bit8); - data->WriteBit(isTransport); - data->WriteBit(gameObject->GetPathProgressForClient().has_value()); - data->FlushBits(); + data.WriteBit(bit8); + data.WriteBit(isTransport); + data.WriteBit(gameObject->GetPathProgressForClient().has_value()); + data.FlushBits(); if (isTransport) { Transport const* transport = static_cast(gameObject); uint32 period = transport->GetTransportPeriod(); - *data << uint32((((int64(transport->GetTimer()) - int64(GameTime::GetGameTimeMS())) % period) + period) % period); // TimeOffset - *data << uint32(transport->GetNextStopTimestamp().value_or(0)); - data->WriteBit(transport->GetNextStopTimestamp().has_value()); - data->WriteBit(transport->IsStopped()); - data->WriteBit(false); - data->FlushBits(); + data << uint32((((int64(transport->GetTimer()) - int64(GameTime::GetGameTimeMS())) % period) + period) % period); // TimeOffset + data << uint32(transport->GetNextStopTimestamp().value_or(0)); + data.WriteBit(transport->GetNextStopTimestamp().has_value()); + data.WriteBit(transport->IsStopped()); + data.WriteBit(false); + data.FlushBits(); } if (bit8) - *data << uint32(0); + data << uint32(0); if (gameObject->GetPathProgressForClient()) - *data << float(*gameObject->GetPathProgressForClient()); + data << float(*gameObject->GetPathProgressForClient()); } if (flags.SmoothPhasing) @@ -472,121 +498,121 @@ void BaseEntity::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, P SmoothPhasingInfo const* smoothPhasingInfo = static_cast(this)->GetSmoothPhasing()->GetInfoForSeer(target->GetGUID()); ASSERT(smoothPhasingInfo); - data->WriteBit(smoothPhasingInfo->ReplaceActive); - data->WriteBit(smoothPhasingInfo->StopAnimKits); - data->WriteBit(smoothPhasingInfo->ReplaceObject.has_value()); - data->FlushBits(); + data.WriteBit(smoothPhasingInfo->ReplaceActive); + data.WriteBit(smoothPhasingInfo->StopAnimKits); + data.WriteBit(smoothPhasingInfo->ReplaceObject.has_value()); + data.FlushBits(); if (smoothPhasingInfo->ReplaceObject) - *data << *smoothPhasingInfo->ReplaceObject; + data << *smoothPhasingInfo->ReplaceObject; } if (flags.SceneObject) { - data->WriteBit(false); // HasLocalScriptData - data->WriteBit(false); // HasPetBattleFullUpdate - data->FlushBits(); + data.WriteBit(false); // HasLocalScriptData + data.WriteBit(false); // HasPetBattleFullUpdate + data.FlushBits(); // if (HasLocalScriptData) // { - // data->WriteBits(Data.length(), 7); - // data->FlushBits(); - // data->WriteString(Data); + // data.WriteBits(Data.length(), 7); + // data.FlushBits(); + // data.WriteString(Data); // } // if (HasPetBattleFullUpdate) // { // for (std::size_t i = 0; i < 2; ++i) // { - // *data << ObjectGuid(Players[i].CharacterID); - // *data << int32(Players[i].TrapAbilityID); - // *data << int32(Players[i].TrapStatus); - // *data << uint16(Players[i].RoundTimeSecs); - // *data << int8(Players[i].FrontPet); - // *data << uint8(Players[i].InputFlags); + // data << ObjectGuid(Players[i].CharacterID); + // data << int32(Players[i].TrapAbilityID); + // data << int32(Players[i].TrapStatus); + // data << uint16(Players[i].RoundTimeSecs); + // data << int8(Players[i].FrontPet); + // data << uint8(Players[i].InputFlags); - // data->WriteBits(Players[i].Pets.size(), 2); - // data->FlushBits(); + // data.WriteBits(Players[i].Pets.size(), 2); + // data.FlushBits(); // for (std::size_t j = 0; j < Players[i].Pets.size(); ++j) // { - // *data << ObjectGuid(Players[i].Pets[j].BattlePetGUID); - // *data << int32(Players[i].Pets[j].SpeciesID); - // *data << int32(Players[i].Pets[j].CreatureID); - // *data << int32(Players[i].Pets[j].DisplayID); - // *data << int16(Players[i].Pets[j].Level); - // *data << int16(Players[i].Pets[j].Xp); - // *data << int32(Players[i].Pets[j].CurHealth); - // *data << int32(Players[i].Pets[j].MaxHealth); - // *data << int32(Players[i].Pets[j].Power); - // *data << int32(Players[i].Pets[j].Speed); - // *data << int32(Players[i].Pets[j].NpcTeamMemberID); - // *data << uint8(Players[i].Pets[j].BreedQuality); - // *data << uint16(Players[i].Pets[j].StatusFlags); - // *data << int8(Players[i].Pets[j].Slot); + // data << ObjectGuid(Players[i].Pets[j].BattlePetGUID); + // data << int32(Players[i].Pets[j].SpeciesID); + // data << int32(Players[i].Pets[j].CreatureID); + // data << int32(Players[i].Pets[j].DisplayID); + // data << int16(Players[i].Pets[j].Level); + // data << int16(Players[i].Pets[j].Xp); + // data << int32(Players[i].Pets[j].CurHealth); + // data << int32(Players[i].Pets[j].MaxHealth); + // data << int32(Players[i].Pets[j].Power); + // data << int32(Players[i].Pets[j].Speed); + // data << int32(Players[i].Pets[j].NpcTeamMemberID); + // data << uint8(Players[i].Pets[j].BreedQuality); + // data << uint16(Players[i].Pets[j].StatusFlags); + // data << int8(Players[i].Pets[j].Slot); - // *data << uint32(Players[i].Pets[j].Abilities.size()); - // *data << uint32(Players[i].Pets[j].Auras.size()); - // *data << uint32(Players[i].Pets[j].States.size()); + // data << uint32(Players[i].Pets[j].Abilities.size()); + // data << uint32(Players[i].Pets[j].Auras.size()); + // data << uint32(Players[i].Pets[j].States.size()); // for (std::size_t k = 0; k < Players[i].Pets[j].Abilities.size(); ++k) // { - // *data << int32(Players[i].Pets[j].Abilities[k].AbilityID); - // *data << int16(Players[i].Pets[j].Abilities[k].CooldownRemaining); - // *data << int16(Players[i].Pets[j].Abilities[k].LockdownRemaining); - // *data << int8(Players[i].Pets[j].Abilities[k].AbilityIndex); - // *data << uint8(Players[i].Pets[j].Abilities[k].Pboid); + // data << int32(Players[i].Pets[j].Abilities[k].AbilityID); + // data << int16(Players[i].Pets[j].Abilities[k].CooldownRemaining); + // data << int16(Players[i].Pets[j].Abilities[k].LockdownRemaining); + // data << int8(Players[i].Pets[j].Abilities[k].AbilityIndex); + // data << uint8(Players[i].Pets[j].Abilities[k].Pboid); // } // for (std::size_t k = 0; k < Players[i].Pets[j].Auras.size(); ++k) // { - // *data << int32(Players[i].Pets[j].Auras[k].AbilityID); - // *data << uint32(Players[i].Pets[j].Auras[k].InstanceID); - // *data << int32(Players[i].Pets[j].Auras[k].RoundsRemaining); - // *data << int32(Players[i].Pets[j].Auras[k].CurrentRound); - // *data << uint8(Players[i].Pets[j].Auras[k].CasterPBOID); + // data << int32(Players[i].Pets[j].Auras[k].AbilityID); + // data << uint32(Players[i].Pets[j].Auras[k].InstanceID); + // data << int32(Players[i].Pets[j].Auras[k].RoundsRemaining); + // data << int32(Players[i].Pets[j].Auras[k].CurrentRound); + // data << uint8(Players[i].Pets[j].Auras[k].CasterPBOID); // } // for (std::size_t k = 0; k < Players[i].Pets[j].States.size(); ++k) // { - // *data << uint32(Players[i].Pets[j].States[k].StateID); - // *data << int32(Players[i].Pets[j].States[k].StateValue); + // data << uint32(Players[i].Pets[j].States[k].StateID); + // data << int32(Players[i].Pets[j].States[k].StateValue); // } - // data->WriteBits(Players[i].Pets[j].CustomName.length(), 7); - // data->FlushBits(); - // data->WriteString(Players[i].Pets[j].CustomName); + // data.WriteBits(Players[i].Pets[j].CustomName.length(), 7); + // data.FlushBits(); + // data.WriteString(Players[i].Pets[j].CustomName); // } // } // for (std::size_t i = 0; i < 3; ++i) // { - // *data << uint32(Enviros[j].Auras.size()); - // *data << uint32(Enviros[j].States.size()); + // data << uint32(Enviros[j].Auras.size()); + // data << uint32(Enviros[j].States.size()); // for (std::size_t j = 0; j < Enviros[j].Auras.size(); ++j) // { - // *data << int32(Enviros[j].Auras[j].AbilityID); - // *data << uint32(Enviros[j].Auras[j].InstanceID); - // *data << int32(Enviros[j].Auras[j].RoundsRemaining); - // *data << int32(Enviros[j].Auras[j].CurrentRound); - // *data << uint8(Enviros[j].Auras[j].CasterPBOID); + // data << int32(Enviros[j].Auras[j].AbilityID); + // data << uint32(Enviros[j].Auras[j].InstanceID); + // data << int32(Enviros[j].Auras[j].RoundsRemaining); + // data << int32(Enviros[j].Auras[j].CurrentRound); + // data << uint8(Enviros[j].Auras[j].CasterPBOID); // } // for (std::size_t j = 0; j < Enviros[j].States.size(); ++j) // { - // *data << uint32(Enviros[i].States[j].StateID); - // *data << int32(Enviros[i].States[j].StateValue); + // data << uint32(Enviros[i].States[j].StateID); + // data << int32(Enviros[i].States[j].StateValue); // } // } - // *data << uint16(WaitingForFrontPetsMaxSecs); - // *data << uint16(PvpMaxRoundTime); - // *data << int32(CurRound); - // *data << uint32(NpcCreatureID); - // *data << uint32(NpcDisplayID); - // *data << int8(CurPetBattleState); - // *data << uint8(ForfeitPenalty); - // *data << ObjectGuid(InitialWildPetGUID); - // data->WriteBit(IsPVP); - // data->WriteBit(CanAwardXP); - // data->FlushBits(); + // data << uint16(WaitingForFrontPetsMaxSecs); + // data << uint16(PvpMaxRoundTime); + // data << int32(CurRound); + // data << uint32(NpcCreatureID); + // data << uint32(NpcDisplayID); + // data << int8(CurPetBattleState); + // data << uint8(ForfeitPenalty); + // data << ObjectGuid(InitialWildPetGUID); + // data.WriteBit(IsPVP); + // data.WriteBit(CanAwardXP); + // data.FlushBits(); // } } @@ -597,35 +623,35 @@ void BaseEntity::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, P bool HasSceneInstanceIDs = !player->GetSceneMgr().GetSceneTemplateByInstanceMap().empty(); bool HasRuneState = player->GetPowerIndex(POWER_RUNES) != MAX_POWERS; - data->WriteBit(HasSceneInstanceIDs); - data->WriteBit(HasRuneState); - data->FlushBits(); + data.WriteBit(HasSceneInstanceIDs); + data.WriteBit(HasRuneState); + data.FlushBits(); if (HasSceneInstanceIDs) { - *data << uint32(player->GetSceneMgr().GetSceneTemplateByInstanceMap().size()); + data << uint32(player->GetSceneMgr().GetSceneTemplateByInstanceMap().size()); for (auto const& [sceneInstanceId, _] : player->GetSceneMgr().GetSceneTemplateByInstanceMap()) - *data << uint32(sceneInstanceId); + data << uint32(sceneInstanceId); } if (HasRuneState) { float baseCd = float(player->GetRuneBaseCooldown()); uint32 maxRunes = uint32(player->GetMaxPower(POWER_RUNES)); - *data << uint8((1 << maxRunes) - 1); - *data << uint8(player->GetRunesState()); - *data << uint32(maxRunes); + data << uint8((1 << maxRunes) - 1); + data << uint8(player->GetRunesState()); + data << uint32(maxRunes); for (uint32 i = 0; i < maxRunes; ++i) - *data << uint8((baseCd - float(player->GetRuneCooldown(i))) / baseCd * 255); + data << uint8((baseCd - float(player->GetRuneCooldown(i))) / baseCd * 255); } } if (flags.Conversation) { Conversation const* self = static_cast(this); - if (data->WriteBit(self->GetTextureKitId() != 0)) - *data << uint32(self->GetTextureKitId()); + if (data.WriteBit(self->GetTextureKitId() != 0)) + data << uint32(self->GetTextureKitId()); - data->FlushBits(); + data.FlushBits(); } } @@ -642,6 +668,9 @@ void BaseEntity::AddToObjectUpdateIfNeeded() void BaseEntity::ClearUpdateMask(bool remove) { + for (std::size_t i = 0; i < m_entityFragments.UpdateableCount; ++i) + WowCS::EntityFragmentInfo->ClearChanged[static_cast(m_entityFragments.Updateable.Ids[i])](m_entityFragments.Updateable.Data[i]); + m_entityFragments.IdsChanged = false; if (m_objectUpdated) @@ -656,7 +685,7 @@ void BaseEntity::BuildUpdateChangesMask() { for (std::size_t i = 0; i < m_entityFragments.UpdateableCount; ++i) { - if (m_entityFragments.Updateable.IsChanged[i](this)) + if (WowCS::EntityFragmentInfo->IsChanged[static_cast(m_entityFragments.Updateable.Ids[i])](m_entityFragments.Updateable.Data[i])) m_entityFragments.ContentsChangedMask |= m_entityFragments.Updateable.Masks[i]; else m_entityFragments.ContentsChangedMask &= ~m_entityFragments.Updateable.Masks[i]; diff --git a/src/server/game/Entities/Object/BaseEntity.h b/src/server/game/Entities/Object/BaseEntity.h index e776c3fcbe..d4919231c5 100644 --- a/src/server/game/Entities/Object/BaseEntity.h +++ b/src/server/game/Entities/Object/BaseEntity.h @@ -78,9 +78,6 @@ namespace UF template inline void ClearChangesMask(UpdateField(Derived::* field)); - template - inline void ClearChangesMask(OptionalUpdateField(Derived::* field)); - uint32 GetChangedObjectTypeMask() const { return _changesMask; } bool HasChanged(uint32 index) const { return (_changesMask & UpdateMaskHelpers::GetBlockFlag(index)) != 0; } @@ -193,7 +190,7 @@ class TC_GAME_API BaseEntity virtual void DestroyForPlayer(Player const* target) const; void SendOutOfRangeForPlayer(Player const* target) const; - virtual void ClearUpdateMask(bool remove); + void ClearUpdateMask(bool remove); virtual std::string GetNameForLocaleIdx(LocaleConstant locale) const = 0; @@ -347,9 +344,9 @@ class TC_GAME_API BaseEntity } } - void BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Player const* target) const; + void BuildMovementUpdate(ByteBuffer& data, CreateObjectBits flags, Player const* target) const; virtual UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const* target) const; - static void BuildEntityFragments(ByteBuffer* data, std::span fragments); + static void BuildEntityFragments(ByteBuffer& data, std::span fragments); TypeID m_objectTypeId = NUM_CLIENT_OBJECT_TYPES; CreateObjectBits m_updateFlag = {}; @@ -423,23 +420,12 @@ inline UF::MutableFieldReference UF::UpdateFieldHolder::ModifyValue(Op template inline void UF::UpdateFieldHolder::ClearChangesMask(UpdateField Derived::* field) { + static_assert(WowCS::EntityFragment(BlockBit) == WowCS::EntityFragment::CGObject); + BaseEntity* owner = GetOwner(); - if constexpr (WowCS::EntityFragment(BlockBit) == WowCS::EntityFragment::CGObject) - _changesMask &= ~UpdateMaskHelpers::GetBlockFlag(Bit); + _changesMask &= ~UpdateMaskHelpers::GetBlockFlag(Bit); (static_cast(owner)->*field)._value.ClearChangesMask(); } -template -inline void UF::UpdateFieldHolder::ClearChangesMask(OptionalUpdateField Derived::* field) -{ - BaseEntity* owner = GetOwner(); - if constexpr (WowCS::EntityFragment(BlockBit) == WowCS::EntityFragment::CGObject) - _changesMask &= ~UpdateMaskHelpers::GetBlockFlag(Bit); - - auto& uf = (static_cast(owner)->*field); - if (uf.has_value()) - uf._value->ClearChangesMask(); -} - #endif // TRINITYCORE_BASE_ENTITY_H diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 0e3039bc26..c37ab413a3 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -61,12 +61,21 @@ constexpr float VisibilityDistances[AsUnderlyingType(VisibilityDistanceType::Max MAX_VISIBILITY_DISTANCE }; +struct Object::ObjectFragmentInfoInitializer +{ + ObjectFragmentInfoInitializer() + { + WowCS::EntityFragmentInfos::Register(WowCS::EntityFragment::CGObject, + &Object::BuildObjectFragmentCreate, &Object::BuildObjectFragmentUpdate, + &Object::IsObjectFragmentChanged, &Object::ClearObjectFragmentChanged); + } +} static InitObjectFragment; + Object::Object() : m_scriptRef(this, NoopObjectDeleter()) { m_objectTypeId = TYPEID_OBJECT; - m_entityFragments.Add(WowCS::EntityFragment::CGObject, false, - &Object::BuildObjectFragmentCreate, &Object::BuildObjectFragmentUpdate, &Object::IsObjectFragmentChanged); + m_entityFragments.Add(WowCS::EntityFragment::CGObject, false, this); } Object::~Object() = default; @@ -94,14 +103,14 @@ void Object::BuildValuesUpdateBlockForPlayerWithFlag(UpdateData* data, UF::Updat std::size_t sizePos = buf.wpos(); buf << uint32(0); - BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buf, flags); - BuildValuesUpdateWithFlag(&buf, flags, target); + BuildEntityFragmentsForValuesUpdateForPlayerWithMask(buf, flags); + BuildValuesUpdateWithFlag(flags, buf, target); buf.put(sizePos, buf.wpos() - sizePos - 4); data->AddUpdateBlock(); } -void Object::BuildEntityFragmentsForValuesUpdateForPlayerWithMask(ByteBuffer* data, EnumFlag flags) const +void Object::BuildEntityFragmentsForValuesUpdateForPlayerWithMask(ByteBuffer& data, EnumFlag flags) const { uint8 contentsChangedMask = 0; for (std::size_t i = 0; i < m_entityFragments.UpdateableCount; ++i) @@ -113,35 +122,39 @@ void Object::BuildEntityFragmentsForValuesUpdateForPlayerWithMask(ByteBuffer* da contentsChangedMask |= m_entityFragments.Updateable.Masks[i]; } - *data << uint8(flags.HasFlag(UF::UpdateFieldFlag::Owner)); - *data << uint8(false); // m_entityFragments.IdsChanged - *data << uint8(contentsChangedMask); + data << uint8(flags.HasFlag(UF::UpdateFieldFlag::Owner)); + data << uint8(false); // m_entityFragments.IdsChanged + data << uint8(contentsChangedMask); } -void Object::BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag /*flags*/, Player const* /*target*/) const -{ - *data << uint32(0); -} - -void Object::ClearUpdateMask(bool remove) +void Object::ClearValuesChangesMask() { m_values.ClearChangesMask(&Object::m_objectData); - BaseEntity::ClearUpdateMask(remove); } -void Object::BuildObjectFragmentCreate(BaseEntity const* entity, ByteBuffer& data, UF::UpdateFieldFlag flags, Player const* target) +void Object::BuildValuesUpdateWithFlag(UF::UpdateFieldFlag /*flags*/, ByteBuffer& data, Player const* /*target*/) const { - static_cast(entity)->BuildValuesCreate(&data, flags, target); + data << uint32(0); } -void Object::BuildObjectFragmentUpdate(BaseEntity const* entity, ByteBuffer& data, UF::UpdateFieldFlag flags, Player const* target) +void Object::BuildObjectFragmentCreate(void const* rawFragmentData, UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target, BaseEntity const* /*entity*/) { - static_cast(entity)->BuildValuesUpdate(&data, flags, target); + static_cast(rawFragmentData)->BuildValuesCreate(flags, data, target); } -bool Object::IsObjectFragmentChanged(BaseEntity const* entity) +void Object::BuildObjectFragmentUpdate(void const* rawFragmentData, UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target, BaseEntity const* /*entity*/) { - return entity->m_values.GetChangedObjectTypeMask() != 0; + static_cast(rawFragmentData)->BuildValuesUpdate(flags, data, target); +} + +bool Object::IsObjectFragmentChanged(void const* rawFragmentData) +{ + return static_cast(rawFragmentData)->m_values.GetChangedObjectTypeMask() != 0; +} + +void Object::ClearObjectFragmentChanged(void const* rawFragmentData) +{ + const_cast(static_cast(rawFragmentData))->ClearValuesChangesMask(); } std::string Object::GetDebugInfo() const diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 9be5f274dc..3faba4a5c4 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -100,8 +100,6 @@ class TC_GAME_API Object : public BaseEntity void BuildValuesUpdateBlockForPlayerWithFlag(UpdateData* data, UF::UpdateFieldFlag flags, Player const* target) const; - void ClearUpdateMask(bool remove) override; - virtual bool hasQuest(uint32 /* quest_id */) const { return false; } virtual bool hasInvolvedQuest(uint32 /* quest_id */) const { return false; } @@ -173,17 +171,21 @@ class TC_GAME_API Object : public BaseEntity protected: Object(); - 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; - void BuildEntityFragmentsForValuesUpdateForPlayerWithMask(ByteBuffer* data, EnumFlag flags) const; + virtual void BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const = 0; + virtual void BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const = 0; + void BuildEntityFragmentsForValuesUpdateForPlayerWithMask(ByteBuffer& data, EnumFlag flags) const; + virtual void ClearValuesChangesMask(); public: - virtual void BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const; + virtual void BuildValuesUpdateWithFlag(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const; private: - static void BuildObjectFragmentCreate(BaseEntity const* entity, ByteBuffer& data, UF::UpdateFieldFlag flags, Player const* target); - static void BuildObjectFragmentUpdate(BaseEntity const* entity, ByteBuffer& data, UF::UpdateFieldFlag flags, Player const* target); - static bool IsObjectFragmentChanged(BaseEntity const* entity); + struct ObjectFragmentInfoInitializer; + friend ObjectFragmentInfoInitializer; + static void BuildObjectFragmentCreate(void const* rawFragmentData, UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target, BaseEntity const* entity); + static void BuildObjectFragmentUpdate(void const* rawFragmentData, UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target, BaseEntity const* entity); + static bool IsObjectFragmentChanged(void const* rawFragmentData); + static void ClearObjectFragmentChanged(void const* rawFragmentData); struct NoopObjectDeleter { void operator()(Object*) const { /*noop - not managed*/ } }; Trinity::unique_trackable_ptr m_scriptRef; diff --git a/src/server/game/Entities/Object/Updates/UpdateField.h b/src/server/game/Entities/Object/Updates/UpdateField.h index acf6409d55..c06d6de14c 100644 --- a/src/server/game/Entities/Object/Updates/UpdateField.h +++ b/src/server/game/Entities/Object/Updates/UpdateField.h @@ -1318,8 +1318,6 @@ namespace UF template friend class HasChangesMask; - friend class UpdateFieldHolder; - public: template bool Is() const { return std::holds_alternative(_value); } diff --git a/src/server/game/Entities/Object/Updates/UpdateFieldImpl.h b/src/server/game/Entities/Object/Updates/UpdateFieldImpl.h index 5d81a7c8e5..8c83e59211 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFieldImpl.h +++ b/src/server/game/Entities/Object/Updates/UpdateFieldImpl.h @@ -70,29 +70,29 @@ inline void WriteCompleteDynamicFieldUpdateMask(std::size_t size, ByteBuffer& da } template -inline void WriteMapFieldCreate(MapUpdateFieldBase const& map, ByteBuffer& data, T const* owner, Player const* receiver) +inline void WriteMapFieldCreate(MapUpdateFieldBase const& map, ByteBuffer& data, Player const* receiver, T const* owner) { data << uint32(map.size()); for (auto const& [k, v] : map) { if constexpr (std::is_base_of_v) - k.WriteCreate(data, owner, receiver); + k.WriteCreate(data, receiver, owner); else data << k; if constexpr (std::is_base_of_v) - v.value.WriteCreate(data, owner, receiver); + v.value.WriteCreate(data, receiver, owner); else data << v.value; } } template -inline void WriteMapFieldUpdate(MapUpdateFieldBase const& map, ByteBuffer& data, bool ignoreChangesMask, T const* owner, Player const* receiver) +inline void WriteMapFieldUpdate(MapUpdateFieldBase const& map, bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, T const* owner) { data << uint8(ignoreChangesMask ? 1 : 0); if (ignoreChangesMask) - UF::WriteMapFieldCreate(map, data, owner, receiver); + UF::WriteMapFieldCreate(map, data, receiver, owner); else { uint16 changesCount = 0; @@ -107,7 +107,7 @@ inline void WriteMapFieldUpdate(MapUpdateFieldBase const& map, ByteBuffer& ++changesCount; if constexpr (std::is_base_of_v) - k.WriteUpdate(data, false, owner, receiver); + k.WriteUpdate(false, data, receiver, owner); else data << k; @@ -116,7 +116,7 @@ inline void WriteMapFieldUpdate(MapUpdateFieldBase const& map, ByteBuffer& continue; if constexpr (std::is_base_of_v) - v.value.WriteUpdate(data, false, owner, receiver); + v.value.WriteUpdate(false, data, receiver, owner); else data << v.value; } @@ -126,20 +126,20 @@ inline void WriteMapFieldUpdate(MapUpdateFieldBase const& map, ByteBuffer& } template -inline void WriteSetFieldCreate(SetUpdateFieldBase const& set, ByteBuffer& data, O const* owner, Player const* receiver) +inline void WriteSetFieldCreate(SetUpdateFieldBase const& set, ByteBuffer& data, Player const* receiver, O const* owner) { data << uint32(set.size()); for (auto const& [k, _] : set) { if constexpr (std::is_base_of_v) - k.WriteCreate(data, owner, receiver); + k.WriteCreate(data, receiver, owner); else data << k; } } template -inline void WriteSetFieldUpdate(SetUpdateFieldBase const& set, ByteBuffer& data, bool ignoreChangesMask, O const* owner, Player const* receiver) +inline void WriteSetFieldUpdate(SetUpdateFieldBase const& set, bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, O const* owner) { data << uint8(ignoreChangesMask ? 1 : 0); if (ignoreChangesMask) @@ -158,7 +158,7 @@ inline void WriteSetFieldUpdate(SetUpdateFieldBase const& set, ByteBuffer& da ++changesCount; if constexpr (std::is_base_of_v) - k.WriteUpdate(data, false, owner, receiver); + k.WriteUpdate(false, data, receiver, owner); else data << k; diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.cpp b/src/server/game/Entities/Object/Updates/UpdateFields.cpp index e7acdaa0c0..ff231aaf45 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.cpp +++ b/src/server/game/Entities/Object/Updates/UpdateFields.cpp @@ -37,19 +37,19 @@ namespace UF { -void ObjectData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const +void ObjectData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const { - data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << int32(ViewerDependentValue::GetValue(this, receiver, owner)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); data << float(Scale); } -void ObjectData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const +void ObjectData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void ObjectData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const +void ObjectData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Object const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 4); @@ -58,11 +58,11 @@ void ObjectData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign { if (changesMask[1]) { - data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << int32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[2]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[3]) { @@ -79,7 +79,7 @@ void ObjectData::ClearChangesMask() _changesMask.ResetAll(); } -void ItemEnchantment::WriteCreate(ByteBuffer& data, Item const* owner, Player const* receiver) const +void ItemEnchantment::WriteCreate(ByteBuffer& data, Player const* receiver, Item const* owner) const { data << int32(ID); data << uint32(Duration); @@ -87,7 +87,7 @@ void ItemEnchantment::WriteCreate(ByteBuffer& data, Item const* owner, Player co data << uint16(Inactive); } -void ItemEnchantment::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Item const* owner, Player const* receiver) const +void ItemEnchantment::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Item const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -126,13 +126,13 @@ void ItemEnchantment::ClearChangesMask() _changesMask.ResetAll(); } -void ItemMod::WriteCreate(ByteBuffer& data, Item const* owner, Player const* receiver) const +void ItemMod::WriteCreate(ByteBuffer& data, Player const* receiver, Item const* owner) const { data << uint8(Type); data << int32(Value); } -void ItemMod::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Item const* owner, Player const* receiver) const +void ItemMod::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Item const* owner) const { data << uint8(Type); data << int32(Value); @@ -144,17 +144,17 @@ bool ItemMod::operator==(ItemMod const& right) const && Value == right.Value; } -void ItemModList::WriteCreate(ByteBuffer& data, Item const* owner, Player const* receiver) const +void ItemModList::WriteCreate(ByteBuffer& data, Player const* receiver, Item const* owner) const { data.WriteBits(Values.size(), 6); for (uint32 i = 0; i < Values.size(); ++i) { - Values[i].WriteCreate(data, owner, receiver); + Values[i].WriteCreate(data, receiver, owner); } data.FlushBits(); } -void ItemModList::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Item const* owner, Player const* receiver) const +void ItemModList::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Item const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -176,7 +176,7 @@ void ItemModList::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Item con { if (Values.HasChanged(i) || ignoreChangesMask) { - Values[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + Values[i].WriteUpdate(ignoreChangesMask, data, receiver, owner); } } } @@ -189,14 +189,14 @@ void ItemModList::ClearChangesMask() _changesMask.ResetAll(); } -void ArtifactPower::WriteCreate(ByteBuffer& data, Item const* owner, Player const* receiver) const +void ArtifactPower::WriteCreate(ByteBuffer& data, Player const* receiver, Item const* owner) const { data << int16(ArtifactPowerID); data << uint8(PurchasedRank); data << uint8(CurrentRankWithBonus); } -void ArtifactPower::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Item const* owner, Player const* receiver) const +void ArtifactPower::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Item const* owner) const { data << int16(ArtifactPowerID); data << uint8(PurchasedRank); @@ -210,7 +210,7 @@ bool ArtifactPower::operator==(ArtifactPower const& right) const && CurrentRankWithBonus == right.CurrentRankWithBonus; } -void SocketedGem::WriteCreate(ByteBuffer& data, Item const* owner, Player const* receiver) const +void SocketedGem::WriteCreate(ByteBuffer& data, Player const* receiver, Item const* owner) const { data << int32(ItemID); for (uint32 i = 0; i < 16; ++i) @@ -220,7 +220,7 @@ void SocketedGem::WriteCreate(ByteBuffer& data, Item const* owner, Player const* data << uint8(Context); } -void SocketedGem::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Item const* owner, Player const* receiver) const +void SocketedGem::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Item const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -262,7 +262,7 @@ void SocketedGem::ClearChangesMask() _changesMask.ResetAll(); } -void ItemData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Item const* owner, Player const* receiver) const +void ItemData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Item const* owner) const { data << *Owner; data << *ContainedIn; @@ -280,7 +280,7 @@ void ItemData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi data << uint32(DynamicFlags); for (uint32 i = 0; i < 13; ++i) { - Enchantment[i].WriteCreate(data, owner, receiver); + Enchantment[i].WriteCreate(data, receiver, owner); } if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner)) { @@ -308,13 +308,13 @@ void ItemData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi } for (uint32 i = 0; i < ArtifactPowers.size(); ++i) { - ArtifactPowers[i].WriteCreate(data, owner, receiver); + ArtifactPowers[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < Gems.size(); ++i) { - Gems[i].WriteCreate(data, owner, receiver); + Gems[i].WriteCreate(data, receiver, owner); } - Modifiers->WriteCreate(data, owner, receiver); + Modifiers->WriteCreate(data, receiver, owner); } static constexpr void ItemDataAppendAllowedFieldsMaskForFlag(ItemData::Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags) @@ -335,14 +335,14 @@ void ItemData::FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags, Item const* owner, Player const* receiver) const +void ItemData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Item const* owner) const { Mask allowedMaskForTarget({ 0xF80A727Fu, 0x000001FFu }); ItemDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); - WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); + WriteUpdate(_changesMask & allowedMaskForTarget, data, receiver, owner, false); } -void ItemData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Item const* owner, Player const* receiver) const +void ItemData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Item const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlocksMask(0), 2); for (uint32 i = 0; i < 2; ++i) @@ -375,7 +375,7 @@ void ItemData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor { if (ArtifactPowers.HasChanged(i) || ignoreNestedChangesMask) { - ArtifactPowers[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ArtifactPowers[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -385,7 +385,7 @@ void ItemData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor { if (Gems.HasChanged(i) || ignoreNestedChangesMask) { - Gems[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + Gems[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -459,7 +459,7 @@ void ItemData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor } if (changesMask[17]) { - Modifiers->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + Modifiers->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } if (changesMask[21]) @@ -478,7 +478,7 @@ void ItemData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor { if (changesMask[28 + i]) { - Enchantment[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + Enchantment[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -511,7 +511,7 @@ void ItemData::ClearChangesMask() _changesMask.ResetAll(); } -void ContainerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Bag const* owner, Player const* receiver) const +void ContainerData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Bag const* owner) const { for (uint32 i = 0; i < 98; ++i) { @@ -520,12 +520,12 @@ void ContainerData::WriteCreate(ByteBuffer& data, EnumFlag fiel data << uint32(NumSlots); } -void ContainerData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Bag const* owner, Player const* receiver) const +void ContainerData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Bag const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void ContainerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Bag const* owner, Player const* receiver) const +void ContainerData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Bag const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlocksMask(0), 4); for (uint32 i = 0; i < 4; ++i) @@ -559,7 +559,7 @@ void ContainerData::ClearChangesMask() _changesMask.ResetAll(); } -void AzeriteEmpoweredItemData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AzeriteEmpoweredItem const* owner, Player const* receiver) const +void AzeriteEmpoweredItemData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AzeriteEmpoweredItem const* owner) const { for (uint32 i = 0; i < 5; ++i) { @@ -567,12 +567,12 @@ void AzeriteEmpoweredItemData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AzeriteEmpoweredItem const* owner, Player const* receiver) const +void AzeriteEmpoweredItemData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AzeriteEmpoweredItem const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void AzeriteEmpoweredItemData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, AzeriteEmpoweredItem const* owner, Player const* receiver) const +void AzeriteEmpoweredItemData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, AzeriteEmpoweredItem const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlocksMask(0), 1); if (changesMask.GetBlock(0)) @@ -597,13 +597,13 @@ void AzeriteEmpoweredItemData::ClearChangesMask() _changesMask.ResetAll(); } -void UnlockedAzeriteEssence::WriteCreate(ByteBuffer& data, AzeriteItem const* owner, Player const* receiver) const +void UnlockedAzeriteEssence::WriteCreate(ByteBuffer& data, Player const* receiver, AzeriteItem const* owner) const { data << uint32(AzeriteEssenceID); data << uint32(Rank); } -void UnlockedAzeriteEssence::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AzeriteItem const* owner, Player const* receiver) const +void UnlockedAzeriteEssence::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AzeriteItem const* owner) const { data << uint32(AzeriteEssenceID); data << uint32(Rank); @@ -615,7 +615,7 @@ bool UnlockedAzeriteEssence::operator==(UnlockedAzeriteEssence const& right) con && Rank == right.Rank; } -void SelectedAzeriteEssences::WriteCreate(ByteBuffer& data, AzeriteItem const* owner, Player const* receiver) const +void SelectedAzeriteEssences::WriteCreate(ByteBuffer& data, Player const* receiver, AzeriteItem const* owner) const { for (uint32 i = 0; i < 4; ++i) { @@ -626,7 +626,7 @@ void SelectedAzeriteEssences::WriteCreate(ByteBuffer& data, AzeriteItem const* o data.FlushBits(); } -void SelectedAzeriteEssences::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AzeriteItem const* owner, Player const* receiver) const +void SelectedAzeriteEssences::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AzeriteItem const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -672,7 +672,7 @@ void SelectedAzeriteEssences::ClearChangesMask() _changesMask.ResetAll(); } -void AzeriteItemData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AzeriteItem const* owner, Player const* receiver) const +void AzeriteItemData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AzeriteItem const* owner) const { if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner)) { @@ -687,7 +687,7 @@ void AzeriteItemData::WriteCreate(ByteBuffer& data, EnumFlag fi data << uint32(UnlockedEssenceMilestones.size()); for (uint32 i = 0; i < UnlockedEssences.size(); ++i) { - UnlockedEssences[i].WriteCreate(data, owner, receiver); + UnlockedEssences[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < UnlockedEssenceMilestones.size(); ++i) { @@ -699,7 +699,7 @@ void AzeriteItemData::WriteCreate(ByteBuffer& data, EnumFlag fi } for (uint32 i = 0; i < SelectedEssences.size(); ++i) { - SelectedEssences[i].WriteCreate(data, owner, receiver); + SelectedEssences[i].WriteCreate(data, receiver, owner); } data.FlushBits(); } @@ -722,14 +722,14 @@ void AzeriteItemData::FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumF changesMask &= allowedMaskForTarget; } -void AzeriteItemData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AzeriteItem const* owner, Player const* receiver) const +void AzeriteItemData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AzeriteItem const* owner) const { Mask allowedMaskForTarget({ 0x0000001Du }); AzeriteItemDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); - WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); + WriteUpdate(_changesMask & allowedMaskForTarget, data, receiver, owner, false); } -void AzeriteItemData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, AzeriteItem const* owner, Player const* receiver) const +void AzeriteItemData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, AzeriteItem const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 10); @@ -770,7 +770,7 @@ void AzeriteItemData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, boo { if (UnlockedEssences.HasChanged(i) || ignoreNestedChangesMask) { - UnlockedEssences[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + UnlockedEssences[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -790,7 +790,7 @@ void AzeriteItemData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, boo { if (SelectedEssences.HasChanged(i) || ignoreNestedChangesMask) { - SelectedEssences[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + SelectedEssences[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -832,13 +832,13 @@ void AzeriteItemData::ClearChangesMask() _changesMask.ResetAll(); } -void SpellCastVisual::WriteCreate(ByteBuffer& data, Object const* owner, Player const* receiver) const +void SpellCastVisual::WriteCreate(ByteBuffer& data, Player const* receiver, Object const* owner) const { data << int32(SpellXSpellVisualID); data << int32(ScriptVisualID); } -void SpellCastVisual::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Object const* owner, Player const* receiver) const +void SpellCastVisual::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Object const* owner) const { data << int32(SpellXSpellVisualID); data << int32(ScriptVisualID); @@ -850,18 +850,18 @@ bool SpellCastVisual::operator==(SpellCastVisual const& right) const && ScriptVisualID == right.ScriptVisualID; } -void UnitChannel::WriteCreate(ByteBuffer& data, Unit const* owner, Player const* receiver) const +void UnitChannel::WriteCreate(ByteBuffer& data, Player const* receiver, Unit const* owner) const { data << int32(SpellID); - SpellVisual.WriteCreate(data, owner, receiver); + SpellVisual.WriteCreate(data, receiver, owner); data << uint32(StartTimeMs); data << uint32(Duration); } -void UnitChannel::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Unit const* owner, Player const* receiver) const +void UnitChannel::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Unit const* owner) const { data << int32(SpellID); - SpellVisual.WriteUpdate(data, ignoreChangesMask, owner, receiver); + SpellVisual.WriteUpdate(ignoreChangesMask, data, receiver, owner); data << uint32(StartTimeMs); data << uint32(Duration); } @@ -874,7 +874,7 @@ bool UnitChannel::operator==(UnitChannel const& right) const && Duration == right.Duration; } -void VisibleItem::WriteCreate(ByteBuffer& data, Unit const* owner, Player const* receiver) const +void VisibleItem::WriteCreate(ByteBuffer& data, Player const* receiver, Unit const* owner) const { data << int32(ItemID); data << int32(SecondaryItemModifiedAppearanceID); @@ -886,7 +886,7 @@ void VisibleItem::WriteCreate(ByteBuffer& data, Unit const* owner, Player const* data.FlushBits(); } -void VisibleItem::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Unit const* owner, Player const* receiver) const +void VisibleItem::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Unit const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -944,13 +944,13 @@ void VisibleItem::ClearChangesMask() _changesMask.ResetAll(); } -void PassiveSpellHistory::WriteCreate(ByteBuffer& data, Unit const* owner, Player const* receiver) const +void PassiveSpellHistory::WriteCreate(ByteBuffer& data, Player const* receiver, Unit const* owner) const { data << int32(SpellID); data << int32(AuraSpellID); } -void PassiveSpellHistory::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Unit const* owner, Player const* receiver) const +void PassiveSpellHistory::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Unit const* owner) const { data << int32(SpellID); data << int32(AuraSpellID); @@ -962,7 +962,7 @@ bool PassiveSpellHistory::operator==(PassiveSpellHistory const& right) const && AuraSpellID == right.AuraSpellID; } -void UnitAssistActionData::WriteCreate(ByteBuffer& data, Unit const* owner, Player const* receiver) const +void UnitAssistActionData::WriteCreate(ByteBuffer& data, Player const* receiver, Unit const* owner) const { data << uint8(Type); data << uint32(VirtualRealmAddress); @@ -971,7 +971,7 @@ void UnitAssistActionData::WriteCreate(ByteBuffer& data, Unit const* owner, Play data << WorldPackets::SizedString::Data(*PlayerName); } -void UnitAssistActionData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Unit const* owner, Player const* receiver) const +void UnitAssistActionData::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Unit const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -1007,19 +1007,19 @@ void UnitAssistActionData::ClearChangesMask() _changesMask.ResetAll(); } -void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Unit const* owner, Player const* receiver) const +void UnitData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Unit const* owner) const { ViewerDependentValue::value_type stateWorldEffectIDs = {}; - data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); - stateWorldEffectIDs = ViewerDependentValue::GetValue(this, owner, receiver); + data << int32(ViewerDependentValue::GetValue(this, receiver, owner)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); + stateWorldEffectIDs = ViewerDependentValue::GetValue(this, receiver, owner); data << uint32(stateWorldEffectIDs->size()); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); data << int32(SpellOverrideNameID); for (uint32 i = 0; i < stateWorldEffectIDs->size(); ++i) { @@ -1039,7 +1039,7 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi data << *Target; data << *BattlePetCompanionGUID; data << uint64(BattlePetDBID); - ChannelData->WriteCreate(data, owner, receiver); + ChannelData->WriteCreate(data, receiver, owner); data << int8(SpellEmpowerStage); data << uint32(SummonedByHomeRealm); data << uint8(Race); @@ -1071,12 +1071,12 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi data << int32(ScalingLevelMax); data << int32(ScalingLevelDelta); data << uint8(ScalingFactionGroup); - data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << int32(ViewerDependentValue::GetValue(this, receiver, owner)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); for (uint32 i = 0; i < 2; ++i) { data << uint32(AttackRoundBaseTime[i]); @@ -1149,7 +1149,7 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi data << int32(BaseHealth); } data << uint8(SheatheState); - data << uint8(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint8(ViewerDependentValue::GetValue(this, receiver, owner)); data << uint8(PetFlags); data << uint8(ShapeshiftForm); if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner)) @@ -1182,7 +1182,7 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi data << int32(WildBattlePetLevel); data << int32(BattlePetCompanionExperience); data << uint32(BattlePetCompanionNameTimestamp); - data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << int32(ViewerDependentValue::GetValue(this, receiver, owner)); data << int32(ScaleDuration); data << int32(LooksLikeMountID); data << int32(LooksLikeCreatureID); @@ -1205,7 +1205,7 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi data << *NameplateAttachToGUID; for (uint32 i = 0; i < PassiveSpells.size(); ++i) { - PassiveSpells[i].WriteCreate(data, owner, receiver); + PassiveSpells[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < WorldEffects.size(); ++i) { @@ -1217,14 +1217,14 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisi } for (uint32 i = 0; i < 3; ++i) { - VirtualItems[i].WriteCreate(data, owner, receiver); + VirtualItems[i].WriteCreate(data, receiver, owner); } data.FlushBits(); data.WriteBit(Field_314); data.WriteBits(AssistActionData.has_value(), 1); if (AssistActionData.has_value()) { - AssistActionData->WriteCreate(data, owner, receiver); + AssistActionData->WriteCreate(data, receiver, owner); } data.FlushBits(); } @@ -1251,14 +1251,14 @@ void UnitData::FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags, Unit const* owner, Player const* receiver) const +void UnitData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Unit const* owner) const { Mask allowedMaskForTarget({ 0xFFFEFFFFu, 0x1FF7FFFFu, 0x01EFFFFDu, 0xFFFFF001u, 0x3FFFFFFFu, 0x01FC0000u, 0x00000000u, 0x00000000u }); UnitDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); - WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); + WriteUpdate(_changesMask & allowedMaskForTarget, data, receiver, owner, false); } -void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Unit const* owner, Player const* receiver) const +void UnitData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Unit const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlocksMask(0), 8); for (uint32 i = 0; i < 8; ++i) @@ -1275,7 +1275,7 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor } if (changesMask[2]) { - stateWorldEffectIDs = ViewerDependentValue::GetValue(this, owner, receiver); + stateWorldEffectIDs = ViewerDependentValue::GetValue(this, receiver, owner); data.WriteBits(stateWorldEffectIDs->size(), 32); for (uint32 i = 0; i < stateWorldEffectIDs->size(); ++i) { @@ -1317,7 +1317,7 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor { if (PassiveSpells.HasChanged(i) || ignoreNestedChangesMask) { - PassiveSpells[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + PassiveSpells[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -1343,31 +1343,31 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor } if (changesMask[6]) { - data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << int32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[7]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[8]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[9]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[10]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[11]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[12]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[13]) { @@ -1419,7 +1419,7 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor } if (changesMask[25]) { - ChannelData->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ChannelData->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[26]) { @@ -1498,27 +1498,27 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor } if (changesMask[45]) { - data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << int32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[46]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[47]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[48]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[49]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[50]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[51]) { @@ -1661,7 +1661,7 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor } if (changesMask[86]) { - data << uint8(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint8(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[87]) { @@ -1784,7 +1784,7 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor } if (changesMask[117]) { - data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << int32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[118]) { @@ -1863,7 +1863,7 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor { if (AssistActionData.has_value()) { - AssistActionData->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + AssistActionData->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -1945,7 +1945,7 @@ void UnitData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignor { if (changesMask[179 + i]) { - VirtualItems[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + VirtualItems[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -2102,13 +2102,13 @@ void UnitData::ClearChangesMask() _changesMask.ResetAll(); } -void ChrCustomizationChoice::WriteCreate(ByteBuffer& data, Object const* owner, Player const* receiver) const +void ChrCustomizationChoice::WriteCreate(ByteBuffer& data, Player const* receiver, Object const* owner) const { data << uint32(ChrCustomizationOptionID); data << uint32(ChrCustomizationChoiceID); } -void ChrCustomizationChoice::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Object const* owner, Player const* receiver) const +void ChrCustomizationChoice::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Object const* owner) const { data << uint32(ChrCustomizationOptionID); data << uint32(ChrCustomizationChoiceID); @@ -2120,7 +2120,7 @@ bool ChrCustomizationChoice::operator==(ChrCustomizationChoice const& right) con && ChrCustomizationChoiceID == right.ChrCustomizationChoiceID; } -void QuestLog::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void QuestLog::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(QuestID); data << uint16(StateFlags); @@ -2133,7 +2133,7 @@ void QuestLog::WriteCreate(ByteBuffer& data, Player const* owner, Player const* data << uint32(EnabledObjectivesMask); } -void QuestLog::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void QuestLog::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -2190,7 +2190,7 @@ void QuestLog::ClearChangesMask() _changesMask.ResetAll(); } -void ArenaCooldown::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void ArenaCooldown::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(SpellID); data << int32(Charges); @@ -2201,7 +2201,7 @@ void ArenaCooldown::WriteCreate(ByteBuffer& data, Player const* owner, Player co data << uint8(MaxCharges); } -void ArenaCooldown::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void ArenaCooldown::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -2255,13 +2255,13 @@ void ArenaCooldown::ClearChangesMask() _changesMask.ResetAll(); } -void ZonePlayerForcedReaction::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void ZonePlayerForcedReaction::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(FactionID); data << int32(Reaction); } -void ZonePlayerForcedReaction::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void ZonePlayerForcedReaction::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -2290,7 +2290,7 @@ void ZonePlayerForcedReaction::ClearChangesMask() _changesMask.ResetAll(); } -void PetCreatureName::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void PetCreatureName::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(CreatureID); data.WriteBits(Name->size(), 8); @@ -2298,7 +2298,7 @@ void PetCreatureName::WriteCreate(ByteBuffer& data, Player const* owner, Player data.FlushBits(); } -void PetCreatureName::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void PetCreatureName::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -2329,7 +2329,7 @@ void PetCreatureName::ClearChangesMask() _changesMask.ResetAll(); } -void CTROptions::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void CTROptions::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(ConditionalFlags.size()); data << uint8(FactionGroup); @@ -2340,7 +2340,7 @@ void CTROptions::WriteCreate(ByteBuffer& data, Player const* owner, Player const } } -void CTROptions::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void CTROptions::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(ConditionalFlags.size()); data.FlushBits(); @@ -2359,7 +2359,7 @@ bool CTROptions::operator==(CTROptions const& right) const && ChromieTimeExpansionMask == right.ChromieTimeExpansionMask; } -void LeaverInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void LeaverInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << BnetAccountGUID; data << float(LeaveScore); @@ -2374,7 +2374,7 @@ void LeaverInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const data.FlushBits(); } -void LeaverInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void LeaverInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data.FlushBits(); data << BnetAccountGUID; @@ -2404,7 +2404,7 @@ bool LeaverInfo::operator==(LeaverInfo const& right) const && Flags == right.Flags; } -void DeclinedNames::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void DeclinedNames::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { for (uint32 i = 0; i < 5; ++i) { @@ -2417,7 +2417,7 @@ void DeclinedNames::WriteCreate(ByteBuffer& data, Player const* owner, Player co data.FlushBits(); } -void DeclinedNames::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void DeclinedNames::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -2457,7 +2457,7 @@ void DeclinedNames::ClearChangesMask() _changesMask.ResetAll(); } -void CustomTabardInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void CustomTabardInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(EmblemStyle); data << int32(EmblemColor); @@ -2466,7 +2466,7 @@ void CustomTabardInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player data << int32(BackgroundColor); } -void CustomTabardInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void CustomTabardInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -2510,7 +2510,7 @@ void CustomTabardInfo::ClearChangesMask() _changesMask.ResetAll(); } -void NPCAsPlayerInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void NPCAsPlayerInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(Field_0); data << int32(CharacterLoadoutID); @@ -2520,7 +2520,7 @@ void NPCAsPlayerInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player data << TransportGUID; } -void NPCAsPlayerInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void NPCAsPlayerInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(Field_0); data << int32(CharacterLoadoutID); @@ -2540,7 +2540,7 @@ bool NPCAsPlayerInfo::operator==(NPCAsPlayerInfo const& right) const && TransportGUID == right.TransportGUID; } -void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const +void PlayerData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << *DuelArbiter; data << *WowAccount; @@ -2568,7 +2568,7 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi { for (uint32 i = 0; i < 175; ++i) { - QuestLog[i].WriteCreate(data, owner, receiver); + QuestLog[i].WriteCreate(data, receiver, owner); } data << uint32(QuestSessionQuestLog.size()); } @@ -2588,13 +2588,13 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi data << uint32(ArenaCooldowns.size()); for (uint32 i = 0; i < 32; ++i) { - ForcedReactions[i].WriteCreate(data, owner, receiver); + ForcedReactions[i].WriteCreate(data, receiver, owner); } data << int32(OfferedAdvJournalQuestID); data << int32(OfferedScriptQuestID); data << int32(CurrentBattlePetSpeciesID); data << uint32(PetNames.size()); - CtrOptions->WriteCreate(data, owner, receiver); + CtrOptions->WriteCreate(data, receiver, owner); data << int32(CovenantID); data << int32(SoulbindID); data << *SpectateTarget; @@ -2604,26 +2604,26 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi { data << uint32(PlunderstormItemDisplayID[i]); } - PersonalTabard->WriteCreate(data, owner, receiver); - NpcAsPlayerInfo->WriteCreate(data, owner, receiver); + PersonalTabard->WriteCreate(data, receiver, owner); + NpcAsPlayerInfo->WriteCreate(data, receiver, owner); for (uint32 i = 0; i < Customizations.size(); ++i) { - Customizations[i].WriteCreate(data, owner, receiver); + Customizations[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < RandomCustomizations.size(); ++i) { - RandomCustomizations[i].WriteCreate(data, owner, receiver); + RandomCustomizations[i].WriteCreate(data, receiver, owner); } if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::PartyMember)) { for (uint32 i = 0; i < QuestSessionQuestLog.size(); ++i) { - QuestSessionQuestLog[i].WriteCreate(data, owner, receiver); + QuestSessionQuestLog[i].WriteCreate(data, receiver, owner); } } for (uint32 i = 0; i < ArenaCooldowns.size(); ++i) { - ArenaCooldowns[i].WriteCreate(data, owner, receiver); + ArenaCooldowns[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < VisualItemReplacements.size(); ++i) { @@ -2631,7 +2631,7 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi } for (uint32 i = 0; i < 19; ++i) { - VisibleItems[i].WriteCreate(data, owner, receiver); + VisibleItems[i].WriteCreate(data, receiver, owner); } data.FlushBits(); data.WriteBits(Name->size(), 6); @@ -2643,18 +2643,18 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi data.WriteBits(DeclinedNames.has_value(), 1); data << *DungeonScore; data << WorldPackets::SizedString::Data(*Name); - LeaverInfo->WriteCreate(data, owner, receiver); + LeaverInfo->WriteCreate(data, receiver, owner); for (uint32 i = 0; i < 16; ++i) { data << VisibleEquipableSpells[i]; } for (uint32 i = 0; i < PetNames.size(); ++i) { - PetNames[i].WriteCreate(data, owner, receiver); + PetNames[i].WriteCreate(data, receiver, owner); } if (DeclinedNames.has_value()) { - DeclinedNames->WriteCreate(data, owner, receiver); + DeclinedNames->WriteCreate(data, receiver, owner); } data.FlushBits(); } @@ -2677,14 +2677,14 @@ void PlayerData::FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const +void PlayerData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask allowedMaskForTarget({ 0xFFFFFFDDu, 0x000FFFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFF0u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x0000001Fu }); PlayerDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); - WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); + WriteUpdate(_changesMask & allowedMaskForTarget, data, receiver, owner, false); } -void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const +void PlayerData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Player const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlocksMask(0), 11); for (uint32 i = 0; i < 11; ++i) @@ -2754,7 +2754,7 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign { if (Customizations.HasChanged(i) || ignoreNestedChangesMask) { - Customizations[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + Customizations[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -2764,7 +2764,7 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign { if (RandomCustomizations.HasChanged(i) || ignoreNestedChangesMask) { - RandomCustomizations[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + RandomCustomizations[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -2775,9 +2775,9 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign if (QuestSessionQuestLog.HasChanged(i) || ignoreNestedChangesMask) { if (noQuestLogChangesMask) - QuestSessionQuestLog[i].WriteCreate(data, owner, receiver); + QuestSessionQuestLog[i].WriteCreate(data, receiver, owner); else - QuestSessionQuestLog[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + QuestSessionQuestLog[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -2787,7 +2787,7 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign { if (ArenaCooldowns.HasChanged(i) || ignoreNestedChangesMask) { - ArenaCooldowns[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ArenaCooldowns[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -2807,7 +2807,7 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign { if (PetNames.HasChanged(i) || ignoreNestedChangesMask) { - PetNames[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + PetNames[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -2928,7 +2928,7 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign } if (changesMask[39]) { - CtrOptions->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + CtrOptions->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[40]) { @@ -2948,11 +2948,11 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign } if (changesMask[47]) { - PersonalTabard->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + PersonalTabard->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[48]) { - NpcAsPlayerInfo->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + NpcAsPlayerInfo->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[35]) { @@ -2970,13 +2970,13 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign } if (changesMask[43]) { - LeaverInfo->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + LeaverInfo->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[46]) { if (DeclinedNames.has_value()) { - DeclinedNames->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + DeclinedNames->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -2997,9 +2997,9 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign if (changesMask[53 + i]) { if (noQuestLogChangesMask) - QuestLog[i].WriteCreate(data, owner, receiver); + QuestLog[i].WriteCreate(data, receiver, owner); else - QuestLog[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + QuestLog[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -3019,7 +3019,7 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign { if (changesMask[256 + i]) { - ForcedReactions[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ForcedReactions[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -3039,7 +3039,7 @@ void PlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign { if (changesMask[229 + i]) { - VisibleItems[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + VisibleItems[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -3115,7 +3115,7 @@ void PlayerData::ClearChangesMask() _changesMask.ResetAll(); } -void SkillInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void SkillInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { for (uint32 i = 0; i < 300; ++i) { @@ -3129,7 +3129,7 @@ void SkillInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* } } -void SkillInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void SkillInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -3191,7 +3191,7 @@ void SkillInfo::ClearChangesMask() _changesMask.ResetAll(); } -void BitVector::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void BitVector::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(Values.size()); for (uint32 i = 0; i < Values.size(); ++i) @@ -3200,7 +3200,7 @@ void BitVector::WriteCreate(ByteBuffer& data, Player const* owner, Player const* } } -void BitVector::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void BitVector::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -3240,15 +3240,15 @@ void BitVector::ClearChangesMask() _changesMask.ResetAll(); } -void BitVectors::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void BitVectors::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { for (uint32 i = 0; i < 14; ++i) { - Values[i].WriteCreate(data, owner, receiver); + Values[i].WriteCreate(data, receiver, owner); } } -void BitVectors::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void BitVectors::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -3265,7 +3265,7 @@ void BitVectors::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player co { if (changesMask[1 + i]) { - Values[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + Values[i].WriteUpdate(ignoreChangesMask, data, receiver, owner); } } } @@ -3277,7 +3277,7 @@ void BitVectors::ClearChangesMask() _changesMask.ResetAll(); } -void PlayerDataElement::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void PlayerDataElement::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(Type); if (Type == 1) @@ -3290,7 +3290,7 @@ void PlayerDataElement::WriteCreate(ByteBuffer& data, Player const* owner, Playe } } -void PlayerDataElement::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void PlayerDataElement::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(Type); if (Type == 1) @@ -3310,13 +3310,13 @@ bool PlayerDataElement::operator==(PlayerDataElement const& right) const && Int64Value == right.Int64Value; } -void RestInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void RestInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(Threshold); data << uint8(StateID); } -void RestInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void RestInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -3345,7 +3345,7 @@ void RestInfo::ClearChangesMask() _changesMask.ResetAll(); } -void PVPInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void PVPInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int8(Bracket); data << int32(PvpRatingID); @@ -3368,7 +3368,7 @@ void PVPInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* r data.FlushBits(); } -void PVPInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void PVPInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -3481,7 +3481,7 @@ void PVPInfo::ClearChangesMask() _changesMask.ResetAll(); } -void CharacterRestriction::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void CharacterRestriction::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(Field_0); data << int32(Field_4); @@ -3490,7 +3490,7 @@ void CharacterRestriction::WriteCreate(ByteBuffer& data, Player const* owner, Pl data.FlushBits(); } -void CharacterRestriction::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void CharacterRestriction::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(Field_0); data << int32(Field_4); @@ -3507,14 +3507,14 @@ bool CharacterRestriction::operator==(CharacterRestriction const& right) const && Type == right.Type; } -void SpellPctModByLabel::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void SpellPctModByLabel::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(ModIndex); data << float(ModifierValue); data << int32(LabelID); } -void SpellPctModByLabel::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void SpellPctModByLabel::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(ModIndex); data << float(ModifierValue); @@ -3528,14 +3528,14 @@ bool SpellPctModByLabel::operator==(SpellPctModByLabel const& right) const && LabelID == right.LabelID; } -void SpellFlatModByLabel::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void SpellFlatModByLabel::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(ModIndex); data << int32(ModifierValue); data << int32(LabelID); } -void SpellFlatModByLabel::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void SpellFlatModByLabel::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(ModIndex); data << int32(ModifierValue); @@ -3549,14 +3549,14 @@ bool SpellFlatModByLabel::operator==(SpellFlatModByLabel const& right) const && LabelID == right.LabelID; } -void SpellPctPVPModByLabel::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void SpellPctPVPModByLabel::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(PvpModIndex); data << float(ModifierValue); data << int32(LabelID); } -void SpellPctPVPModByLabel::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void SpellPctPVPModByLabel::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(PvpModIndex); data << float(ModifierValue); @@ -3570,14 +3570,14 @@ bool SpellPctPVPModByLabel::operator==(SpellPctPVPModByLabel const& right) const && LabelID == right.LabelID; } -void SpellFlatPVPModByLabel::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void SpellFlatPVPModByLabel::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(PvpModIndex); data << int32(ModifierValue); data << int32(LabelID); } -void SpellFlatPVPModByLabel::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void SpellFlatPVPModByLabel::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(PvpModIndex); data << int32(ModifierValue); @@ -3591,14 +3591,14 @@ bool SpellFlatPVPModByLabel::operator==(SpellFlatPVPModByLabel const& right) con && LabelID == right.LabelID; } -void CompletedProject::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void CompletedProject::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int64(FirstCompleted); data << uint32(ProjectID); data << uint32(CompletionCount); } -void CompletedProject::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void CompletedProject::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -3632,16 +3632,16 @@ void CompletedProject::ClearChangesMask() _changesMask.ResetAll(); } -void ResearchHistory::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void ResearchHistory::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(CompletedProjects.size()); for (uint32 i = 0; i < CompletedProjects.size(); ++i) { - CompletedProjects[i].WriteCreate(data, owner, receiver); + CompletedProjects[i].WriteCreate(data, receiver, owner); } } -void ResearchHistory::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void ResearchHistory::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -3668,7 +3668,7 @@ void ResearchHistory::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Play { if (CompletedProjects.HasChanged(i) || ignoreChangesMask) { - CompletedProjects[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + CompletedProjects[i].WriteUpdate(ignoreChangesMask, data, receiver, owner); } } } @@ -3681,14 +3681,14 @@ void ResearchHistory::ClearChangesMask() _changesMask.ResetAll(); } -void MawPower::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void MawPower::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(SpellID); data << int32(MawPowerID); data << int32(Stacks); } -void MawPower::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void MawPower::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(SpellID); data << int32(MawPowerID); @@ -3702,7 +3702,7 @@ bool MawPower::operator==(MawPower const& right) const && Stacks == right.Stacks; } -void MultiFloorExplore::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void MultiFloorExplore::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(WorldMapOverlayIDs.size()); for (uint32 i = 0; i < WorldMapOverlayIDs.size(); ++i) @@ -3711,7 +3711,7 @@ void MultiFloorExplore::WriteCreate(ByteBuffer& data, Player const* owner, Playe } } -void MultiFloorExplore::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void MultiFloorExplore::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(WorldMapOverlayIDs.size()); for (uint32 i = 0; i < WorldMapOverlayIDs.size(); ++i) @@ -3726,13 +3726,13 @@ bool MultiFloorExplore::operator==(MultiFloorExplore const& right) const return WorldMapOverlayIDs == right.WorldMapOverlayIDs; } -void RecipeProgressionInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void RecipeProgressionInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint16(RecipeProgressionGroupID); data << uint16(Experience); } -void RecipeProgressionInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void RecipeProgressionInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint16(RecipeProgressionGroupID); data << uint16(Experience); @@ -3744,13 +3744,13 @@ bool RecipeProgressionInfo::operator==(RecipeProgressionInfo const& right) const && Experience == right.Experience; } -void LevelLinkInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void LevelLinkInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << *TargetGUID; data << int32(Level); } -void LevelLinkInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void LevelLinkInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -3779,13 +3779,13 @@ void LevelLinkInfo::ClearChangesMask() _changesMask.ResetAll(); } -void QuestSession::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void QuestSession::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << *Owner; - QuestCompleted->WriteCreate(data, owner, receiver); + QuestCompleted->WriteCreate(data, receiver, owner); } -void QuestSession::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void QuestSession::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -3802,7 +3802,7 @@ void QuestSession::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player } if (changesMask[2]) { - QuestCompleted->WriteUpdate(data, ignoreChangesMask, owner, receiver); + QuestCompleted->WriteUpdate(ignoreChangesMask, data, receiver, owner); } } } @@ -3814,13 +3814,13 @@ void QuestSession::ClearChangesMask() _changesMask.ResetAll(); } -void ReplayedQuest::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void ReplayedQuest::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(QuestID); data << uint32(ReplayTime); } -void ReplayedQuest::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void ReplayedQuest::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -3849,7 +3849,7 @@ void ReplayedQuest::ClearChangesMask() _changesMask.ResetAll(); } -void TraitEntry::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void TraitEntry::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(TraitNodeID); data << int32(TraitNodeEntryID); @@ -3858,7 +3858,7 @@ void TraitEntry::WriteCreate(ByteBuffer& data, Player const* owner, Player const data << int32(BonusRanks); } -void TraitEntry::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void TraitEntry::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(TraitNodeID); data << int32(TraitNodeEntryID); @@ -3876,25 +3876,25 @@ bool TraitEntry::operator==(TraitEntry const& right) const && BonusRanks == right.BonusRanks; } -void TraitSubTreeCache::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void TraitSubTreeCache::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(TraitSubTreeID); data << uint32(Entries.size()); for (uint32 i = 0; i < Entries.size(); ++i) { - Entries[i].WriteCreate(data, owner, receiver); + Entries[i].WriteCreate(data, receiver, owner); } data.WriteBits(Active, 1); data.FlushBits(); } -void TraitSubTreeCache::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void TraitSubTreeCache::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(TraitSubTreeID); data << uint32(Entries.size()); for (uint32 i = 0; i < Entries.size(); ++i) { - Entries[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + Entries[i].WriteUpdate(ignoreChangesMask, data, receiver, owner); } data.FlushBits(); data.WriteBits(Active, 1); @@ -3908,7 +3908,7 @@ bool TraitSubTreeCache::operator==(TraitSubTreeCache const& right) const && Active == right.Active; } -void TraitConfig::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void TraitConfig::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(ID); data << int32(Type); @@ -3931,18 +3931,18 @@ void TraitConfig::WriteCreate(ByteBuffer& data, Player const* owner, Player cons } for (uint32 i = 0; i < Entries.size(); ++i) { - Entries[i].WriteCreate(data, owner, receiver); + Entries[i].WriteCreate(data, receiver, owner); } data.WriteBits(Name->size(), 9); for (uint32 i = 0; i < SubTrees.size(); ++i) { - SubTrees[i].WriteCreate(data, owner, receiver); + SubTrees[i].WriteCreate(data, receiver, owner); } data << WorldPackets::SizedString::Data(*Name); data.FlushBits(); } -void TraitConfig::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void TraitConfig::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -3976,7 +3976,7 @@ void TraitConfig::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player c { if (Entries.HasChanged(i) || ignoreChangesMask) { - Entries[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + Entries[i].WriteUpdate(ignoreChangesMask, data, receiver, owner); } } } @@ -3986,7 +3986,7 @@ void TraitConfig::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player c { if (SubTrees.HasChanged(i) || ignoreChangesMask) { - SubTrees[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + SubTrees[i].WriteUpdate(ignoreChangesMask, data, receiver, owner); } } } @@ -4077,7 +4077,7 @@ void TraitConfig::ClearChangesMask() _changesMask.ResetAll(); } -void CraftingOrderItem::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void CraftingOrderItem::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint64(OrderItemID); data << *ItemGUID; @@ -4093,7 +4093,7 @@ void CraftingOrderItem::WriteCreate(ByteBuffer& data, Player const* owner, Playe } } -void CraftingOrderItem::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void CraftingOrderItem::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -4149,13 +4149,13 @@ void CraftingOrderItem::ClearChangesMask() _changesMask.ResetAll(); } -void CraftingOrderCustomer::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void CraftingOrderCustomer::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << *CustomerGUID; data << *CustomerAccountGUID; } -void CraftingOrderCustomer::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void CraftingOrderCustomer::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -4181,13 +4181,13 @@ void CraftingOrderCustomer::ClearChangesMask() _changesMask.ResetAll(); } -void CraftingOrderNpcCustomer::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void CraftingOrderNpcCustomer::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int64(NpcCraftingOrderCustomerID); data << int32(RealmAddress); } -void CraftingOrderNpcCustomer::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void CraftingOrderNpcCustomer::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -4213,7 +4213,7 @@ void CraftingOrderNpcCustomer::ClearChangesMask() _changesMask.ResetAll(); } -void CraftingOrderData::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void CraftingOrderData::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(Field_0); data << uint64(OrderID); @@ -4239,20 +4239,20 @@ void CraftingOrderData::WriteCreate(ByteBuffer& data, Player const* owner, Playe data.FlushBits(); for (uint32 i = 0; i < Reagents.size(); ++i) { - Reagents[i].WriteCreate(data, owner, receiver); + Reagents[i].WriteCreate(data, receiver, owner); } data << WorldPackets::SizedString::Data(*CustomerNotes); if (Customer.has_value()) { - Customer->WriteCreate(data, owner, receiver); + Customer->WriteCreate(data, receiver, owner); } if (NpcCustomer.has_value()) { - NpcCustomer->WriteCreate(data, owner, receiver); + NpcCustomer->WriteCreate(data, receiver, owner); } if (OutputItem.has_value()) { - OutputItem->WriteCreate(data, owner, receiver); + OutputItem->WriteCreate(data, receiver, owner); } if (OutputItemData.has_value()) { @@ -4261,7 +4261,7 @@ void CraftingOrderData::WriteCreate(ByteBuffer& data, Player const* owner, Playe data.FlushBits(); } -void CraftingOrderData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void CraftingOrderData::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -4288,7 +4288,7 @@ void CraftingOrderData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Pl { if (Reagents.HasChanged(i) || ignoreChangesMask) { - Reagents[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + Reagents[i].WriteUpdate(ignoreChangesMask, data, receiver, owner); } } } @@ -4383,21 +4383,21 @@ void CraftingOrderData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Pl { if (Customer.has_value()) { - Customer->WriteUpdate(data, ignoreChangesMask, owner, receiver); + Customer->WriteUpdate(ignoreChangesMask, data, receiver, owner); } } if (changesMask[22]) { if (NpcCustomer.has_value()) { - NpcCustomer->WriteUpdate(data, ignoreChangesMask, owner, receiver); + NpcCustomer->WriteUpdate(ignoreChangesMask, data, receiver, owner); } } if (changesMask[23]) { if (OutputItem.has_value()) { - OutputItem->WriteUpdate(data, ignoreChangesMask, owner, receiver); + OutputItem->WriteUpdate(ignoreChangesMask, data, receiver, owner); } } } @@ -4440,9 +4440,9 @@ void CraftingOrderData::ClearChangesMask() _changesMask.ResetAll(); } -void CraftingOrder::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void CraftingOrder::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { - Data->WriteCreate(data, owner, receiver); + Data->WriteCreate(data, receiver, owner); data.WriteBits(RecraftItemInfo.has_value(), 1); data.WriteBits(Enchantments.size(), 4); data.WriteBits(Gems.size(), 2); @@ -4462,7 +4462,7 @@ void CraftingOrder::WriteCreate(ByteBuffer& data, Player const* owner, Player co data.FlushBits(); } -void CraftingOrder::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void CraftingOrder::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -4507,7 +4507,7 @@ void CraftingOrder::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player } if (changesMask[2]) { - Data->WriteUpdate(data, ignoreChangesMask, owner, receiver); + Data->WriteUpdate(ignoreChangesMask, data, receiver, owner); } data.WriteBits(RecraftItemInfo.has_value(), 1); data.FlushBits(); @@ -4530,13 +4530,13 @@ void CraftingOrder::ClearChangesMask() _changesMask.ResetAll(); } -void PersonalCraftingOrderCount::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void PersonalCraftingOrderCount::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(ProfessionID); data << uint32(Count); } -void PersonalCraftingOrderCount::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void PersonalCraftingOrderCount::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -4562,7 +4562,7 @@ void PersonalCraftingOrderCount::ClearChangesMask() _changesMask.ResetAll(); } -void NPCCraftingOrderInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void NPCCraftingOrderInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint64(OrderID); data << int32(NpcCraftingOrderSetID); @@ -4570,7 +4570,7 @@ void NPCCraftingOrderInfo::WriteCreate(ByteBuffer& data, Player const* owner, Pl data << int32(NpcCraftingOrderCustomerID); } -void NPCCraftingOrderInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void NPCCraftingOrderInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -4606,13 +4606,13 @@ void NPCCraftingOrderInfo::ClearChangesMask() _changesMask.ResetAll(); } -void CategoryCooldownMod::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void CategoryCooldownMod::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(SpellCategoryID); data << int32(ModCooldown); } -void CategoryCooldownMod::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void CategoryCooldownMod::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(SpellCategoryID); data << int32(ModCooldown); @@ -4624,13 +4624,13 @@ bool CategoryCooldownMod::operator==(CategoryCooldownMod const& right) const && ModCooldown == right.ModCooldown; } -void WeeklySpellUse::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void WeeklySpellUse::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(SpellCategoryID); data << uint8(Uses); } -void WeeklySpellUse::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void WeeklySpellUse::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(SpellCategoryID); data << uint8(Uses); @@ -4642,7 +4642,7 @@ bool WeeklySpellUse::operator==(WeeklySpellUse const& right) const && Uses == right.Uses; } -void StablePetInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void StablePetInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(PetSlot); data << uint32(PetNumber); @@ -4656,7 +4656,7 @@ void StablePetInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player co data.FlushBits(); } -void StablePetInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void StablePetInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -4717,17 +4717,17 @@ void StablePetInfo::ClearChangesMask() _changesMask.ResetAll(); } -void StableInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void StableInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(Pets.size()); data << *StableMaster; for (uint32 i = 0; i < Pets.size(); ++i) { - Pets[i].WriteCreate(data, owner, receiver); + Pets[i].WriteCreate(data, receiver, owner); } } -void StableInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void StableInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -4754,7 +4754,7 @@ void StableInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player co { if (Pets.HasChanged(i) || ignoreChangesMask) { - Pets[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + Pets[i].WriteUpdate(ignoreChangesMask, data, receiver, owner); } } } @@ -4772,14 +4772,14 @@ void StableInfo::ClearChangesMask() _changesMask.ResetAll(); } -void CollectableSourceTrackedData::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void CollectableSourceTrackedData::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(TargetType); data << int32(TargetID); data << int32(CollectableSourceInfoID); } -void CollectableSourceTrackedData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void CollectableSourceTrackedData::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -4813,7 +4813,7 @@ void CollectableSourceTrackedData::ClearChangesMask() _changesMask.ResetAll(); } -void BankTabSettings::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void BankTabSettings::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data.WriteBits(Name->size(), 7); data.WriteBits(Icon->size(), 9); @@ -4825,7 +4825,7 @@ void BankTabSettings::WriteCreate(ByteBuffer& data, Player const* owner, Player data.FlushBits(); } -void BankTabSettings::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void BankTabSettings::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -4874,7 +4874,7 @@ void BankTabSettings::ClearChangesMask() _changesMask.ResetAll(); } -void WalkInData::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void WalkInData::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(MapID); data << int64(Field_8); @@ -4883,7 +4883,7 @@ void WalkInData::WriteCreate(ByteBuffer& data, Player const* owner, Player const data.FlushBits(); } -void WalkInData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void WalkInData::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(MapID); data << int64(Field_8); @@ -4900,7 +4900,7 @@ bool WalkInData::operator==(WalkInData const& right) const && Field_18 == right.Field_18; } -void DelveData::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void DelveData::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(Field_0); data << uint64(Field_8); @@ -4915,7 +4915,7 @@ void DelveData::WriteCreate(ByteBuffer& data, Player const* owner, Player const* data.FlushBits(); } -void DelveData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void DelveData::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data.FlushBits(); data << int32(Field_0); @@ -4941,7 +4941,7 @@ bool DelveData::operator==(DelveData const& right) const && Started == right.Started; } -void ChallengeModeData::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void ChallengeModeData::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(MapID); data << int32(InitialPlayerCount); @@ -4956,7 +4956,7 @@ void ChallengeModeData::WriteCreate(ByteBuffer& data, Player const* owner, Playe data.FlushBits(); } -void ChallengeModeData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void ChallengeModeData::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(MapID); data << int32(InitialPlayerCount); @@ -4985,7 +4985,7 @@ bool ChallengeModeData::operator==(ChallengeModeData const& right) const && CanVoteAbandon == right.CanVoteAbandon; } -void TransmogOutfitDataInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void TransmogOutfitDataInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint8(SetType); data << uint32(Icon); @@ -4996,7 +4996,7 @@ void TransmogOutfitDataInfo::WriteCreate(ByteBuffer& data, Player const* owner, data.FlushBits(); } -void TransmogOutfitDataInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void TransmogOutfitDataInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -5034,7 +5034,7 @@ void TransmogOutfitDataInfo::ClearChangesMask() _changesMask.ResetAll(); } -void TransmogOutfitSituationInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void TransmogOutfitSituationInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(SituationID); data << uint32(SpecID); @@ -5042,7 +5042,7 @@ void TransmogOutfitSituationInfo::WriteCreate(ByteBuffer& data, Player const* ow data << uint32(EquipmentSetID); } -void TransmogOutfitSituationInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void TransmogOutfitSituationInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -5078,7 +5078,7 @@ void TransmogOutfitSituationInfo::ClearChangesMask() _changesMask.ResetAll(); } -void TransmogOutfitSlotData::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void TransmogOutfitSlotData::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int8(Slot); data << uint8(SlotOption); @@ -5089,7 +5089,7 @@ void TransmogOutfitSlotData::WriteCreate(ByteBuffer& data, Player const* owner, data << uint32(Flags); } -void TransmogOutfitSlotData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void TransmogOutfitSlotData::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -5140,7 +5140,7 @@ void TransmogOutfitSlotData::ClearChangesMask() _changesMask.ResetAll(); } -void TransmogOutfitData::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void TransmogOutfitData::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(Id); data << uint32(Situations.size()); @@ -5148,16 +5148,16 @@ void TransmogOutfitData::WriteCreate(ByteBuffer& data, Player const* owner, Play data << uint32(Flags); for (uint32 i = 0; i < Situations.size(); ++i) { - Situations[i].WriteCreate(data, owner, receiver); + Situations[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < Slots.size(); ++i) { - Slots[i].WriteCreate(data, owner, receiver); + Slots[i].WriteCreate(data, receiver, owner); } - OutfitInfo->WriteCreate(data, owner, receiver); + OutfitInfo->WriteCreate(data, receiver, owner); } -void TransmogOutfitData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void TransmogOutfitData::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -5186,7 +5186,7 @@ void TransmogOutfitData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, P { if (Situations.HasChanged(i) || ignoreChangesMask) { - Situations[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + Situations[i].WriteUpdate(ignoreChangesMask, data, receiver, owner); } } } @@ -5196,7 +5196,7 @@ void TransmogOutfitData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, P { if (Slots.HasChanged(i) || ignoreChangesMask) { - Slots[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + Slots[i].WriteUpdate(ignoreChangesMask, data, receiver, owner); } } } @@ -5210,7 +5210,7 @@ void TransmogOutfitData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, P } if (changesMask[3]) { - OutfitInfo->WriteUpdate(data, ignoreChangesMask, owner, receiver); + OutfitInfo->WriteUpdate(ignoreChangesMask, data, receiver, owner); } } @@ -5224,7 +5224,7 @@ void TransmogOutfitData::ClearChangesMask() _changesMask.ResetAll(); } -void TransmogOutfitMetadata::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void TransmogOutfitMetadata::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint8(SituationTrigger); data << uint32(TransmogOutfitID); @@ -5234,7 +5234,7 @@ void TransmogOutfitMetadata::WriteCreate(ByteBuffer& data, Player const* owner, data.FlushBits(); } -void TransmogOutfitMetadata::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void TransmogOutfitMetadata::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint8(SituationTrigger); data << uint32(TransmogOutfitID); @@ -5254,12 +5254,12 @@ bool TransmogOutfitMetadata::operator==(TransmogOutfitMetadata const& right) con && StampedOptionOffHand == right.StampedOptionOffHand; } -void Research::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void Research::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int16(ResearchProjectID); } -void Research::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void Research::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int16(ResearchProjectID); } @@ -5269,7 +5269,7 @@ bool Research::operator==(Research const& right) const return ResearchProjectID == right.ResearchProjectID; } -void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const +void ActivePlayerData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const { for (uint32 i = 0; i < 105; ++i) { @@ -5283,7 +5283,7 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f data << int32(XP); data << int32(NextLevelXP); data << int32(TrialXP); - Skill->WriteCreate(data, owner, receiver); + Skill->WriteCreate(data, receiver, owner); data << int32(CharacterPoints); data << int32(MaxTalentTiers); data << uint32(TrackCreatureMask); @@ -5310,12 +5310,12 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f data << float(VersatilityBonus); data << float(PvpPowerDamage); data << float(PvpPowerHealing); - BitVectors->WriteCreate(data, owner, receiver); + BitVectors->WriteCreate(data, receiver, owner); data << uint32(CharacterDataElements.size()); data << uint32(AccountDataElements.size()); for (uint32 i = 0; i < 2; ++i) { - RestInfo[i].WriteCreate(data, owner, receiver); + RestInfo[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < 7; ++i) { @@ -5408,7 +5408,7 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f } for (uint32 j = 0; j < Research[i].size(); ++j) { - Research[i][j].WriteCreate(data, owner, receiver); + Research[i][j].WriteCreate(data, receiver, owner); } } data << uint32(DailyQuestsCompleted.size()); @@ -5470,11 +5470,11 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f } for (uint32 i = 0; i < CharacterDataElements.size(); ++i) { - CharacterDataElements[i].WriteCreate(data, owner, receiver); + CharacterDataElements[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < AccountDataElements.size(); ++i) { - AccountDataElements[i].WriteCreate(data, owner, receiver); + AccountDataElements[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < DailyQuestsCompleted.size(); ++i) { @@ -5554,39 +5554,39 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f } for (uint32 i = 0; i < SpellPctModByLabel.size(); ++i) { - SpellPctModByLabel[i].WriteCreate(data, owner, receiver); + SpellPctModByLabel[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < SpellFlatModByLabel.size(); ++i) { - SpellFlatModByLabel[i].WriteCreate(data, owner, receiver); + SpellFlatModByLabel[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < SpellPctModPVPByLabel.size(); ++i) { - SpellPctModPVPByLabel[i].WriteCreate(data, owner, receiver); + SpellPctModPVPByLabel[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < SpellFlatModPVPByLabel.size(); ++i) { - SpellFlatModPVPByLabel[i].WriteCreate(data, owner, receiver); + SpellFlatModPVPByLabel[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < MawPowers.size(); ++i) { - MawPowers[i].WriteCreate(data, owner, receiver); + MawPowers[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < MultiFloorExploration.size(); ++i) { - MultiFloorExploration[i].WriteCreate(data, owner, receiver); + MultiFloorExploration[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < RecipeProgression.size(); ++i) { - RecipeProgression[i].WriteCreate(data, owner, receiver); + RecipeProgression[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < ReplayedQuests.size(); ++i) { - ReplayedQuests[i].WriteCreate(data, owner, receiver); + ReplayedQuests[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < TaskQuests.size(); ++i) { - TaskQuests[i].WriteCreate(data, owner, receiver); + TaskQuests[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < DisabledSpells.size(); ++i) { @@ -5594,23 +5594,23 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f } for (uint32 i = 0; i < PersonalCraftingOrderCounts.size(); ++i) { - PersonalCraftingOrderCounts[i].WriteCreate(data, owner, receiver); + PersonalCraftingOrderCounts[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < NpcCraftingOrders.size(); ++i) { - NpcCraftingOrders[i].WriteCreate(data, owner, receiver); + NpcCraftingOrders[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < CategoryCooldownMods.size(); ++i) { - CategoryCooldownMods[i].WriteCreate(data, owner, receiver); + CategoryCooldownMods[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < WeeklySpellUses.size(); ++i) { - WeeklySpellUses[i].WriteCreate(data, owner, receiver); + WeeklySpellUses[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < TrackedCollectableSources.size(); ++i) { - TrackedCollectableSources[i].WriteCreate(data, owner, receiver); + TrackedCollectableSources[i].WriteCreate(data, receiver, owner); } data.FlushBits(); data.WriteBit(BackpackAutoSortDisabled); @@ -5627,63 +5627,63 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag f data.WriteBits(DelveData.has_value(), 1); data.WriteBits(ChallengeModeData.has_value(), 1); data.FlushBits(); - ResearchHistory->WriteCreate(data, owner, receiver); + ResearchHistory->WriteCreate(data, receiver, owner); if (QuestSession.has_value()) { - QuestSession->WriteCreate(data, owner, receiver); + QuestSession->WriteCreate(data, receiver, owner); } data << *FrozenPerksVendorItem; - LevelLinkInfo->WriteCreate(data, owner, receiver); + LevelLinkInfo->WriteCreate(data, receiver, owner); data << *DungeonScore; - WriteMapFieldCreate(TraitConfigs, data, owner, receiver); - WriteMapFieldCreate(TransmogOutfits, data, owner, receiver); - ViewedOutfit->WriteCreate(data, owner, receiver); - TransmogMetadata->WriteCreate(data, owner, receiver); + WriteMapFieldCreate(TraitConfigs, data, receiver, owner); + WriteMapFieldCreate(TransmogOutfits, data, receiver, owner); + ViewedOutfit->WriteCreate(data, receiver, owner); + TransmogMetadata->WriteCreate(data, receiver, owner); for (uint32 i = 0; i < PvpInfo.size(); ++i) { - PvpInfo[i].WriteCreate(data, owner, receiver); + PvpInfo[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < CharacterRestrictions.size(); ++i) { - CharacterRestrictions[i].WriteCreate(data, owner, receiver); + CharacterRestrictions[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < CraftingOrders.size(); ++i) { - CraftingOrders[i].WriteCreate(data, owner, receiver); + CraftingOrders[i].WriteCreate(data, receiver, owner); } if (PetStable.has_value()) { - PetStable->WriteCreate(data, owner, receiver); + PetStable->WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < CharacterBankTabSettings.size(); ++i) { - CharacterBankTabSettings[i].WriteCreate(data, owner, receiver); + CharacterBankTabSettings[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < AccountBankTabSettings.size(); ++i) { - AccountBankTabSettings[i].WriteCreate(data, owner, receiver); + AccountBankTabSettings[i].WriteCreate(data, receiver, owner); } if (WalkInData.has_value()) { - WalkInData->WriteCreate(data, owner, receiver); + WalkInData->WriteCreate(data, receiver, owner); } if (DelveData.has_value()) { - DelveData->WriteCreate(data, owner, receiver); + DelveData->WriteCreate(data, receiver, owner); } if (ChallengeModeData.has_value()) { - ChallengeModeData->WriteCreate(data, owner, receiver); + ChallengeModeData->WriteCreate(data, receiver, owner); } data.FlushBits(); } -void ActivePlayerData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const +void ActivePlayerData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const +void ActivePlayerData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Player const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlocksMask(0), 13); for (uint32 i = 0; i < 13; ++i) @@ -5826,7 +5826,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (Research[i].HasChanged(j) || ignoreNestedChangesMask) { - Research[i][j].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + Research[i][j].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6110,7 +6110,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (CharacterDataElements.HasChanged(i) || ignoreNestedChangesMask) { - CharacterDataElements[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + CharacterDataElements[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6120,7 +6120,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (AccountDataElements.HasChanged(i) || ignoreNestedChangesMask) { - AccountDataElements[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + AccountDataElements[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6320,7 +6320,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (SpellPctModByLabel.HasChanged(i) || ignoreNestedChangesMask) { - SpellPctModByLabel[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + SpellPctModByLabel[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6333,7 +6333,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (SpellFlatModByLabel.HasChanged(i) || ignoreNestedChangesMask) { - SpellFlatModByLabel[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + SpellFlatModByLabel[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6343,7 +6343,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (SpellPctModPVPByLabel.HasChanged(i) || ignoreNestedChangesMask) { - SpellPctModPVPByLabel[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + SpellPctModPVPByLabel[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6353,7 +6353,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (SpellFlatModPVPByLabel.HasChanged(i) || ignoreNestedChangesMask) { - SpellFlatModPVPByLabel[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + SpellFlatModPVPByLabel[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6363,7 +6363,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (MawPowers.HasChanged(i) || ignoreNestedChangesMask) { - MawPowers[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + MawPowers[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6373,7 +6373,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (MultiFloorExploration.HasChanged(i) || ignoreNestedChangesMask) { - MultiFloorExploration[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + MultiFloorExploration[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6383,7 +6383,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (RecipeProgression.HasChanged(i) || ignoreNestedChangesMask) { - RecipeProgression[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + RecipeProgression[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6393,7 +6393,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (ReplayedQuests.HasChanged(i) || ignoreNestedChangesMask) { - ReplayedQuests[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ReplayedQuests[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6403,7 +6403,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (TaskQuests.HasChanged(i) || ignoreNestedChangesMask) { - TaskQuests[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + TaskQuests[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6423,7 +6423,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (PersonalCraftingOrderCounts.HasChanged(i) || ignoreNestedChangesMask) { - PersonalCraftingOrderCounts[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + PersonalCraftingOrderCounts[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6433,7 +6433,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (NpcCraftingOrders.HasChanged(i) || ignoreNestedChangesMask) { - NpcCraftingOrders[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + NpcCraftingOrders[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6443,7 +6443,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (CategoryCooldownMods.HasChanged(i) || ignoreNestedChangesMask) { - CategoryCooldownMods[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + CategoryCooldownMods[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6453,7 +6453,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (WeeklySpellUses.HasChanged(i) || ignoreNestedChangesMask) { - WeeklySpellUses[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + WeeklySpellUses[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6463,7 +6463,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (TrackedCollectableSources.HasChanged(i) || ignoreNestedChangesMask) { - TrackedCollectableSources[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + TrackedCollectableSources[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6495,7 +6495,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (PvpInfo.HasChanged(i) || ignoreNestedChangesMask) { - PvpInfo[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + PvpInfo[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6505,7 +6505,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (CharacterRestrictions.HasChanged(i) || ignoreNestedChangesMask) { - CharacterRestrictions[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + CharacterRestrictions[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6518,7 +6518,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (CraftingOrders.HasChanged(i) || ignoreNestedChangesMask) { - CraftingOrders[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + CraftingOrders[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6528,7 +6528,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (CharacterBankTabSettings.HasChanged(i) || ignoreNestedChangesMask) { - CharacterBankTabSettings[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + CharacterBankTabSettings[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6538,7 +6538,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (AccountBankTabSettings.HasChanged(i) || ignoreNestedChangesMask) { - AccountBankTabSettings[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + AccountBankTabSettings[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -6572,7 +6572,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } if (changesMask[63]) { - Skill->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + Skill->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[64]) { @@ -6683,7 +6683,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } if (changesMask[91]) { - BitVectors->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + BitVectors->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[92]) { @@ -6922,13 +6922,13 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (changesMask[136]) { - ResearchHistory->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ResearchHistory->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[138]) { if (QuestSession.has_value()) { - QuestSession->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + QuestSession->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } if (changesMask[137]) @@ -6937,7 +6937,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } if (changesMask[139]) { - LevelLinkInfo->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + LevelLinkInfo->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[145]) { @@ -6945,46 +6945,46 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo } if (changesMask[146]) { - WriteMapFieldUpdate(TraitConfigs, data, ignoreNestedChangesMask, owner, receiver); + WriteMapFieldUpdate(TraitConfigs, ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[159]) { - WriteMapFieldUpdate(TransmogOutfits, data, ignoreNestedChangesMask, owner, receiver); + WriteMapFieldUpdate(TransmogOutfits, ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[160]) { - ViewedOutfit->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ViewedOutfit->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[161]) { - TransmogMetadata->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + TransmogMetadata->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[154]) { if (PetStable.has_value()) { - PetStable->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + PetStable->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } if (changesMask[156]) { if (WalkInData.has_value()) { - WalkInData->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + WalkInData->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } if (changesMask[157]) { if (DelveData.has_value()) { - DelveData->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + DelveData->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } if (changesMask[158]) { if (ChallengeModeData.has_value()) { - ChallengeModeData->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ChallengeModeData->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -7004,7 +7004,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (changesMask[269 + i]) { - RestInfo[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + RestInfo[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -7285,7 +7285,7 @@ void ActivePlayerData::ClearChangesMask() _changesMask.ResetAll(); } -void GameObjectAssistActionData::WriteCreate(ByteBuffer& data, GameObject const* owner, Player const* receiver) const +void GameObjectAssistActionData::WriteCreate(ByteBuffer& data, Player const* receiver, GameObject const* owner) const { data.WriteBits(PlayerName.size(), 6); data.WriteBits(MonsterName.size() + 1, 11); @@ -7297,7 +7297,7 @@ void GameObjectAssistActionData::WriteCreate(ByteBuffer& data, GameObject const* data << WorldPackets::SizedCString::Data(MonsterName); } -void GameObjectAssistActionData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, GameObject const* owner, Player const* receiver) const +void GameObjectAssistActionData::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, GameObject const* owner) const { data.WriteBits(PlayerName.size(), 6); data.WriteBits(MonsterName.size() + 1, 11); @@ -7319,31 +7319,31 @@ bool GameObjectAssistActionData::operator==(GameObjectAssistActionData const& ri && DelveTier == right.DelveTier; } -void GameObjectData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const +void GameObjectData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, GameObject const* owner) const { ViewerDependentValue::value_type stateWorldEffectIDs = {}; data << int32(DisplayID); data << uint32(SpellVisualID); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); - stateWorldEffectIDs = ViewerDependentValue::GetValue(this, owner, receiver); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); + stateWorldEffectIDs = ViewerDependentValue::GetValue(this, receiver, owner); data << uint32(stateWorldEffectIDs->size()); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); for (uint32 i = 0; i < stateWorldEffectIDs->size(); ++i) { data << uint32((*stateWorldEffectIDs)[i]); } data << *CreatedBy; data << *GuildGUID; - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); data << float(ParentRotation->x); data << float(ParentRotation->y); data << float(ParentRotation->z); data << float(ParentRotation->w); data << int32(FactionTemplate); - data << int8(ViewerDependentValue::GetValue(this, owner, receiver)); + data << int8(ViewerDependentValue::GetValue(this, receiver, owner)); data << int8(TypeID); data << uint8(PercentHealth); data << uint32(ArtKit); @@ -7367,16 +7367,16 @@ void GameObjectData::WriteCreate(ByteBuffer& data, EnumFlag fie data.FlushBits(); if (AssistActionData.has_value()) { - AssistActionData->WriteCreate(data, owner, receiver); + AssistActionData->WriteCreate(data, receiver, owner); } } -void GameObjectData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const +void GameObjectData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, GameObject const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void GameObjectData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, GameObject const* owner, Player const* receiver) const +void GameObjectData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, GameObject const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 26); @@ -7386,7 +7386,7 @@ void GameObjectData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool { if (changesMask[1]) { - stateWorldEffectIDs = ViewerDependentValue::GetValue(this, owner, receiver); + stateWorldEffectIDs = ViewerDependentValue::GetValue(this, receiver, owner); data.WriteBits(stateWorldEffectIDs->size(), 32); for (uint32 i = 0; i < stateWorldEffectIDs->size(); ++i) { @@ -7445,19 +7445,19 @@ void GameObjectData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool } if (changesMask[6]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[7]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[8]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[9]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[10]) { @@ -7469,7 +7469,7 @@ void GameObjectData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool } if (changesMask[12]) { - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[13]) { @@ -7484,7 +7484,7 @@ void GameObjectData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool } if (changesMask[15]) { - data << int8(ViewerDependentValue::GetValue(this, owner, receiver)); + data << int8(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[16]) { @@ -7528,7 +7528,7 @@ void GameObjectData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool { if (AssistActionData.has_value()) { - AssistActionData->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + AssistActionData->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -7564,22 +7564,22 @@ void GameObjectData::ClearChangesMask() _changesMask.ResetAll(); } -void DynamicObjectData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, DynamicObject const* owner, Player const* receiver) const +void DynamicObjectData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, DynamicObject const* owner) const { data << *Caster; data << uint8(Type); - SpellVisual->WriteCreate(data, owner, receiver); + SpellVisual->WriteCreate(data, receiver, owner); data << int32(SpellID); data << float(Radius); data << uint32(CastTime); } -void DynamicObjectData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, DynamicObject const* owner, Player const* receiver) const +void DynamicObjectData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, DynamicObject const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void DynamicObjectData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, DynamicObject const* owner, Player const* receiver) const +void DynamicObjectData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, DynamicObject const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 7); @@ -7596,7 +7596,7 @@ void DynamicObjectData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, b } if (changesMask[3]) { - SpellVisual->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + SpellVisual->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[4]) { @@ -7624,7 +7624,7 @@ void DynamicObjectData::ClearChangesMask() _changesMask.ResetAll(); } -void CorpseData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Corpse const* owner, Player const* receiver) const +void CorpseData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Corpse const* owner) const { data << uint32(DynamicFlags); data << *Owner; @@ -7644,16 +7644,16 @@ void CorpseData::WriteCreate(ByteBuffer& data, EnumFlag fieldVi data << uint32(StateSpellVisualKitID); for (uint32 i = 0; i < Customizations.size(); ++i) { - Customizations[i].WriteCreate(data, owner, receiver); + Customizations[i].WriteCreate(data, receiver, owner); } } -void CorpseData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Corpse const* owner, Player const* receiver) const +void CorpseData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Corpse const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void CorpseData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Corpse const* owner, Player const* receiver) const +void CorpseData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Corpse const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlocksMask(0), 2); for (uint32 i = 0; i < 2; ++i) @@ -7679,7 +7679,7 @@ void CorpseData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ign { if (Customizations.HasChanged(i) || ignoreNestedChangesMask) { - Customizations[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + Customizations[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -7758,7 +7758,7 @@ void CorpseData::ClearChangesMask() _changesMask.ResetAll(); } -void ScaleCurve::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +void ScaleCurve::WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data << uint32(StartTimeOffset); for (uint32 i = 0; i < 2; ++i) @@ -7770,7 +7770,7 @@ void ScaleCurve::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player data.FlushBits(); } -void ScaleCurve::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +void ScaleCurve::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -7819,7 +7819,7 @@ void ScaleCurve::ClearChangesMask() _changesMask.ResetAll(); } -void VisualAnim::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +void VisualAnim::WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data.WriteBits(AnimationDataID.has_value(), 1); data.WriteBit(IsDecay); @@ -7833,7 +7833,7 @@ void VisualAnim::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player data.FlushBits(); } -void VisualAnim::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +void VisualAnim::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -7880,7 +7880,7 @@ void VisualAnim::ClearChangesMask() _changesMask.ResetAll(); } -void ForceSetAreaTriggerPositionAndRotation::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +void ForceSetAreaTriggerPositionAndRotation::WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data << TriggerGUID; data << Pos; @@ -7890,7 +7890,7 @@ void ForceSetAreaTriggerPositionAndRotation::WriteCreate(ByteBuffer& data, AreaT data << float(Rotation.w); } -void ForceSetAreaTriggerPositionAndRotation::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +void ForceSetAreaTriggerPositionAndRotation::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data << TriggerGUID; data << Pos; @@ -7907,13 +7907,13 @@ bool ForceSetAreaTriggerPositionAndRotation::operator==(ForceSetAreaTriggerPosit && Rotation == right.Rotation; } -void AreaTriggerActionSetPeriodModifier::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerActionSetPeriodModifier::WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data << int32(Field_0); data << float(Field_4); } -void AreaTriggerActionSetPeriodModifier::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerActionSetPeriodModifier::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -7942,7 +7942,7 @@ void AreaTriggerActionSetPeriodModifier::ClearChangesMask() _changesMask.ResetAll(); } -void AreaTriggerSplineCalculator::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerSplineCalculator::WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data.WriteBits(Points.size(), 16); data.WriteBit(Catmullrom); @@ -7953,7 +7953,7 @@ void AreaTriggerSplineCalculator::WriteCreate(ByteBuffer& data, AreaTrigger cons data.FlushBits(); } -void AreaTriggerSplineCalculator::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerSplineCalculator::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -7999,7 +7999,7 @@ void AreaTriggerSplineCalculator::ClearChangesMask() _changesMask.ResetAll(); } -void AreaTriggerOrbit::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerOrbit::WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data << *Center; data << float(Radius); @@ -8010,7 +8010,7 @@ void AreaTriggerOrbit::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, P data.FlushBits(); } -void AreaTriggerOrbit::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerOrbit::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -8063,14 +8063,14 @@ void AreaTriggerOrbit::ClearChangesMask() _changesMask.ResetAll(); } -void AreaTriggerMovementScript::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerMovementScript::WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data << int32(SpellScriptID); data << *Center; data << uint32(CreationTime); } -void AreaTriggerMovementScript::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerMovementScript::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -8104,13 +8104,13 @@ void AreaTriggerMovementScript::ClearChangesMask() _changesMask.ResetAll(); } -void AreaTriggerSphere::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerSphere::WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data << float(Radius); data << float(RadiusTarget); } -void AreaTriggerSphere::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerSphere::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -8139,13 +8139,13 @@ void AreaTriggerSphere::ClearChangesMask() _changesMask.ResetAll(); } -void AreaTriggerBox::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerBox::WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data << *Extents; data << *ExtentsTarget; } -void AreaTriggerBox::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerBox::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -8174,7 +8174,7 @@ void AreaTriggerBox::ClearChangesMask() _changesMask.ResetAll(); } -void AreaTriggerPolygon::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerPolygon::WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data << uint32(Vertices.size()); data << uint32(VerticesTarget.size()); @@ -8190,7 +8190,7 @@ void AreaTriggerPolygon::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, } } -void AreaTriggerPolygon::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerPolygon::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -8258,7 +8258,7 @@ void AreaTriggerPolygon::ClearChangesMask() _changesMask.ResetAll(); } -void AreaTriggerCylinder::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerCylinder::WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data << float(Radius); data << float(RadiusTarget); @@ -8268,7 +8268,7 @@ void AreaTriggerCylinder::WriteCreate(ByteBuffer& data, AreaTrigger const* owner data << float(LocationZOffsetTarget); } -void AreaTriggerCylinder::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerCylinder::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -8317,7 +8317,7 @@ void AreaTriggerCylinder::ClearChangesMask() _changesMask.ResetAll(); } -void AreaTriggerDisk::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerDisk::WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data << float(InnerRadius); data << float(InnerRadiusTarget); @@ -8329,7 +8329,7 @@ void AreaTriggerDisk::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Pl data << float(LocationZOffsetTarget); } -void AreaTriggerDisk::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerDisk::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -8388,13 +8388,13 @@ void AreaTriggerDisk::ClearChangesMask() _changesMask.ResetAll(); } -void AreaTriggerBoundedPlane::WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerBoundedPlane::WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data << *Extents; data << *ExtentsTarget; } -void AreaTriggerBoundedPlane::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerBoundedPlane::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -8423,9 +8423,9 @@ void AreaTriggerBoundedPlane::ClearChangesMask() _changesMask.ResetAll(); } -void AreaTriggerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { - OverrideScaleCurve->WriteCreate(data, owner, receiver); + OverrideScaleCurve->WriteCreate(data, receiver, owner); data << *Caster; data << uint32(Duration); data << uint32(TimeToTarget); @@ -8434,7 +8434,7 @@ void AreaTriggerData::WriteCreate(ByteBuffer& data, EnumFlag fi data << uint32(TimeToTargetPos); data << int32(SpellID); data << int32(SpellForVisuals); - SpellVisual->WriteCreate(data, owner, receiver); + SpellVisual->WriteCreate(data, receiver, owner); data << float(BoundsRadius2D); data << uint32(DecalPropertiesID); data << *CreatingEffectGUID; @@ -8452,67 +8452,67 @@ void AreaTriggerData::WriteCreate(ByteBuffer& data, EnumFlag fi data << float(Facing); data << int32(PathType); data << uint8(ShapeType); - PeriodModifier->WriteCreate(data, owner, receiver); + PeriodModifier->WriteCreate(data, receiver, owner); if (PathType == 3) { - PathData.Get()->WriteCreate(data, owner, receiver); + PathData.Get()->WriteCreate(data, receiver, owner); } if (ShapeType == 0) { - ShapeData.Get()->WriteCreate(data, owner, receiver); + ShapeData.Get()->WriteCreate(data, receiver, owner); } if (ShapeType == 1) { - ShapeData.Get()->WriteCreate(data, owner, receiver); + ShapeData.Get()->WriteCreate(data, receiver, owner); } if (ShapeType == 2 || ShapeType == 3 || ShapeType == 5 || ShapeType == 6) { - ShapeData.Get()->WriteCreate(data, owner, receiver); + ShapeData.Get()->WriteCreate(data, receiver, owner); } if (ShapeType == 4) { - ShapeData.Get()->WriteCreate(data, owner, receiver); + ShapeData.Get()->WriteCreate(data, receiver, owner); } if (ShapeType == 7) { - ShapeData.Get()->WriteCreate(data, owner, receiver); + ShapeData.Get()->WriteCreate(data, receiver, owner); } if (ShapeType == 8) { - ShapeData.Get()->WriteCreate(data, owner, receiver); + ShapeData.Get()->WriteCreate(data, receiver, owner); } - ExtraScaleCurve->WriteCreate(data, owner, receiver); + ExtraScaleCurve->WriteCreate(data, receiver, owner); data.FlushBits(); data.WriteBits(TargetRollPitchYaw.has_value(), 1); data.WriteBits(ForcedPositionAndRotation.has_value(), 1); - OverrideMoveCurveX->WriteCreate(data, owner, receiver); + OverrideMoveCurveX->WriteCreate(data, receiver, owner); if (TargetRollPitchYaw.has_value()) { data << *TargetRollPitchYaw; } if (ForcedPositionAndRotation.has_value()) { - ForcedPositionAndRotation->WriteCreate(data, owner, receiver); + ForcedPositionAndRotation->WriteCreate(data, receiver, owner); } - OverrideMoveCurveY->WriteCreate(data, owner, receiver); - OverrideMoveCurveZ->WriteCreate(data, owner, receiver); - VisualAnim->WriteCreate(data, owner, receiver); + OverrideMoveCurveY->WriteCreate(data, receiver, owner); + OverrideMoveCurveZ->WriteCreate(data, receiver, owner); + VisualAnim->WriteCreate(data, receiver, owner); if (PathType == 0) { - PathData.Get()->WriteCreate(data, owner, receiver); + PathData.Get()->WriteCreate(data, receiver, owner); } if (PathType == 1) { - PathData.Get()->WriteCreate(data, owner, receiver); + PathData.Get()->WriteCreate(data, receiver, owner); } } -void AreaTriggerData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void AreaTriggerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, AreaTrigger const* owner, Player const* receiver) const +void AreaTriggerData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner, bool ignoreNestedChangesMask) const { data << uint32(changesMask.GetBlock(0)); data.WriteBits(changesMask.GetBlock(1), 5); @@ -8522,7 +8522,7 @@ void AreaTriggerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, boo { if (changesMask[1]) { - OverrideScaleCurve->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + OverrideScaleCurve->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[6]) { @@ -8558,7 +8558,7 @@ void AreaTriggerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, boo } if (changesMask[14]) { - SpellVisual->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + SpellVisual->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[15]) { @@ -8633,40 +8633,40 @@ void AreaTriggerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, boo } if (changesMask[36]) { - PeriodModifier->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + PeriodModifier->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[34]) { if (PathType == 3) { - PathData.Get()->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + PathData.Get()->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } if (changesMask[35]) { if (ShapeType == 0) { - ShapeData.Get()->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ShapeData.Get()->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (ShapeType == 1) { - ShapeData.Get()->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ShapeData.Get()->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (ShapeType == 2 || ShapeType == 3 || ShapeType == 5 || ShapeType == 6) { - ShapeData.Get()->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ShapeData.Get()->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (ShapeType == 4) { - ShapeData.Get()->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ShapeData.Get()->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (ShapeType == 7) { - ShapeData.Get()->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ShapeData.Get()->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (ShapeType == 8) { - ShapeData.Get()->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ShapeData.Get()->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -8674,7 +8674,7 @@ void AreaTriggerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, boo { if (changesMask[2]) { - ExtraScaleCurve->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ExtraScaleCurve->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } data.FlushBits(); @@ -8691,7 +8691,7 @@ void AreaTriggerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, boo { if (changesMask[3]) { - OverrideMoveCurveX->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + OverrideMoveCurveX->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[24]) { @@ -8707,7 +8707,7 @@ void AreaTriggerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, boo { if (ForcedPositionAndRotation.has_value()) { - ForcedPositionAndRotation->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + ForcedPositionAndRotation->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -8715,15 +8715,15 @@ void AreaTriggerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, boo { if (changesMask[4]) { - OverrideMoveCurveY->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + OverrideMoveCurveY->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[5]) { - OverrideMoveCurveZ->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + OverrideMoveCurveZ->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[26]) { - VisualAnim->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + VisualAnim->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } if (changesMask[32]) @@ -8732,11 +8732,11 @@ void AreaTriggerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, boo { if (PathType == 0) { - PathData.Get()->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + PathData.Get()->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (PathType == 1) { - PathData.Get()->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + PathData.Get()->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -8784,7 +8784,7 @@ void AreaTriggerData::ClearChangesMask() _changesMask.ResetAll(); } -void SceneObjectData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const +void SceneObjectData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const { data << int32(ScriptPackageID); data << uint32(RndSeedVal); @@ -8792,12 +8792,12 @@ void SceneObjectData::WriteCreate(ByteBuffer& data, EnumFlag fi data << uint32(SceneType); } -void SceneObjectData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const +void SceneObjectData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void SceneObjectData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const +void SceneObjectData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Object const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 5); @@ -8832,22 +8832,22 @@ void SceneObjectData::ClearChangesMask() _changesMask.ResetAll(); } -void ConversationLine::WriteCreate(ByteBuffer& data, Conversation const* owner, Player const* receiver) const +void ConversationLine::WriteCreate(ByteBuffer& data, Player const* receiver, Conversation const* owner) const { data << int32(ConversationLineID); data << int32(BroadcastTextID); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); data << int32(UiCameraID); data << uint8(ActorIndex); data << uint8(Flags); data << uint8(ChatType); } -void ConversationLine::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Conversation const* owner, Player const* receiver) const +void ConversationLine::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Conversation const* owner) const { data << int32(ConversationLineID); data << int32(BroadcastTextID); - data << uint32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << uint32(ViewerDependentValue::GetValue(this, receiver, owner)); data << int32(UiCameraID); data << uint8(ActorIndex); data << uint8(Flags); @@ -8865,7 +8865,7 @@ bool ConversationLine::operator==(ConversationLine const& right) const && ChatType == right.ChatType; } -void ConversationActor::WriteCreate(ByteBuffer& data, Conversation const* owner, Player const* receiver) const +void ConversationActor::WriteCreate(ByteBuffer& data, Player const* receiver, Conversation const* owner) const { data << uint32(CreatureID); data << uint32(CreatureDisplayInfoID); @@ -8876,7 +8876,7 @@ void ConversationActor::WriteCreate(ByteBuffer& data, Conversation const* owner, data.FlushBits(); } -void ConversationActor::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Conversation const* owner, Player const* receiver) const +void ConversationActor::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Conversation const* owner) const { data << uint32(CreatureID); data << uint32(CreatureDisplayInfoID); @@ -8897,31 +8897,31 @@ bool ConversationActor::operator==(ConversationActor const& right) const && NoActorObject == right.NoActorObject; } -void ConversationData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const +void ConversationData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Conversation const* owner) const { data << uint32(Lines->size()); - data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << int32(ViewerDependentValue::GetValue(this, receiver, owner)); data << uint32(Progress); for (uint32 i = 0; i < Lines->size(); ++i) { - (*Lines)[i].WriteCreate(data, owner, receiver); + (*Lines)[i].WriteCreate(data, receiver, owner); } data.WriteBit(DontPlayBroadcastTextSounds); data << uint32(Actors.size()); data << uint32(Flags); for (uint32 i = 0; i < Actors.size(); ++i) { - Actors[i].WriteCreate(data, owner, receiver); + Actors[i].WriteCreate(data, receiver, owner); } data.FlushBits(); } -void ConversationData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const +void ConversationData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Conversation const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void ConversationData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Conversation const* owner, Player const* receiver) const +void ConversationData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Conversation const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 7); @@ -8936,7 +8936,7 @@ void ConversationData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo data.WriteBits(Lines->size(), 32); for (uint32 i = 0; i < Lines->size(); ++i) { - (*Lines)[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + (*Lines)[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -8960,13 +8960,13 @@ void ConversationData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (Actors.HasChanged(i) || ignoreNestedChangesMask) { - Actors[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + Actors[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } if (changesMask[4]) { - data << int32(ViewerDependentValue::GetValue(this, owner, receiver)); + data << int32(ViewerDependentValue::GetValue(this, receiver, owner)); } if (changesMask[5]) { @@ -8991,7 +8991,7 @@ void ConversationData::ClearChangesMask() _changesMask.ResetAll(); } -void MeshObjectData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const +void MeshObjectData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const { data.WriteBit(IsWMO); data.WriteBit(IsRoom); @@ -9005,12 +9005,12 @@ void MeshObjectData::WriteCreate(ByteBuffer& data, EnumFlag fie data.FlushBits(); } -void MeshObjectData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const +void MeshObjectData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void MeshObjectData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const +void MeshObjectData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Object const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 5); @@ -9053,17 +9053,17 @@ void MeshObjectData::ClearChangesMask() _changesMask.ResetAll(); } -void VendorData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Creature const* owner, Player const* receiver) const +void VendorData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Creature const* owner) const { data << int32(Flags); } -void VendorData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Creature const* owner, Player const* receiver) const +void VendorData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Creature const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void VendorData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Creature const* owner, Player const* receiver) const +void VendorData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Creature const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 2); @@ -9083,7 +9083,7 @@ void VendorData::ClearChangesMask() _changesMask.ResetAll(); } -void DecorDyeSlots::WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const +void DecorDyeSlots::WriteCreate(ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { for (uint32 i = 0; i < 3; ++i) { @@ -9091,7 +9091,7 @@ void DecorDyeSlots::WriteCreate(ByteBuffer& data, BaseEntity const* owner, Playe } } -void DecorDyeSlots::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const +void DecorDyeSlots::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { for (uint32 i = 0; i < 3; ++i) { @@ -9104,7 +9104,7 @@ bool DecorDyeSlots::operator==(DecorDyeSlots const& right) const return DyeColorID == right.DyeColorID; } -void DecorStoragePersistedData::WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const +void DecorStoragePersistedData::WriteCreate(ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { data << *HouseGUID; data << uint8(SourceType); @@ -9113,12 +9113,12 @@ void DecorStoragePersistedData::WriteCreate(ByteBuffer& data, BaseEntity const* data.FlushBits(); if (DyeSlots.has_value()) { - DyeSlots->WriteCreate(data, owner, receiver); + DyeSlots->WriteCreate(data, receiver, owner); } data << WorldPackets::SizedCString::Data(*SourceValue); } -void DecorStoragePersistedData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const +void DecorStoragePersistedData::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -9145,7 +9145,7 @@ void DecorStoragePersistedData::WriteUpdate(ByteBuffer& data, bool ignoreChanges { if (DyeSlots.has_value()) { - DyeSlots->WriteUpdate(data, ignoreChangesMask, owner, receiver); + DyeSlots->WriteUpdate(ignoreChangesMask, data, receiver, owner); } } if (changesMask[3]) @@ -9163,7 +9163,7 @@ void DecorStoragePersistedData::ClearChangesMask() _changesMask.ResetAll(); } -void HousingDecorData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const +void HousingDecorData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const { data << *DecorGUID; data << *AttachParentGUID; @@ -9173,16 +9173,16 @@ void HousingDecorData::WriteCreate(ByteBuffer& data, EnumFlag f data.FlushBits(); if (PersistedData.has_value()) { - PersistedData->WriteCreate(data, owner, receiver); + PersistedData->WriteCreate(data, receiver, owner); } } -void HousingDecorData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const +void HousingDecorData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void HousingDecorData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const +void HousingDecorData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Object const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 6); @@ -9211,7 +9211,7 @@ void HousingDecorData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bo { if (PersistedData.has_value()) { - PersistedData->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + PersistedData->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -9227,7 +9227,7 @@ void HousingDecorData::ClearChangesMask() _changesMask.ResetAll(); } -void HousingDoorData::WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const +void HousingDoorData::WriteCreate(ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { data << int32(RoomComponentID); data << *RoomComponentOffset; @@ -9235,7 +9235,7 @@ void HousingDoorData::WriteCreate(ByteBuffer& data, BaseEntity const* owner, Pla data << *AttachedRoomGUID; } -void HousingDoorData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const +void HousingDoorData::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -9274,7 +9274,7 @@ void HousingDoorData::ClearChangesMask() _changesMask.ResetAll(); } -void HousingRoomData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const +void HousingRoomData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { data << *HouseGUID; data << int32(HouseRoomID); @@ -9288,16 +9288,16 @@ void HousingRoomData::WriteCreate(ByteBuffer& data, EnumFlag fi } for (uint32 i = 0; i < Doors.size(); ++i) { - Doors[i].WriteCreate(data, owner, receiver); + Doors[i].WriteCreate(data, receiver, owner); } } -void HousingRoomData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const +void HousingRoomData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void HousingRoomData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, BaseEntity const* owner, Player const* receiver) const +void HousingRoomData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 7); @@ -9337,7 +9337,7 @@ void HousingRoomData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, boo { if (Doors.HasChanged(i) || ignoreNestedChangesMask) { - Doors[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + Doors[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -9371,7 +9371,7 @@ void HousingRoomData::ClearChangesMask() _changesMask.ResetAll(); } -void HousingRoomComponentMeshData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const +void HousingRoomComponentMeshData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const { data << *RoomGUID; data << int32(RoomComponentOptionID); @@ -9384,12 +9384,12 @@ void HousingRoomComponentMeshData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const +void HousingRoomComponentMeshData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void HousingRoomComponentMeshData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const +void HousingRoomComponentMeshData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Object const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 10); @@ -9449,7 +9449,7 @@ void HousingRoomComponentMeshData::ClearChangesMask() _changesMask.ResetAll(); } -void HousingPlayerHouseData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const +void HousingPlayerHouseData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { data << *BnetAccount; data << int32(PlotIndex); @@ -9462,12 +9462,12 @@ void HousingPlayerHouseData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const +void HousingPlayerHouseData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void HousingPlayerHouseData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, BaseEntity const* owner, Player const* receiver) const +void HousingPlayerHouseData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 10); @@ -9527,18 +9527,18 @@ void HousingPlayerHouseData::ClearChangesMask() _changesMask.ResetAll(); } -void HousingCornerstoneData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const +void HousingCornerstoneData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, GameObject const* owner) const { data << uint64(Cost); data << int32(PlotIndex); } -void HousingCornerstoneData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const +void HousingCornerstoneData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, GameObject const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void HousingCornerstoneData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, GameObject const* owner, Player const* receiver) const +void HousingCornerstoneData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, GameObject const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 3); @@ -9563,7 +9563,7 @@ void HousingCornerstoneData::ClearChangesMask() _changesMask.ResetAll(); } -void HousingPlotAreaTriggerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const +void HousingPlotAreaTriggerData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { data << uint32(PlotID); data << *HouseOwnerGUID; @@ -9571,12 +9571,12 @@ void HousingPlotAreaTriggerData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const +void HousingPlotAreaTriggerData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void HousingPlotAreaTriggerData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, AreaTrigger const* owner, Player const* receiver) const +void HousingPlotAreaTriggerData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 5); @@ -9611,13 +9611,13 @@ void HousingPlotAreaTriggerData::ClearChangesMask() _changesMask.ResetAll(); } -void PlayerHouseInfo::WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const +void PlayerHouseInfo::WriteCreate(ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { data << HouseGUID; data << OwnerGUID; } -void PlayerHouseInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const +void PlayerHouseInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { data << HouseGUID; data << OwnerGUID; @@ -9629,13 +9629,13 @@ bool PlayerHouseInfo::operator==(PlayerHouseInfo const& right) const && OwnerGUID == right.OwnerGUID; } -void HousingOwner::WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const +void HousingOwner::WriteCreate(ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { data << BnetAccountGUID; data << PlayerGUID; } -void HousingOwner::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const +void HousingOwner::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { data << BnetAccountGUID; data << PlayerGUID; @@ -9647,7 +9647,7 @@ bool HousingOwner::operator==(HousingOwner const& right) const && PlayerGUID == right.PlayerGUID; } -void NeighborhoodMirrorData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const +void NeighborhoodMirrorData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { data.WriteBits(Name->size() + 1, 8); data << *OwnerGUID; @@ -9656,20 +9656,20 @@ void NeighborhoodMirrorData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const +void NeighborhoodMirrorData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void NeighborhoodMirrorData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, BaseEntity const* owner, Player const* receiver) const +void NeighborhoodMirrorData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 5); @@ -9699,7 +9699,7 @@ void NeighborhoodMirrorData::WriteUpdate(ByteBuffer& data, Mask const& changesMa { if (Houses.HasChanged(i) || ignoreNestedChangesMask) { - Houses[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + Houses[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -9709,7 +9709,7 @@ void NeighborhoodMirrorData::WriteUpdate(ByteBuffer& data, Mask const& changesMa { if (Managers.HasChanged(i) || ignoreNestedChangesMask) { - Managers[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + Managers[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -9741,7 +9741,7 @@ void NeighborhoodMirrorData::ClearChangesMask() _changesMask.ResetAll(); } -void MirroredMeshObjectData::WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const +void MirroredMeshObjectData::WriteCreate(ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { data << *AttachParentGUID; data << *PositionLocalSpace; @@ -9753,7 +9753,7 @@ void MirroredMeshObjectData::WriteCreate(ByteBuffer& data, BaseEntity const* own data << uint8(AttachmentFlags); } -void MirroredMeshObjectData::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const +void MirroredMeshObjectData::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -9800,17 +9800,17 @@ void MirroredMeshObjectData::ClearChangesMask() _changesMask.ResetAll(); } -void MirroredPositionData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const +void MirroredPositionData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { - PositionData->WriteCreate(data, owner, receiver); + PositionData->WriteCreate(data, receiver, owner); } -void MirroredPositionData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const +void MirroredPositionData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void MirroredPositionData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, BaseEntity const* owner, Player const* receiver) const +void MirroredPositionData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 2); @@ -9819,7 +9819,7 @@ void MirroredPositionData::WriteUpdate(ByteBuffer& data, Mask const& changesMask { if (changesMask[1]) { - PositionData->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + PositionData->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -9830,7 +9830,7 @@ void MirroredPositionData::ClearChangesMask() _changesMask.ResetAll(); } -void PlayerMirrorHouse::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void PlayerMirrorHouse::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << Guid; data << NeighborhoodGUID; @@ -9842,7 +9842,7 @@ void PlayerMirrorHouse::WriteCreate(ByteBuffer& data, Player const* owner, Playe data << int32(PlotID); } -void PlayerMirrorHouse::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void PlayerMirrorHouse::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << Guid; data << NeighborhoodGUID; @@ -9866,12 +9866,12 @@ bool PlayerMirrorHouse::operator==(PlayerMirrorHouse const& right) const && PlotID == right.PlotID; } -void NeighborhoodCharterSignature::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void NeighborhoodCharterSignature::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << Guid; } -void NeighborhoodCharterSignature::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void NeighborhoodCharterSignature::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << Guid; } @@ -9881,27 +9881,27 @@ bool NeighborhoodCharterSignature::operator==(NeighborhoodCharterSignature const return Guid == right.Guid; } -void NeighborhoodCharter::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void NeighborhoodCharter::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(Field_0); data << int32(Field_4); data << uint32(Signatures.size()); for (uint32 i = 0; i < Signatures.size(); ++i) { - Signatures[i].WriteCreate(data, owner, receiver); + Signatures[i].WriteCreate(data, receiver, owner); } data.WriteBits(Name.size() + 1, 8); data << WorldPackets::SizedCString::Data(Name); } -void NeighborhoodCharter::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void NeighborhoodCharter::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(Field_0); data << int32(Field_4); data << uint32(Signatures.size()); for (uint32 i = 0; i < Signatures.size(); ++i) { - Signatures[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + Signatures[i].WriteUpdate(ignoreChangesMask, data, receiver, owner); } data.FlushBits(); data.WriteBits(Name.size() + 1, 8); @@ -9916,7 +9916,7 @@ bool NeighborhoodCharter::operator==(NeighborhoodCharter const& right) const && Name == right.Name; } -void NeighborhoodOwnershipTransfer::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void NeighborhoodOwnershipTransfer::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << NeighborhoodGUID; data << CurrentOwnerGUID; @@ -9925,7 +9925,7 @@ void NeighborhoodOwnershipTransfer::WriteCreate(ByteBuffer& data, Player const* data << WorldPackets::SizedCString::Data(NeighborhoodName); } -void NeighborhoodOwnershipTransfer::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void NeighborhoodOwnershipTransfer::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << NeighborhoodGUID; data << CurrentOwnerGUID; @@ -9941,7 +9941,7 @@ bool NeighborhoodOwnershipTransfer::operator==(NeighborhoodOwnershipTransfer con && NeighborhoodName == right.NeighborhoodName; } -void PlayerHouseInfoComponentData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const +void PlayerHouseInfoComponentData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const { if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner)) { @@ -9953,7 +9953,7 @@ void PlayerHouseInfoComponentData::WriteCreate(ByteBuffer& data, EnumFlagWriteCreate(data, owner, receiver); - NeighborhoodOwnershipTransfer->WriteCreate(data, owner, receiver); + Charter->WriteCreate(data, receiver, owner); + NeighborhoodOwnershipTransfer->WriteCreate(data, receiver, owner); } } @@ -10000,14 +10000,14 @@ void PlayerHouseInfoComponentData::FilterDisallowedFieldsMaskForFlag(Mask& chang changesMask &= allowedMaskForTarget; } -void PlayerHouseInfoComponentData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const +void PlayerHouseInfoComponentData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask allowedMaskForTarget({ 0x00000005u }); PlayerHouseInfoComponentDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); - WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); + WriteUpdate(_changesMask & allowedMaskForTarget, data, receiver, owner, false); } -void PlayerHouseInfoComponentData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const +void PlayerHouseInfoComponentData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Player const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 9); @@ -10068,7 +10068,7 @@ void PlayerHouseInfoComponentData::WriteUpdate(ByteBuffer& data, Mask const& cha { if (Houses.HasChanged(i) || ignoreNestedChangesMask) { - Houses[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + Houses[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -10104,15 +10104,15 @@ void PlayerHouseInfoComponentData::WriteUpdate(ByteBuffer& data, Mask const& cha } if (changesMask[7]) { - data << uint8(Field_178); + data << uint8(EditorMode); } if (changesMask[6]) { - Charter->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + Charter->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[8]) { - NeighborhoodOwnershipTransfer->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + NeighborhoodOwnershipTransfer->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -10125,23 +10125,23 @@ void PlayerHouseInfoComponentData::ClearChangesMask() Base::ClearChangesMask(Field_C0); Base::ClearChangesMask(Field_F8); Base::ClearChangesMask(Charter); - Base::ClearChangesMask(Field_178); + Base::ClearChangesMask(EditorMode); Base::ClearChangesMask(NeighborhoodOwnershipTransfer); _changesMask.ResetAll(); } -void HousingStorageData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const +void HousingStorageData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { - WriteMapFieldCreate(Decor, data, owner, receiver); + WriteMapFieldCreate(Decor, data, receiver, owner); data << uint32(DecorMaxOwnedCount); } -void HousingStorageData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const +void HousingStorageData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void HousingStorageData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, BaseEntity const* owner, Player const* receiver) const +void HousingStorageData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 3); @@ -10150,7 +10150,7 @@ void HousingStorageData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, { if (changesMask[1]) { - WriteMapFieldUpdate(Decor, data, ignoreNestedChangesMask, owner, receiver); + WriteMapFieldUpdate(Decor, ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[2]) { @@ -10166,7 +10166,7 @@ void HousingStorageData::ClearChangesMask() _changesMask.ResetAll(); } -void HousingFixtureData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const +void HousingFixtureData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const { data << int32(ExteriorComponentID); data << int32(HouseExteriorWmoDataID); @@ -10180,12 +10180,12 @@ void HousingFixtureData::WriteCreate(ByteBuffer& data, EnumFlag data << uint8(Size); } -void HousingFixtureData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const +void HousingFixtureData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const { - WriteUpdate(data, _changesMask, false, owner, receiver); + WriteUpdate(_changesMask, data, receiver, owner, false); } -void HousingFixtureData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const +void HousingFixtureData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Object const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 11); @@ -10250,7 +10250,7 @@ void HousingFixtureData::ClearChangesMask() _changesMask.ResetAll(); } -void PlayerInitiativeInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void PlayerInitiativeInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int64(RemainingDuration); data << int32(CurrentInitiativeID); @@ -10261,7 +10261,7 @@ void PlayerInitiativeInfo::WriteCreate(ByteBuffer& data, Player const* owner, Pl data << float(PlayerTotalContribution); } -void PlayerInitiativeInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void PlayerInitiativeInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -10312,13 +10312,13 @@ void PlayerInitiativeInfo::ClearChangesMask() _changesMask.ResetAll(); } -void PlayerInitiativeTaskInfo::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void PlayerInitiativeTaskInfo::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << int32(TaskID); data << int32(TimesCompleted); } -void PlayerInitiativeTaskInfo::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void PlayerInitiativeTaskInfo::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask changesMask = _changesMask; if (ignoreChangesMask) @@ -10344,13 +10344,13 @@ void PlayerInitiativeTaskInfo::ClearChangesMask() _changesMask.ResetAll(); } -void NICompletedMilestoneEntry::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void NICompletedMilestoneEntry::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(MilestoneID); data << int64(AwardDate); } -void NICompletedMilestoneEntry::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void NICompletedMilestoneEntry::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(MilestoneID); data << int64(AwardDate); @@ -10362,25 +10362,25 @@ bool NICompletedMilestoneEntry::operator==(NICompletedMilestoneEntry const& righ && AwardDate == right.AwardDate; } -void NICompletedInitiativesEntry::WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const +void NICompletedInitiativesEntry::WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(InitiativeID); data << uint32(CompletedMilestones.size()); for (uint32 i = 0; i < CompletedMilestones.size(); ++i) { - CompletedMilestones[i].WriteCreate(data, owner, receiver); + CompletedMilestones[i].WriteCreate(data, receiver, owner); } data.WriteBit(Completed); data.FlushBits(); } -void NICompletedInitiativesEntry::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const +void NICompletedInitiativesEntry::WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << uint32(InitiativeID); data << uint32(CompletedMilestones.size()); for (uint32 i = 0; i < CompletedMilestones.size(); ++i) { - CompletedMilestones[i].WriteUpdate(data, ignoreChangesMask, owner, receiver); + CompletedMilestones[i].WriteUpdate(ignoreChangesMask, data, receiver, owner); } data.FlushBits(); data.FlushBits(); @@ -10395,23 +10395,23 @@ bool NICompletedInitiativesEntry::operator==(NICompletedInitiativesEntry const& && InitiativeID == right.InitiativeID; } -void PlayerInitiativeComponentData::WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const +void PlayerInitiativeComponentData::WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const { data << *NeighborhoodGUID; - InitiativeInfo->WriteCreate(data, owner, receiver); + InitiativeInfo->WriteCreate(data, receiver, owner); data << uint32(CompletedTasks.size()); data << uint32(CompletedInitiatives.size()); if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner)) { - WriteSetFieldCreate(Houses, data, owner, receiver); + WriteSetFieldCreate(Houses, data, receiver, owner); } for (uint32 i = 0; i < CompletedTasks.size(); ++i) { - CompletedTasks[i].WriteCreate(data, owner, receiver); + CompletedTasks[i].WriteCreate(data, receiver, owner); } for (uint32 i = 0; i < CompletedInitiatives.size(); ++i) { - CompletedInitiatives[i].WriteCreate(data, owner, receiver); + CompletedInitiatives[i].WriteCreate(data, receiver, owner); } } @@ -10433,14 +10433,14 @@ void PlayerInitiativeComponentData::FilterDisallowedFieldsMaskForFlag(Mask& chan changesMask &= allowedMaskForTarget; } -void PlayerInitiativeComponentData::WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const +void PlayerInitiativeComponentData::WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const { Mask allowedMaskForTarget({ 0x0000001Fu }); PlayerInitiativeComponentDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); - WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); + WriteUpdate(_changesMask & allowedMaskForTarget, data, receiver, owner, false); } -void PlayerInitiativeComponentData::WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const +void PlayerInitiativeComponentData::WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Player const* owner, bool ignoreNestedChangesMask) const { data.WriteBits(changesMask.GetBlock(0), 6); @@ -10470,7 +10470,7 @@ void PlayerInitiativeComponentData::WriteUpdate(ByteBuffer& data, Mask const& ch { if (CompletedTasks.HasChanged(i) || ignoreNestedChangesMask) { - CompletedTasks[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + CompletedTasks[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -10480,7 +10480,7 @@ void PlayerInitiativeComponentData::WriteUpdate(ByteBuffer& data, Mask const& ch { if (CompletedInitiatives.HasChanged(i) || ignoreNestedChangesMask) { - CompletedInitiatives[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + CompletedInitiatives[i].WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } } } @@ -10490,11 +10490,11 @@ void PlayerInitiativeComponentData::WriteUpdate(ByteBuffer& data, Mask const& ch } if (changesMask[4]) { - InitiativeInfo->WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + InitiativeInfo->WriteUpdate(ignoreNestedChangesMask, data, receiver, owner); } if (changesMask[5]) { - WriteSetFieldUpdate(Houses, data, ignoreNestedChangesMask, owner, receiver); + WriteSetFieldUpdate(Houses, ignoreNestedChangesMask, data, receiver, owner); } } } diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.h b/src/server/game/Entities/Object/Updates/UpdateFields.h index 4bc23f77a3..684445051d 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.h +++ b/src/server/game/Entities/Object/Updates/UpdateFields.h @@ -57,9 +57,10 @@ struct ObjectData : public IsUpdateFieldStructureTag, public HasChangesMask<4> struct DynamicFlagsTag : ViewerDependentValueTag {}; UpdateField Scale; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const; + using OwnerObject = Object; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Object const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -70,8 +71,9 @@ struct ItemEnchantment : public IsUpdateFieldStructureTag, public HasChangesMask UpdateField Charges; UpdateField Inactive; - void WriteCreate(ByteBuffer& data, Item const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Item const* owner, Player const* receiver) const; + using OwnerObject = Item; + void WriteCreate(ByteBuffer& data, Player const* receiver, Item const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Item const* owner) const; void ClearChangesMask(); }; @@ -80,8 +82,9 @@ struct ItemMod : public IsUpdateFieldStructureTag uint8 Type = 0; int32 Value = 0; - void WriteCreate(ByteBuffer& data, Item const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Item const* owner, Player const* receiver) const; + using OwnerObject = Item; + void WriteCreate(ByteBuffer& data, Player const* receiver, Item const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Item const* owner) const; bool operator==(ItemMod const& right) const; bool operator!=(ItemMod const& right) const { return !(*this == right); } }; @@ -90,8 +93,9 @@ struct ItemModList : public IsUpdateFieldStructureTag, public HasChangesMask<1> { DynamicUpdateField Values; - void WriteCreate(ByteBuffer& data, Item const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Item const* owner, Player const* receiver) const; + using OwnerObject = Item; + void WriteCreate(ByteBuffer& data, Player const* receiver, Item const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Item const* owner) const; void ClearChangesMask(); }; @@ -101,8 +105,9 @@ struct ArtifactPower : public IsUpdateFieldStructureTag uint8 PurchasedRank = 0; uint8 CurrentRankWithBonus = 0; - void WriteCreate(ByteBuffer& data, Item const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Item const* owner, Player const* receiver) const; + using OwnerObject = Item; + void WriteCreate(ByteBuffer& data, Player const* receiver, Item const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Item const* owner) const; bool operator==(ArtifactPower const& right) const; bool operator!=(ArtifactPower const& right) const { return !(*this == right); } }; @@ -113,8 +118,9 @@ struct SocketedGem : public IsUpdateFieldStructureTag, public HasChangesMask<20> UpdateField Context; UpdateFieldArray BonusListIDs; - void WriteCreate(ByteBuffer& data, Item const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Item const* owner, Player const* receiver) const; + using OwnerObject = Item; + void WriteCreate(ByteBuffer& data, Player const* receiver, Item const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Item const* owner) const; void ClearChangesMask(); }; @@ -143,9 +149,10 @@ struct ItemData : public IsUpdateFieldStructureTag, public HasChangesMask<41> UpdateFieldArray SpellCharges; UpdateFieldArray Enchantment; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Item const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Item const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Item const* owner, Player const* receiver) const; + using OwnerObject = Item; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Item const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Item const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Item const* owner, bool ignoreNestedChangesMask) const; static void AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags); static void FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags); void ClearChangesMask(); @@ -156,9 +163,10 @@ struct ContainerData : public IsUpdateFieldStructureTag, public HasChangesMask<1 UpdateField NumSlots; UpdateFieldArray Slots; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Bag const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Bag const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Bag const* owner, Player const* receiver) const; + using OwnerObject = Bag; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Bag const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Bag const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Bag const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -166,9 +174,10 @@ struct AzeriteEmpoweredItemData : public IsUpdateFieldStructureTag, public HasCh { UpdateFieldArray Selections; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AzeriteEmpoweredItem const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AzeriteEmpoweredItem const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, AzeriteEmpoweredItem const* owner, Player const* receiver) const; + using OwnerObject = AzeriteEmpoweredItem; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AzeriteEmpoweredItem const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AzeriteEmpoweredItem const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, AzeriteEmpoweredItem const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -177,8 +186,9 @@ struct UnlockedAzeriteEssence : public IsUpdateFieldStructureTag uint32 AzeriteEssenceID = 0; uint32 Rank = 0; - void WriteCreate(ByteBuffer& data, AzeriteItem const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AzeriteItem const* owner, Player const* receiver) const; + using OwnerObject = AzeriteItem; + void WriteCreate(ByteBuffer& data, Player const* receiver, AzeriteItem const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AzeriteItem const* owner) const; bool operator==(UnlockedAzeriteEssence const& right) const; bool operator!=(UnlockedAzeriteEssence const& right) const { return !(*this == right); } }; @@ -189,8 +199,9 @@ struct SelectedAzeriteEssences : public IsUpdateFieldStructureTag, public HasCha UpdateField SpecializationID; UpdateFieldArray AzeriteEssenceID; - void WriteCreate(ByteBuffer& data, AzeriteItem const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AzeriteItem const* owner, Player const* receiver) const; + using OwnerObject = AzeriteItem; + void WriteCreate(ByteBuffer& data, Player const* receiver, AzeriteItem const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AzeriteItem const* owner) const; void ClearChangesMask(); }; @@ -206,9 +217,10 @@ struct AzeriteItemData : public IsUpdateFieldStructureTag, public HasChangesMask UpdateField KnowledgeLevel; UpdateField DEBUGknowledgeWeek; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AzeriteItem const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AzeriteItem const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, AzeriteItem const* owner, Player const* receiver) const; + using OwnerObject = AzeriteItem; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AzeriteItem const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AzeriteItem const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, AzeriteItem const* owner, bool ignoreNestedChangesMask) const; static void AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags); static void FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags); void ClearChangesMask(); @@ -219,8 +231,9 @@ struct SpellCastVisual : public IsUpdateFieldStructureTag int32 SpellXSpellVisualID = 0; int32 ScriptVisualID = 0; - void WriteCreate(ByteBuffer& data, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Object const* owner, Player const* receiver) const; + using OwnerObject = Object; + void WriteCreate(ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Object const* owner) const; bool operator==(SpellCastVisual const& right) const; bool operator!=(SpellCastVisual const& right) const { return !(*this == right); } }; @@ -232,8 +245,9 @@ struct UnitChannel : public IsUpdateFieldStructureTag uint32 StartTimeMs = 0; uint32 Duration = 0; - void WriteCreate(ByteBuffer& data, Unit const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Unit const* owner, Player const* receiver) const; + using OwnerObject = Unit; + void WriteCreate(ByteBuffer& data, Player const* receiver, Unit const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Unit const* owner) const; bool operator==(UnitChannel const& right) const; bool operator!=(UnitChannel const& right) const { return !(*this == right); } }; @@ -248,8 +262,9 @@ struct VisibleItem : public IsUpdateFieldStructureTag, public HasChangesMask<8> UpdateField ItemAppearanceModID; UpdateField ItemVisual; - void WriteCreate(ByteBuffer& data, Unit const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Unit const* owner, Player const* receiver) const; + using OwnerObject = Unit; + void WriteCreate(ByteBuffer& data, Player const* receiver, Unit const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Unit const* owner) const; void ClearChangesMask(); }; @@ -258,8 +273,9 @@ struct PassiveSpellHistory : public IsUpdateFieldStructureTag int32 SpellID = 0; int32 AuraSpellID = 0; - void WriteCreate(ByteBuffer& data, Unit const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Unit const* owner, Player const* receiver) const; + using OwnerObject = Unit; + void WriteCreate(ByteBuffer& data, Player const* receiver, Unit const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Unit const* owner) const; bool operator==(PassiveSpellHistory const& right) const; bool operator!=(PassiveSpellHistory const& right) const { return !(*this == right); } }; @@ -270,8 +286,9 @@ struct UnitAssistActionData : public IsUpdateFieldStructureTag, public HasChange UpdateField PlayerName; UpdateField VirtualRealmAddress; - void WriteCreate(ByteBuffer& data, Unit const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Unit const* owner, Player const* receiver) const; + using OwnerObject = Unit; + void WriteCreate(ByteBuffer& data, Player const* receiver, Unit const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Unit const* owner) const; void ClearChangesMask(); }; @@ -439,9 +456,10 @@ struct UnitData : public IsUpdateFieldStructureTag, public HasChangesMask<228> UpdateFieldArray BonusResistanceMods; UpdateFieldArray ManaCostModifier; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Unit const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Unit const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Unit const* owner, Player const* receiver) const; + using OwnerObject = Unit; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Unit const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Unit const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Unit const* owner, bool ignoreNestedChangesMask) const; static void AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags); static void FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags); void ClearChangesMask(); @@ -452,8 +470,9 @@ struct ChrCustomizationChoice : public IsUpdateFieldStructureTag uint32 ChrCustomizationOptionID = 0; uint32 ChrCustomizationChoiceID = 0; - void WriteCreate(ByteBuffer& data, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Object const* owner, Player const* receiver) const; + using OwnerObject = Object; + void WriteCreate(ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Object const* owner) const; bool operator==(ChrCustomizationChoice const& right) const; bool operator!=(ChrCustomizationChoice const& right) const { return !(*this == right); } }; @@ -467,8 +486,9 @@ struct QuestLog : public IsUpdateFieldStructureTag, public HasChangesMask<31> UpdateField EnabledObjectivesMask; UpdateFieldArray ObjectiveProgress; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -482,8 +502,9 @@ struct ArenaCooldown : public IsUpdateFieldStructureTag, public HasChangesMask<8 UpdateField NextChargeTime; UpdateField MaxCharges; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -492,8 +513,9 @@ struct ZonePlayerForcedReaction : public IsUpdateFieldStructureTag, public HasCh UpdateField FactionID; UpdateField Reaction; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -502,8 +524,9 @@ struct PetCreatureName : public IsUpdateFieldStructureTag, public HasChangesMask UpdateField CreatureID; UpdateField Name; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -513,8 +536,9 @@ struct CTROptions : public IsUpdateFieldStructureTag uint8 FactionGroup = 0; uint32 ChromieTimeExpansionMask = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(CTROptions const& right) const; bool operator!=(CTROptions const& right) const { return !(*this == right); } }; @@ -532,8 +556,9 @@ struct LeaverInfo : public IsUpdateFieldStructureTag int64 LeaverExpirationTime = 0; int32 Flags = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(LeaverInfo const& right) const; bool operator!=(LeaverInfo const& right) const { return !(*this == right); } }; @@ -542,8 +567,9 @@ struct DeclinedNames : public IsUpdateFieldStructureTag, public HasChangesMask<6 { UpdateFieldArray Name; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -555,8 +581,9 @@ struct CustomTabardInfo : public IsUpdateFieldStructureTag, public HasChangesMas UpdateField BorderColor; UpdateField BackgroundColor; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -569,8 +596,9 @@ struct NPCAsPlayerInfo : public IsUpdateFieldStructureTag float FacingWorldSpace = 0.0f; ObjectGuid TransportGUID; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(NPCAsPlayerInfo const& right) const; bool operator!=(NPCAsPlayerInfo const& right) const { return !(*this == right); } }; @@ -632,9 +660,10 @@ struct PlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<325> UpdateFieldArray VisibleEquipableSpells; UpdateFieldArray PlunderstormItemDisplayID; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Player const* owner, bool ignoreNestedChangesMask) const; static void AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags); static void FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags); void ClearChangesMask(); @@ -651,8 +680,9 @@ struct SkillInfo : public IsUpdateFieldStructureTag, public HasChangesMask<2101> UpdateFieldArray SkillTempBonus; UpdateFieldArray SkillPermBonus; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -660,8 +690,9 @@ struct BitVector : public IsUpdateFieldStructureTag, public HasChangesMask<2> { DynamicUpdateField Values; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -669,8 +700,9 @@ struct BitVectors : public IsUpdateFieldStructureTag, public HasChangesMask<15> { UpdateFieldArray Values; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -680,8 +712,9 @@ struct PlayerDataElement : public IsUpdateFieldStructureTag float FloatValue = 0.0f; int64 Int64Value = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(PlayerDataElement const& right) const; bool operator!=(PlayerDataElement const& right) const { return !(*this == right); } }; @@ -691,8 +724,9 @@ struct RestInfo : public IsUpdateFieldStructureTag, public HasChangesMask<3> UpdateField Threshold; UpdateField StateID; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -717,8 +751,9 @@ struct PVPInfo : public IsUpdateFieldStructureTag, public HasChangesMask<19> UpdateField SeasonRoundsPlayed; UpdateField SeasonRoundsWon; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -729,8 +764,9 @@ struct CharacterRestriction : public IsUpdateFieldStructureTag int32 Field_8 = 0; uint32 Type = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(CharacterRestriction const& right) const; bool operator!=(CharacterRestriction const& right) const { return !(*this == right); } }; @@ -741,8 +777,9 @@ struct SpellPctModByLabel : public IsUpdateFieldStructureTag float ModifierValue = 0.0f; int32 LabelID = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(SpellPctModByLabel const& right) const; bool operator!=(SpellPctModByLabel const& right) const { return !(*this == right); } }; @@ -753,8 +790,9 @@ struct SpellFlatModByLabel : public IsUpdateFieldStructureTag int32 ModifierValue = 0; int32 LabelID = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(SpellFlatModByLabel const& right) const; bool operator!=(SpellFlatModByLabel const& right) const { return !(*this == right); } }; @@ -765,8 +803,9 @@ struct SpellPctPVPModByLabel : public IsUpdateFieldStructureTag float ModifierValue = 0.0f; int32 LabelID = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(SpellPctPVPModByLabel const& right) const; bool operator!=(SpellPctPVPModByLabel const& right) const { return !(*this == right); } }; @@ -777,8 +816,9 @@ struct SpellFlatPVPModByLabel : public IsUpdateFieldStructureTag int32 ModifierValue = 0; int32 LabelID = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(SpellFlatPVPModByLabel const& right) const; bool operator!=(SpellFlatPVPModByLabel const& right) const { return !(*this == right); } }; @@ -789,8 +829,9 @@ struct CompletedProject : public IsUpdateFieldStructureTag, public HasChangesMas UpdateField ProjectID; UpdateField CompletionCount; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -798,8 +839,9 @@ struct ResearchHistory : public IsUpdateFieldStructureTag, public HasChangesMask { DynamicUpdateField CompletedProjects; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -809,8 +851,9 @@ struct MawPower : public IsUpdateFieldStructureTag int32 MawPowerID = 0; int32 Stacks = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(MawPower const& right) const; bool operator!=(MawPower const& right) const { return !(*this == right); } }; @@ -819,8 +862,9 @@ struct MultiFloorExplore : public IsUpdateFieldStructureTag { std::vector WorldMapOverlayIDs; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(MultiFloorExplore const& right) const; bool operator!=(MultiFloorExplore const& right) const { return !(*this == right); } }; @@ -830,8 +874,9 @@ struct RecipeProgressionInfo : public IsUpdateFieldStructureTag uint16 RecipeProgressionGroupID = 0; uint16 Experience = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(RecipeProgressionInfo const& right) const; bool operator!=(RecipeProgressionInfo const& right) const { return !(*this == right); } }; @@ -841,8 +886,9 @@ struct LevelLinkInfo : public IsUpdateFieldStructureTag, public HasChangesMask<3 UpdateField TargetGUID; UpdateField Level; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -851,8 +897,9 @@ struct QuestSession : public IsUpdateFieldStructureTag, public HasChangesMask<3> UpdateField Owner; UpdateField QuestCompleted; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -861,8 +908,9 @@ struct ReplayedQuest : public IsUpdateFieldStructureTag, public HasChangesMask<3 UpdateField QuestID; UpdateField ReplayTime; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -874,8 +922,9 @@ struct TraitEntry : public IsUpdateFieldStructureTag int32 GrantedRanks = 0; int32 BonusRanks = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(TraitEntry const& right) const; bool operator!=(TraitEntry const& right) const { return !(*this == right); } }; @@ -886,8 +935,9 @@ struct TraitSubTreeCache : public IsUpdateFieldStructureTag int32 TraitSubTreeID = 0; uint32 Active = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(TraitSubTreeCache const& right) const; bool operator!=(TraitSubTreeCache const& right) const { return !(*this == right); } }; @@ -906,8 +956,9 @@ struct TraitConfig : public IsUpdateFieldStructureTag, public HasChangesMask<15> UpdateField TraitSystemID; UpdateField VariationID; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -921,8 +972,9 @@ struct CraftingOrderItem : public IsUpdateFieldStructureTag, public HasChangesMa UpdateField ReagentQuality; OptionalUpdateField DataSlotIndex; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -931,8 +983,9 @@ struct CraftingOrderCustomer : public IsUpdateFieldStructureTag, public HasChang UpdateField CustomerGUID; UpdateField CustomerAccountGUID; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -941,8 +994,9 @@ struct CraftingOrderNpcCustomer : public IsUpdateFieldStructureTag, public HasCh UpdateField NpcCraftingOrderCustomerID; UpdateField RealmAddress; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -970,8 +1024,9 @@ struct CraftingOrderData : public IsUpdateFieldStructureTag, public HasChangesMa OptionalUpdateField OutputItem; OptionalUpdateField OutputItemData; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -982,8 +1037,9 @@ struct CraftingOrder : public IsUpdateFieldStructureTag, public HasChangesMask<4 UpdateField Data; OptionalUpdateField RecraftItemInfo; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -992,8 +1048,9 @@ struct PersonalCraftingOrderCount : public IsUpdateFieldStructureTag, public Has UpdateField ProfessionID; UpdateField Count; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -1004,8 +1061,9 @@ struct NPCCraftingOrderInfo : public IsUpdateFieldStructureTag, public HasChange UpdateField NpcTreasureID; UpdateField NpcCraftingOrderCustomerID; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -1014,8 +1072,9 @@ struct CategoryCooldownMod : public IsUpdateFieldStructureTag int32 SpellCategoryID = 0; int32 ModCooldown = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(CategoryCooldownMod const& right) const; bool operator!=(CategoryCooldownMod const& right) const { return !(*this == right); } }; @@ -1025,8 +1084,9 @@ struct WeeklySpellUse : public IsUpdateFieldStructureTag int32 SpellCategoryID = 0; uint8 Uses = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(WeeklySpellUse const& right) const; bool operator!=(WeeklySpellUse const& right) const { return !(*this == right); } }; @@ -1042,8 +1102,9 @@ struct StablePetInfo : public IsUpdateFieldStructureTag, public HasChangesMask<9 UpdateField PetFlags; UpdateField Specialization; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -1052,8 +1113,9 @@ struct StableInfo : public IsUpdateFieldStructureTag, public HasChangesMask<3> DynamicUpdateField Pets; UpdateField StableMaster; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -1063,8 +1125,9 @@ struct CollectableSourceTrackedData : public IsUpdateFieldStructureTag, public H UpdateField TargetID; UpdateField CollectableSourceInfoID; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -1075,8 +1138,9 @@ struct BankTabSettings : public IsUpdateFieldStructureTag, public HasChangesMask UpdateField Description; UpdateField DepositFlags; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -1087,8 +1151,9 @@ struct WalkInData : public IsUpdateFieldStructureTag uint32 Type = 0; ObjectGuid Field_18; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(WalkInData const& right) const; bool operator!=(WalkInData const& right) const { return !(*this == right); } }; @@ -1102,8 +1167,9 @@ struct DelveData : public IsUpdateFieldStructureTag int32 SpellID = 0; uint32 Started = 0; // Restricts rewards to players in m_owners if set to true. Intended to prevent rewarwding players that join in-progress delve? - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(DelveData const& right) const; bool operator!=(DelveData const& right) const { return !(*this == right); } }; @@ -1121,8 +1187,9 @@ struct ChallengeModeData : public IsUpdateFieldStructureTag uint32 HasRestrictions = 0; uint32 CanVoteAbandon = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(ChallengeModeData const& right) const; bool operator!=(ChallengeModeData const& right) const { return !(*this == right); } }; @@ -1134,8 +1201,9 @@ struct TransmogOutfitDataInfo : public IsUpdateFieldStructureTag, public HasChan UpdateField Name; UpdateField Icon; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -1146,8 +1214,9 @@ struct TransmogOutfitSituationInfo : public IsUpdateFieldStructureTag, public Ha UpdateField LoadoutID; UpdateField EquipmentSetID; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -1161,8 +1230,9 @@ struct TransmogOutfitSlotData : public IsUpdateFieldStructureTag, public HasChan UpdateField IllusionDisplayType; UpdateField Flags; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -1174,8 +1244,9 @@ struct TransmogOutfitData : public IsUpdateFieldStructureTag, public HasChangesM UpdateField OutfitInfo; UpdateField Flags; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -1187,8 +1258,9 @@ struct TransmogOutfitMetadata : public IsUpdateFieldStructureTag uint8 StampedOptionMainHand = 0; uint8 StampedOptionOffHand = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(TransmogOutfitMetadata const& right) const; bool operator!=(TransmogOutfitMetadata const& right) const { return !(*this == right); } }; @@ -1197,8 +1269,9 @@ struct Research : public IsUpdateFieldStructureTag { int16 ResearchProjectID = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(Research const& right) const; bool operator!=(Research const& right) const { return !(*this == right); } }; @@ -1375,9 +1448,10 @@ struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMas UpdateFieldArray BagSlotFlags; UpdateFieldArray ItemUpgradeHighWatermark; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Player const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1390,8 +1464,9 @@ struct GameObjectAssistActionData : public IsUpdateFieldStructureTag int64 Time = 0; int32 DelveTier = 0; - void WriteCreate(ByteBuffer& data, GameObject const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, GameObject const* owner, Player const* receiver) const; + using OwnerObject = GameObject; + void WriteCreate(ByteBuffer& data, Player const* receiver, GameObject const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, GameObject const* owner) const; bool operator==(GameObjectAssistActionData const& right) const; bool operator!=(GameObjectAssistActionData const& right) const { return !(*this == right); } }; @@ -1431,9 +1506,10 @@ struct GameObjectData : public IsUpdateFieldStructureTag, public HasChangesMask< UpdateField UiWidgetItemCount; OptionalUpdateField AssistActionData; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, GameObject const* owner, Player const* receiver) const; + using OwnerObject = GameObject; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, GameObject const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, GameObject const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, GameObject const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1446,9 +1522,10 @@ struct DynamicObjectData : public IsUpdateFieldStructureTag, public HasChangesMa UpdateField Radius; UpdateField CastTime; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, DynamicObject const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, DynamicObject const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, DynamicObject const* owner, Player const* receiver) const; + using OwnerObject = DynamicObject; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, DynamicObject const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, DynamicObject const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, DynamicObject const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1468,9 +1545,10 @@ struct CorpseData : public IsUpdateFieldStructureTag, public HasChangesMask<33> UpdateField StateSpellVisualKitID; UpdateFieldArray Items; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Corpse const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Corpse const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Corpse const* owner, Player const* receiver) const; + using OwnerObject = Corpse; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Corpse const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Corpse const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Corpse const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1481,8 +1559,9 @@ struct ScaleCurve : public IsUpdateFieldStructureTag, public HasChangesMask<7> UpdateField ParameterCurve; UpdateFieldArray, 2, 4, 5> Points; - void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; void ClearChangesMask(); }; @@ -1493,8 +1572,9 @@ struct VisualAnim : public IsUpdateFieldStructureTag, public HasChangesMask<5> UpdateField AnimKitID; UpdateField AnimProgress; - void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; void ClearChangesMask(); }; @@ -1504,8 +1584,9 @@ struct ForceSetAreaTriggerPositionAndRotation : public IsUpdateFieldStructureTag TaggedPosition Pos; QuaternionData Rotation; - void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; bool operator==(ForceSetAreaTriggerPositionAndRotation const& right) const; bool operator!=(ForceSetAreaTriggerPositionAndRotation const& right) const { return !(*this == right); } }; @@ -1515,8 +1596,9 @@ struct AreaTriggerActionSetPeriodModifier : public IsUpdateFieldStructureTag, pu UpdateField Field_0; UpdateField Field_4; - void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; void ClearChangesMask(); }; @@ -1525,8 +1607,9 @@ struct AreaTriggerSplineCalculator : public IsUpdateFieldStructureTag, public Ha UpdateField Catmullrom; DynamicUpdateField, 0, 2> Points; - void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; void ClearChangesMask(); }; @@ -1539,8 +1622,9 @@ struct AreaTriggerOrbit : public IsUpdateFieldStructureTag, public HasChangesMas UpdateField BlendFromRadius; UpdateField ExtraTimeForBlending; - void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; void ClearChangesMask(); }; @@ -1550,8 +1634,9 @@ struct AreaTriggerMovementScript : public IsUpdateFieldStructureTag, public HasC UpdateField, 0, 2> Center; UpdateField CreationTime; - void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; void ClearChangesMask(); }; @@ -1560,8 +1645,9 @@ struct AreaTriggerSphere : public IsUpdateFieldStructureTag, public HasChangesMa UpdateField Radius; UpdateField RadiusTarget; - void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; void ClearChangesMask(); }; @@ -1570,8 +1656,9 @@ struct AreaTriggerBox : public IsUpdateFieldStructureTag, public HasChangesMask< UpdateField, 0, 1> Extents; UpdateField, 0, 2> ExtentsTarget; - void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; void ClearChangesMask(); }; @@ -1582,8 +1669,9 @@ struct AreaTriggerPolygon : public IsUpdateFieldStructureTag, public HasChangesM UpdateField Height; UpdateField HeightTarget; - void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; void ClearChangesMask(); }; @@ -1596,8 +1684,9 @@ struct AreaTriggerCylinder : public IsUpdateFieldStructureTag, public HasChanges UpdateField LocationZOffset; UpdateField LocationZOffsetTarget; - void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; void ClearChangesMask(); }; @@ -1612,8 +1701,9 @@ struct AreaTriggerDisk : public IsUpdateFieldStructureTag, public HasChangesMask UpdateField LocationZOffset; UpdateField LocationZOffsetTarget; - void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; void ClearChangesMask(); }; @@ -1622,8 +1712,9 @@ struct AreaTriggerBoundedPlane : public IsUpdateFieldStructureTag, public HasCha UpdateField, 0, 1> Extents; UpdateField, 0, 2> ExtentsTarget; - void WriteCreate(ByteBuffer& data, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; void ClearChangesMask(); }; @@ -1667,9 +1758,10 @@ struct AreaTriggerData : public IsUpdateFieldStructureTag, public HasChangesMask VariantUpdateField<32, 34, UF::AreaTriggerSplineCalculator, UF::AreaTriggerOrbit, UF::AreaTriggerMovementScript> PathData; VariantUpdateField<32, 35, UF::AreaTriggerSphere, UF::AreaTriggerBox, UF::AreaTriggerPolygon, UF::AreaTriggerCylinder, UF::AreaTriggerDisk, UF::AreaTriggerBoundedPlane> ShapeData; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1680,9 +1772,10 @@ struct SceneObjectData : public IsUpdateFieldStructureTag, public HasChangesMask UpdateField CreatedBy; UpdateField SceneType; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const; + using OwnerObject = Object; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Object const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1697,8 +1790,9 @@ struct ConversationLine : public IsUpdateFieldStructureTag uint8 Flags = 0; uint8 ChatType = 0; - void WriteCreate(ByteBuffer& data, Conversation const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Conversation const* owner, Player const* receiver) const; + using OwnerObject = Conversation; + void WriteCreate(ByteBuffer& data, Player const* receiver, Conversation const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Conversation const* owner) const; bool operator==(ConversationLine const& right) const; bool operator!=(ConversationLine const& right) const { return !(*this == right); } }; @@ -1712,8 +1806,9 @@ struct ConversationActor : public IsUpdateFieldStructureTag uint32 Type = 0; uint32 NoActorObject = 0; - void WriteCreate(ByteBuffer& data, Conversation const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Conversation const* owner, Player const* receiver) const; + using OwnerObject = Conversation; + void WriteCreate(ByteBuffer& data, Player const* receiver, Conversation const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Conversation const* owner) const; bool operator==(ConversationActor const& right) const; bool operator!=(ConversationActor const& right) const { return !(*this == right); } }; @@ -1728,9 +1823,10 @@ struct ConversationData : public IsUpdateFieldStructureTag, public HasChangesMas UpdateField Progress; UpdateField Flags; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Conversation const* owner, Player const* receiver) const; + using OwnerObject = Conversation; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Conversation const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Conversation const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Conversation const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1741,9 +1837,10 @@ struct MeshObjectData : public IsUpdateFieldStructureTag, public HasChangesMask< UpdateField FileDataID; OptionalUpdateField Geobox; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const; + using OwnerObject = Object; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Object const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1751,9 +1848,10 @@ struct VendorData : public IsUpdateFieldStructureTag, public HasChangesMask<2> { UpdateField Flags; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Creature const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Creature const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Creature const* owner, Player const* receiver) const; + using OwnerObject = Creature; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Creature const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Creature const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Creature const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1761,8 +1859,9 @@ struct DecorDyeSlots : public IsUpdateFieldStructureTag { std::array DyeColorID = {}; - void WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const; + using OwnerObject = BaseEntity; + void WriteCreate(ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; bool operator==(DecorDyeSlots const& right) const; bool operator!=(DecorDyeSlots const& right) const { return !(*this == right); } }; @@ -1774,8 +1873,9 @@ struct DecorStoragePersistedData : public IsUpdateFieldStructureTag, public HasC UpdateField SourceType; UpdateField SourceValue; - void WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const; + using OwnerObject = BaseEntity; + void WriteCreate(ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; void ClearChangesMask(); }; @@ -1787,9 +1887,10 @@ struct HousingDecorData : public IsUpdateFieldStructureTag, public HasChangesMas OptionalUpdateField PersistedData; UpdateField TargetGameObjectGUID; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const; + using OwnerObject = Object; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Object const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1800,8 +1901,9 @@ struct HousingDoorData : public IsUpdateFieldStructureTag, public HasChangesMask UpdateField RoomComponentType; UpdateField AttachedRoomGUID; - void WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const; + using OwnerObject = BaseEntity; + void WriteCreate(ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; void ClearChangesMask(); }; @@ -1814,9 +1916,10 @@ struct HousingRoomData : public IsUpdateFieldStructureTag, public HasChangesMask UpdateField Flags; UpdateField FloorIndex; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, BaseEntity const* owner, Player const* receiver) const; + using OwnerObject = BaseEntity; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1832,9 +1935,10 @@ struct HousingRoomComponentMeshData : public IsUpdateFieldStructureTag, public H UpdateField RoomComponentTextureID; UpdateField RoomComponentTypeParam; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const; + using OwnerObject = Object; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Object const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1850,9 +1954,10 @@ struct HousingPlayerHouseData : public IsUpdateFieldStructureTag, public HasChan UpdateField RoomPlacementBudget; UpdateField EntityGUID; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, BaseEntity const* owner, Player const* receiver) const; + using OwnerObject = BaseEntity; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1861,9 +1966,10 @@ struct HousingCornerstoneData : public IsUpdateFieldStructureTag, public HasChan UpdateField Cost; UpdateField PlotIndex; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, GameObject const* owner, Player const* receiver) const; + using OwnerObject = GameObject; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, GameObject const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, GameObject const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, GameObject const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1874,9 +1980,10 @@ struct HousingPlotAreaTriggerData : public IsUpdateFieldStructureTag, public Has UpdateField HouseGUID; UpdateField HouseOwnerBnetAccountGUID; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, AreaTrigger const* owner, Player const* receiver) const; + using OwnerObject = AreaTrigger; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, AreaTrigger const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1885,8 +1992,9 @@ struct PlayerHouseInfo : public IsUpdateFieldStructureTag ObjectGuid HouseGUID; ObjectGuid OwnerGUID; - void WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const; + using OwnerObject = BaseEntity; + void WriteCreate(ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; bool operator==(PlayerHouseInfo const& right) const; bool operator!=(PlayerHouseInfo const& right) const { return !(*this == right); } }; @@ -1896,8 +2004,9 @@ struct HousingOwner : public IsUpdateFieldStructureTag ObjectGuid BnetAccountGUID; ObjectGuid PlayerGUID; - void WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const; + using OwnerObject = BaseEntity; + void WriteCreate(ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; bool operator==(HousingOwner const& right) const; bool operator!=(HousingOwner const& right) const { return !(*this == right); } }; @@ -1909,9 +2018,10 @@ struct NeighborhoodMirrorData : public IsUpdateFieldStructureTag, public HasChan UpdateField OwnerGUID; UpdateField Name; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, BaseEntity const* owner, Player const* receiver) const; + using OwnerObject = BaseEntity; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1923,8 +2033,9 @@ struct MirroredMeshObjectData : public IsUpdateFieldStructureTag, public HasChan UpdateField ScaleLocalSpace; UpdateField AttachmentFlags; - void WriteCreate(ByteBuffer& data, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, BaseEntity const* owner, Player const* receiver) const; + using OwnerObject = BaseEntity; + void WriteCreate(ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; void ClearChangesMask(); }; @@ -1932,9 +2043,10 @@ struct MirroredPositionData : public IsUpdateFieldStructureTag, public HasChange { UpdateField PositionData; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, BaseEntity const* owner, Player const* receiver) const; + using OwnerObject = BaseEntity; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -1949,8 +2061,9 @@ struct PlayerMirrorHouse : public IsUpdateFieldStructureTag int32 MapID = 0; int32 PlotID = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(PlayerMirrorHouse const& right) const; bool operator!=(PlayerMirrorHouse const& right) const { return !(*this == right); } }; @@ -1959,8 +2072,9 @@ struct NeighborhoodCharterSignature : public IsUpdateFieldStructureTag { ObjectGuid Guid; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(NeighborhoodCharterSignature const& right) const; bool operator!=(NeighborhoodCharterSignature const& right) const { return !(*this == right); } }; @@ -1972,8 +2086,9 @@ struct NeighborhoodCharter : public IsUpdateFieldStructureTag int32 Field_4 = 0; std::string Name; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(NeighborhoodCharter const& right) const; bool operator!=(NeighborhoodCharter const& right) const { return !(*this == right); } }; @@ -1984,8 +2099,9 @@ struct NeighborhoodOwnershipTransfer : public IsUpdateFieldStructureTag ObjectGuid CurrentOwnerGUID; std::string NeighborhoodName; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(NeighborhoodOwnershipTransfer const& right) const; bool operator!=(NeighborhoodOwnershipTransfer const& right) const { return !(*this == right); } }; @@ -1998,12 +2114,13 @@ struct PlayerHouseInfoComponentData : public IsUpdateFieldStructureTag, public H DynamicUpdateField Field_C0; DynamicUpdateField Field_F8; UpdateField Charter; - UpdateField Field_178; + UpdateField EditorMode; UpdateField NeighborhoodOwnershipTransfer; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Player const* owner, bool ignoreNestedChangesMask) const; static void AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags); static void FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags); void ClearChangesMask(); @@ -2014,9 +2131,10 @@ struct HousingStorageData : public IsUpdateFieldStructureTag, public HasChangesM MapUpdateField Decor; UpdateField DecorMaxOwnedCount; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, BaseEntity const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, BaseEntity const* owner, Player const* receiver) const; + using OwnerObject = BaseEntity; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, BaseEntity const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, BaseEntity const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -2033,9 +2151,10 @@ struct HousingFixtureData : public IsUpdateFieldStructureTag, public HasChangesM UpdateField Field_59; UpdateField Size; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Object const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const; + using OwnerObject = Object; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Object const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Object const* owner, bool ignoreNestedChangesMask) const; void ClearChangesMask(); }; @@ -2049,8 +2168,9 @@ struct PlayerInitiativeInfo : public IsUpdateFieldStructureTag, public HasChange UpdateField CurrentProgress; UpdateField PlayerTotalContribution; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -2059,8 +2179,9 @@ struct PlayerInitiativeTaskInfo : public IsUpdateFieldStructureTag, public HasCh UpdateField TaskID; UpdateField TimesCompleted; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; void ClearChangesMask(); }; @@ -2069,8 +2190,9 @@ struct NICompletedMilestoneEntry : public IsUpdateFieldStructureTag uint32 MilestoneID = 0; int64 AwardDate = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(NICompletedMilestoneEntry const& right) const; bool operator!=(NICompletedMilestoneEntry const& right) const { return !(*this == right); } }; @@ -2081,8 +2203,9 @@ struct NICompletedInitiativesEntry : public IsUpdateFieldStructureTag std::vector CompletedMilestones; uint32 InitiativeID = 0; - void WriteCreate(ByteBuffer& data, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(bool ignoreChangesMask, ByteBuffer& data, Player const* receiver, Player const* owner) const; bool operator==(NICompletedInitiativesEntry const& right) const; bool operator!=(NICompletedInitiativesEntry const& right) const { return !(*this == right); } }; @@ -2095,9 +2218,10 @@ struct PlayerInitiativeComponentData : public IsUpdateFieldStructureTag, public UpdateField InitiativeInfo; SetUpdateField Houses; - void WriteCreate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, EnumFlag fieldVisibilityFlags, Player const* owner, Player const* receiver) const; - void WriteUpdate(ByteBuffer& data, Mask const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const; + using OwnerObject = Player; + void WriteCreate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(EnumFlag fieldVisibilityFlags, ByteBuffer& data, Player const* receiver, Player const* owner) const; + void WriteUpdate(Mask const& changesMask, ByteBuffer& data, Player const* receiver, Player const* owner, bool ignoreNestedChangesMask) const; static void AppendAllowedFieldsMaskForFlag(Mask& allowedMaskForTarget, EnumFlag fieldVisibilityFlags); static void FilterDisallowedFieldsMaskForFlag(Mask& changesMask, EnumFlag fieldVisibilityFlags); void ClearChangesMask(); diff --git a/src/server/game/Entities/Object/Updates/ViewerDependentValues.h b/src/server/game/Entities/Object/Updates/ViewerDependentValues.h index 4420584663..0ede4f1e68 100644 --- a/src/server/game/Entities/Object/Updates/ViewerDependentValues.h +++ b/src/server/game/Entities/Object/Updates/ViewerDependentValues.h @@ -44,7 +44,7 @@ class ViewerDependentValue public: using value_type = UF::ObjectData::EntryIDTag::value_type; - static value_type GetValue(UF::ObjectData const* objectData, Object const* object, Player const* receiver) + static value_type GetValue(UF::ObjectData const* objectData, Player const* receiver, Object const* object) { value_type entryId = objectData->EntryID; @@ -63,7 +63,7 @@ class ViewerDependentValue public: using value_type = UF::ObjectData::DynamicFlagsTag::value_type; - static value_type GetValue(UF::ObjectData const* objectData, Object const* object, Player const* receiver) + static value_type GetValue(UF::ObjectData const* objectData, Player const* receiver, Object const* object) { value_type dynamicFlags = objectData->DynamicFlags; if (Unit const* unit = object->ToUnit()) @@ -163,7 +163,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::DisplayIDTag::value_type; - static value_type GetValue(UF::UnitData const* unitData, Unit const* unit, Player const* receiver) + static value_type GetValue(UF::UnitData const* unitData, Player const* receiver, Unit const* unit) { value_type displayId = unitData->DisplayID; if (unit->IsCreature()) @@ -213,7 +213,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::StateWorldEffectIDsTag::value_type const*; - static value_type GetValue(UF::UnitData const* unitData, Unit const* unit, Player const* receiver) + static value_type GetValue(UF::UnitData const* unitData, Player const* receiver, Unit const* unit) { if (unit->IsCreature()) if (SpawnTrackingStateData const* spawnTrackingStateData = unit->GetSpawnTrackingStateDataForPlayer(receiver)) @@ -229,7 +229,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::StateSpellVisualIDTag::value_type; - static value_type GetValue(UF::UnitData const* unitData, Unit const* unit, Player const* receiver) + static value_type GetValue(UF::UnitData const* unitData, Player const* receiver, Unit const* unit) { value_type stateSpellVisual = unitData->StateSpellVisualID; @@ -247,7 +247,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::StateAnimIDTag::value_type; - static value_type GetValue(UF::UnitData const* /*unitData*/, Unit const* unit, Player const* receiver) + static value_type GetValue(UF::UnitData const* /*unitData*/, Player const* receiver, Unit const* unit) { value_type stateAnimId = sDB2Manager.GetEmptyAnimStateID(); @@ -265,7 +265,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::StateAnimKitIDTag::value_type; - static value_type GetValue(UF::UnitData const* unitData, Unit const* unit, Player const* receiver) + static value_type GetValue(UF::UnitData const* unitData, Player const* receiver, Unit const* unit) { value_type stateAnimKitId = unitData->StateAnimKitID; @@ -283,7 +283,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::StateWorldEffectsQuestObjectiveIDTag::value_type; - static value_type GetValue(UF::UnitData const* unitData, Unit const* unit, Player const* receiver) + static value_type GetValue(UF::UnitData const* unitData, Player const* receiver, Unit const* unit) { value_type stateWorldEffectsQuestObjectiveId = unitData->StateWorldEffectsQuestObjectiveID; @@ -319,7 +319,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::FactionTemplateTag::value_type; - static value_type GetValue(UF::UnitData const* unitData, Unit const* unit, Player const* receiver) + static value_type GetValue(UF::UnitData const* unitData, Player const* receiver, Unit const* unit) { value_type factionTemplate = unitData->FactionTemplate; if (unit->IsControlledByPlayer() && receiver != unit && sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP) && unit->IsInRaidWith(receiver)) @@ -341,7 +341,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::FlagsTag::value_type; - static value_type GetValue(UF::UnitData const* unitData, Unit const* /*unit*/, Player const* receiver) + static value_type GetValue(UF::UnitData const* unitData, Player const* receiver, Unit const* /*unit*/) { value_type flags = unitData->Flags; // Gamemasters should be always able to interact with units - remove uninteractible flag @@ -358,7 +358,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::Flags2Tag::value_type; - static value_type GetValue(UF::UnitData const* unitData, Unit const* /*unit*/, Player const* receiver) + static value_type GetValue(UF::UnitData const* unitData, Player const* receiver, Unit const* /*unit*/) { value_type flags = unitData->Flags2; // Gamemasters should be always able to interact with units - remove uninteractible flag @@ -375,7 +375,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::Flags3Tag::value_type; - static value_type GetValue(UF::UnitData const* unitData, Unit const* unit, Player const* receiver) + static value_type GetValue(UF::UnitData const* unitData, Player const* receiver, Unit const* unit) { value_type flags = unitData->Flags3; if (flags & UNIT_FLAG3_ALREADY_SKINNED && unit->IsCreature() && !unit->ToCreature()->IsSkinnedBy(receiver)) @@ -391,7 +391,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::Flags4Tag::value_type; - static value_type GetValue(UF::UnitData const* unitData, Unit const* /*unit*/, Player const* /*receiver*/) + static value_type GetValue(UF::UnitData const* unitData, Player const* /*receiver*/, Unit const* /*unit*/) { return unitData->Flags4; } @@ -403,7 +403,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::AuraStateTag::value_type; - static value_type GetValue(UF::UnitData const* /*unitData*/, Unit const* unit, Player const* receiver) + static value_type GetValue(UF::UnitData const* /*unitData*/, Player const* receiver, Unit const* unit) { // Check per caster aura states to not enable using a spell in client if specified aura is not by target return unit->BuildAuraStateUpdateForTarget(receiver); @@ -416,7 +416,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::PvpFlagsTag::value_type; - static value_type GetValue(UF::UnitData const* unitData, Unit const* unit, Player const* receiver) + static value_type GetValue(UF::UnitData const* unitData, Player const* receiver, Unit const* unit) { value_type pvpFlags = unitData->PvpFlags; if (unit->IsControlledByPlayer() && receiver != unit && sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP) && unit->IsInRaidWith(receiver)) @@ -438,7 +438,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::InteractSpellIDTag::value_type; - static value_type GetValue(UF::UnitData const* unitData, Unit const* unit, Player const* receiver) + static value_type GetValue(UF::UnitData const* unitData, Player const* receiver, Unit const* unit) { value_type interactSpellId = unitData->InteractSpellID; if (unitData->NpcFlags & UNIT_NPC_FLAG_SPELLCLICK && !interactSpellId) @@ -468,7 +468,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::NpcFlagsTag::value_type; - static value_type GetValue(UF::UnitData const* unitData, Unit const* unit, Player const* receiver) + static value_type GetValue(UF::UnitData const* unitData, Player const* receiver, Unit const* unit) { value_type npcFlag = unitData->NpcFlags; if (npcFlag) @@ -495,7 +495,7 @@ class ViewerDependentValue public: using value_type = UF::UnitData::NpcFlags2Tag::value_type; - static value_type GetValue(UF::UnitData const* unitData, Unit const* unit, Player const* receiver) + static value_type GetValue(UF::UnitData const* unitData, Player const* receiver, Unit const* unit) { value_type npcFlag = unitData->NpcFlags2; if (npcFlag) @@ -514,7 +514,7 @@ class ViewerDependentValue public: using value_type = UF::GameObjectData::StateWorldEffectIDsTag::value_type const*; - static value_type GetValue(UF::GameObjectData const* gameObjectData, GameObject const* gameObject, Player const* receiver) + static value_type GetValue(UF::GameObjectData const* gameObjectData, Player const* receiver, GameObject const* gameObject) { if (SpawnTrackingStateData const* spawnTrackingStateData = gameObject->GetSpawnTrackingStateDataForPlayer(receiver)) return &spawnTrackingStateData->StateWorldEffects; @@ -529,7 +529,7 @@ class ViewerDependentValue public: using value_type = UF::GameObjectData::StateSpellVisualIDTag::value_type; - static value_type GetValue(UF::GameObjectData const* gameObjectData, GameObject const* gameObject, Player const* receiver) + static value_type GetValue(UF::GameObjectData const* gameObjectData, Player const* receiver, GameObject const* gameObject) { value_type stateSpellVisual = gameObjectData->StateSpellVisualID; @@ -546,7 +546,7 @@ class ViewerDependentValue public: using value_type = UF::GameObjectData::SpawnTrackingStateAnimIDTag::value_type; - static value_type GetValue(UF::GameObjectData const* /*gameObjectData*/, GameObject const* gameObject, Player const* receiver) + static value_type GetValue(UF::GameObjectData const* /*gameObjectData*/, Player const* receiver, GameObject const* gameObject) { value_type stateAnimId = sDB2Manager.GetEmptyAnimStateID(); @@ -563,7 +563,7 @@ class ViewerDependentValue public: using value_type = UF::GameObjectData::SpawnTrackingStateAnimKitIDTag::value_type; - static value_type GetValue(UF::GameObjectData const* gameObjectData, GameObject const* gameObject, Player const* receiver) + static value_type GetValue(UF::GameObjectData const* gameObjectData, Player const* receiver, GameObject const* gameObject) { value_type stateAnimKitId = gameObjectData->SpawnTrackingStateAnimKitID; @@ -580,7 +580,7 @@ class ViewerDependentValueStateWorldEffectsQuestObjectiveID; @@ -616,7 +616,7 @@ class ViewerDependentValue public: using value_type = UF::GameObjectData::FlagsTag::value_type; - static value_type GetValue(UF::GameObjectData const* gameObjectData, GameObject const* gameObject, Player const* receiver) + static value_type GetValue(UF::GameObjectData const* gameObjectData, Player const* receiver, GameObject const* gameObject) { value_type flags = gameObjectData->Flags; if (gameObject->GetGoType() == GAMEOBJECT_TYPE_CHEST) @@ -633,7 +633,7 @@ class ViewerDependentValue public: using value_type = UF::GameObjectData::StateTag::value_type; - static value_type GetValue(UF::GameObjectData const* /*gameObjectData*/, GameObject const* gameObject, Player const* receiver) + static value_type GetValue(UF::GameObjectData const* /*gameObjectData*/, Player const* receiver, GameObject const* gameObject) { return gameObject->GetGoStateFor(receiver->GetGUID()); } @@ -645,7 +645,7 @@ class ViewerDependentValue public: using value_type = UF::ConversationData::LastLineEndTimeTag::value_type; - static value_type GetValue(UF::ConversationData const* /*conversationData*/, Conversation const* conversation, Player const* receiver) + static value_type GetValue(UF::ConversationData const* /*conversationData*/, Player const* receiver, Conversation const* conversation) { LocaleConstant locale = receiver->GetSession()->GetSessionDbLocaleIndex(); return conversation->GetLastLineEndTime(locale).count(); @@ -658,7 +658,7 @@ class ViewerDependentValue public: using value_type = UF::ConversationLine::StartTimeTag::value_type; - static value_type GetValue(UF::ConversationLine const* conversationLineData, Conversation const* conversation, Player const* receiver) + static value_type GetValue(UF::ConversationLine const* conversationLineData, Player const* receiver, Conversation const* conversation) { value_type startTime = conversationLineData->StartTime; LocaleConstant locale = receiver->GetSession()->GetSessionDbLocaleIndex(); diff --git a/src/server/game/Entities/Object/Updates/WowCSEntityDefinitions.cpp b/src/server/game/Entities/Object/Updates/WowCSEntityDefinitions.cpp index b80541d547..e12c312923 100644 --- a/src/server/game/Entities/Object/Updates/WowCSEntityDefinitions.cpp +++ b/src/server/game/Entities/Object/Updates/WowCSEntityDefinitions.cpp @@ -21,8 +21,7 @@ namespace WowCS { -void EntityFragmentsHolder::Add(EntityFragment fragment, bool update, - EntityFragmentSerializeFn serializeCreate, EntityFragmentSerializeFn serializeUpdate, EntityFragmentIsChangedFn isChanged) +void EntityFragmentsHolder::Add(EntityFragment fragment, bool update, void const* data /*= nullptr*/) { ASSERT(Count < Ids.size()); @@ -45,7 +44,7 @@ void EntityFragmentsHolder::Add(EntityFragment fragment, bool update, if (IsUpdateableFragment(fragment)) { ASSERT(UpdateableCount < Updateable.Ids.size()); - ASSERT(serializeCreate && serializeUpdate && isChanged); + ASSERT(data); auto insertedItr = insertSorted(Updateable.Ids, UpdateableCount, fragment).first; std::ptrdiff_t index = std::ranges::distance(Updateable.Ids.begin(), insertedItr); @@ -69,9 +68,7 @@ void EntityFragmentsHolder::Add(EntityFragment fragment, bool update, arr[i] = value; }; - insertAtIndex(Updateable.SerializeCreate, UpdateableCount, index, serializeCreate); - insertAtIndex(Updateable.SerializeUpdate, UpdateableCount, index, serializeUpdate); - insertAtIndex(Updateable.IsChanged, UpdateableCount, index, isChanged); + insertAtIndex(Updateable.Data, UpdateableCount, index, data); } if (update) @@ -121,12 +118,29 @@ void EntityFragmentsHolder::Remove(EntityFragment fragment) }; uint8 oldSize = UpdateableCount + 1; - removeAtIndex(Updateable.SerializeCreate, oldSize, index, nullptr); - removeAtIndex(Updateable.SerializeUpdate, oldSize, index, nullptr); - removeAtIndex(Updateable.IsChanged, oldSize, index, nullptr); + removeAtIndex(Updateable.Data, oldSize, index, nullptr); } } IdsChanged = true; } + +EntityFragmentInfos const* EntityFragmentInfo; + +void EntityFragmentInfos::Register(EntityFragment fragment, EntityFragmentSerializeFn serializeCreate, + EntityFragmentSerializeFn serializeUpdate, EntityFragmentIsChangedFn isChanged, EntityFragmentClearChangedFn clearChanged) +{ + static EntityFragmentInfos entityFragmentInfo; + + std::size_t index = static_cast(fragment); + entityFragmentInfo.SerializeCreate[index] = serializeCreate; + entityFragmentInfo.SerializeUpdate[index] = serializeUpdate; + entityFragmentInfo.IsChanged[index] = isChanged; + entityFragmentInfo.ClearChanged[index] = clearChanged; +} + +EntityFragmentInfos::EntityFragmentInfos() +{ + EntityFragmentInfo = this; +} } diff --git a/src/server/game/Entities/Object/Updates/WowCSEntityDefinitions.h b/src/server/game/Entities/Object/Updates/WowCSEntityDefinitions.h index d6c43dff92..a8dc91f3a5 100644 --- a/src/server/game/Entities/Object/Updates/WowCSEntityDefinitions.h +++ b/src/server/game/Entities/Object/Updates/WowCSEntityDefinitions.h @@ -111,36 +111,6 @@ inline constexpr bool IsIndirectFragment(EntityFragment frag) || frag == EntityFragment::PlayerInitiativeComponent_C; } -template -struct FragmentSerializationTraits -{ -}; - -template -struct FragmentSerializationTraits -{ - static void BuildCreate(BaseEntity const* baseEntity, ByteBuffer& data, UF::UpdateFieldFlag flags, Player const* target) - { - Entity const* entity = static_cast(baseEntity); - (entity->*FragmentData)->WriteCreate(data, flags, entity, target); - } - - static void BuildUpdate(BaseEntity const* baseEntity, ByteBuffer& data, UF::UpdateFieldFlag flags, Player const* target) - { - Entity const* entity = static_cast(baseEntity); - (entity->*FragmentData)->WriteUpdate(data, flags, entity, target); - } - - static bool IsChanged(BaseEntity const* baseEntity) - { - Entity const* entity = static_cast(baseEntity); - return (entity->*FragmentData)->GetChangesMask().IsAnySet(); - } -}; - -using EntityFragmentSerializeFn = void (*)(BaseEntity const* entity, ByteBuffer& data, UF::UpdateFieldFlag flags, Player const* target); -using EntityFragmentIsChangedFn = bool (*)(BaseEntity const* entity); - struct EntityFragmentsHolder { std::array Ids = @@ -158,9 +128,7 @@ struct EntityFragmentsHolder EntityFragment::End, EntityFragment::End, EntityFragment::End, EntityFragment::End }; std::array Masks = { }; - std::array SerializeCreate = { }; - std::array SerializeUpdate = { }; - std::array IsChanged = { }; + std::array Data; }; UpdateableFragments Updateable; @@ -171,16 +139,7 @@ struct EntityFragmentsHolder uint8 UpdateableCount = 0; uint8 ContentsChangedMask = 0; - void Add(EntityFragment fragment, bool update, - EntityFragmentSerializeFn serializeCreate, EntityFragmentSerializeFn serializeUpdate, EntityFragmentIsChangedFn isChanged); - - inline void Add(EntityFragment fragment, bool update) { Add(fragment, update, nullptr, nullptr, nullptr); } - - template - inline void Add(EntityFragment fragment, bool update, SerializationTraits) - { - Add(fragment, update, &SerializationTraits::BuildCreate, &SerializationTraits::BuildUpdate, &SerializationTraits::IsChanged); - } + void Add(EntityFragment fragment, bool update, void const* data = nullptr); void Remove(EntityFragment fragment); @@ -192,6 +151,66 @@ enum class EntityFragmentSerializationType : uint8 Full = 0, Partial = 1 }; + +template +inline void const* GetRawFragmentData(T const& fragmentData) +{ + return std::addressof(*fragmentData); +} + +template +struct FragmentSerializationTraits +{ + static void BuildCreate(void const* rawFragmentData, UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target, BaseEntity const* baseEntity) + { + static_cast(rawFragmentData)->WriteCreate(flags, data, target, reinterpret_cast(baseEntity)); + } + + static void BuildUpdate(void const* rawFragmentData, UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target, BaseEntity const* baseEntity) + { + static_cast(rawFragmentData)->WriteUpdate(flags, data, target, reinterpret_cast(baseEntity)); + } + + static bool IsChanged(void const* rawFragmentData) + { + return static_cast(rawFragmentData)->GetChangesMask().IsAnySet(); + } + + static void ClearChanged(void const* rawFragmentData) + { + const_cast(static_cast(rawFragmentData))->ClearChangesMask(); + } +}; + +using EntityFragmentSerializeFn = void (*)(void const* rawFragmentData, UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target, BaseEntity const* baseEntity); +using EntityFragmentIsChangedFn = bool (*)(void const* rawFragmentData); +using EntityFragmentClearChangedFn = void (*)(void const* rawFragmentData); + +struct EntityFragmentInfos +{ + static constexpr std::size_t N = static_cast(EntityFragment::End) + 1; + + std::array SerializeCreate = { }; + std::array SerializeUpdate = { }; + std::array IsChanged = { }; + std::array ClearChanged = { }; + + static void Register(EntityFragment fragment, + EntityFragmentSerializeFn serializeCreate, EntityFragmentSerializeFn serializeUpdate, + EntityFragmentIsChangedFn isChanged, EntityFragmentClearChangedFn clearChanged); + + template + inline static void Register(EntityFragment fragment, SerializationTraits) + { + EntityFragmentInfos::Register(fragment, &SerializationTraits::BuildCreate, &SerializationTraits::BuildUpdate, + &SerializationTraits::IsChanged, &SerializationTraits::ClearChanged); + } + +private: + EntityFragmentInfos(); +}; + +extern EntityFragmentInfos const* EntityFragmentInfo; } #endif // TRINITYCORE_WOWCS_ENTITY_DEFINITIONS_H diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 614e3afb20..a46dd0da17 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -3613,47 +3613,47 @@ UF::UpdateFieldFlag Player::GetUpdateFieldFlagsFor(Player const* target) const return flags; } -void Player::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Player::BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - m_objectData->WriteCreate(*data, flags, this, target); - m_unitData->WriteCreate(*data, flags, this, target); - m_playerData->WriteCreate(*data, flags, this, target); + m_objectData->WriteCreate(flags, data, target, this); + m_unitData->WriteCreate(flags, data, target, this); + m_playerData->WriteCreate(flags, data, target, this); if (target == this) - m_activePlayerData->WriteCreate(*data, flags, this, target); + m_activePlayerData->WriteCreate(flags, data, target, this); } -void Player::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Player::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - *data << uint32(m_values.GetChangedObjectTypeMask() & ~(uint32(target != this) << TYPEID_ACTIVE_PLAYER)); + data << uint32(m_values.GetChangedObjectTypeMask() & ~(uint32(target != this) << TYPEID_ACTIVE_PLAYER)); if (m_values.HasChanged(TYPEID_OBJECT)) - m_objectData->WriteUpdate(*data, flags, this, target); + m_objectData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_UNIT)) - m_unitData->WriteUpdate(*data, flags, this, target); + m_unitData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_PLAYER)) - m_playerData->WriteUpdate(*data, flags, this, target); + m_playerData->WriteUpdate(flags, data, target, this); if (target == this && m_values.HasChanged(TYPEID_ACTIVE_PLAYER)) - m_activePlayerData->WriteUpdate(*data, flags, this, target); + m_activePlayerData->WriteUpdate(flags, data, target, this); } -void Player::BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void Player::BuildValuesUpdateWithFlag(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { UpdateMask valuesMask; valuesMask.Set(TYPEID_UNIT); valuesMask.Set(TYPEID_PLAYER); - *data << uint32(valuesMask.GetBlock(0)); + data << uint32(valuesMask.GetBlock(0)); UF::UnitData::Mask mask; - m_unitData->AppendAllowedFieldsMaskForFlag(mask, flags); - m_unitData->WriteUpdate(*data, mask, true, this, target); + UF::UnitData::AppendAllowedFieldsMaskForFlag(mask, flags); + m_unitData->WriteUpdate(mask, data, target, this, true); UF::PlayerData::Mask mask2; - m_playerData->AppendAllowedFieldsMaskForFlag(mask2, flags); - m_playerData->WriteUpdate(*data, mask2, true, this, target); + UF::PlayerData::AppendAllowedFieldsMaskForFlag(mask2, flags); + m_playerData->WriteUpdate(mask2, data, target, this, true); } void Player::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, @@ -3666,12 +3666,12 @@ void Player::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData valuesMask.Set(TYPEID_OBJECT); UF::UnitData::Mask unitMask = requestedUnitMask; - m_unitData->FilterDisallowedFieldsMaskForFlag(unitMask, flags); + UF::UnitData::FilterDisallowedFieldsMaskForFlag(unitMask, flags); if (unitMask.IsAnySet()) valuesMask.Set(TYPEID_UNIT); UF::PlayerData::Mask playerMask = requestedPlayerMask; - m_playerData->FilterDisallowedFieldsMaskForFlag(playerMask, flags); + UF::PlayerData::FilterDisallowedFieldsMaskForFlag(playerMask, flags); if (playerMask.IsAnySet()) valuesMask.Set(TYPEID_PLAYER); @@ -3681,20 +3681,20 @@ void Player::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); - BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags); + BuildEntityFragmentsForValuesUpdateForPlayerWithMask(buffer, flags); buffer << uint32(valuesMask.GetBlock(0)); if (valuesMask[TYPEID_OBJECT]) - m_objectData->WriteUpdate(buffer, requestedObjectMask, true, this, target); + m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true); if (valuesMask[TYPEID_UNIT]) - m_unitData->WriteUpdate(buffer, unitMask, true, this, target); + m_unitData->WriteUpdate(unitMask, buffer, target, this, true); if (valuesMask[TYPEID_PLAYER]) - m_playerData->WriteUpdate(buffer, playerMask, true, this, target); + m_playerData->WriteUpdate(playerMask, buffer, target, this, true); if (valuesMask[TYPEID_ACTIVE_PLAYER]) - m_activePlayerData->WriteUpdate(buffer, requestedActivePlayerMask, true, this, target); + m_activePlayerData->WriteUpdate(requestedActivePlayerMask, buffer, target, this, true); buffer.put(sizePos, buffer.wpos() - sizePos - 4); @@ -3725,11 +3725,11 @@ void Player::DestroyForPlayer(Player const* target) const } } -void Player::ClearUpdateMask(bool remove) +void Player::ClearValuesChangesMask() { m_values.ClearChangesMask(&Player::m_playerData); m_values.ClearChangesMask(&Player::m_activePlayerData); - Unit::ClearUpdateMask(remove); + Unit::ClearValuesChangesMask(); } bool Player::HasSpell(uint32 spell) const diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index c19a4ef224..6b3680eecd 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2210,13 +2210,13 @@ class TC_GAME_API Player final : public Unit, public GridObject protected: UF::UpdateFieldFlag GetUpdateFieldFlagsFor(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; + void BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void ClearValuesChangesMask() override; public: void BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) const override; - void BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const override; + void BuildValuesUpdateWithFlag(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, UF::UnitData::Mask const& requestedUnitMask, UF::PlayerData::Mask const& requestedPlayerMask, UF::ActivePlayerData::Mask const& requestedActivePlayerMask, Player const* target) const; diff --git a/src/server/game/Entities/SceneObject/SceneObject.cpp b/src/server/game/Entities/SceneObject/SceneObject.cpp index 3d8a7bca45..aa098b96e9 100644 --- a/src/server/game/Entities/SceneObject/SceneObject.cpp +++ b/src/server/game/Entities/SceneObject/SceneObject.cpp @@ -137,21 +137,21 @@ bool SceneObject::Create(ObjectGuid::LowType lowGuid, SceneType type, uint32 sce return true; } -void SceneObject::BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void SceneObject::BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - m_objectData->WriteCreate(*data, flags, this, target); - m_sceneObjectData->WriteCreate(*data, flags, this, target); + m_objectData->WriteCreate(flags, data, target, this); + m_sceneObjectData->WriteCreate(flags, data, target, this); } -void SceneObject::BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const +void SceneObject::BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const { - *data << uint32(m_values.GetChangedObjectTypeMask()); + data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) - m_objectData->WriteUpdate(*data, flags, this, target); + m_objectData->WriteUpdate(flags, data, target, this); if (m_values.HasChanged(TYPEID_SCENEOBJECT)) - m_sceneObjectData->WriteUpdate(*data, flags, this, target); + m_sceneObjectData->WriteUpdate(flags, data, target, this); } void SceneObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, @@ -168,14 +168,14 @@ void SceneObject::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::Objec ByteBuffer& buffer = PrepareValuesUpdateBuffer(data); std::size_t sizePos = buffer.wpos(); buffer << uint32(0); - BuildEntityFragmentsForValuesUpdateForPlayerWithMask(&buffer, flags); + BuildEntityFragmentsForValuesUpdateForPlayerWithMask(buffer, flags); buffer << uint32(valuesMask.GetBlock(0)); if (valuesMask[TYPEID_OBJECT]) - m_objectData->WriteUpdate(buffer, requestedObjectMask, true, this, target); + m_objectData->WriteUpdate(requestedObjectMask, buffer, target, this, true); if (valuesMask[TYPEID_SCENEOBJECT]) - m_sceneObjectData->WriteUpdate(buffer, requestedSceneObjectMask, true, this, target); + m_sceneObjectData->WriteUpdate(requestedSceneObjectMask, buffer, target, this, true); buffer.put(sizePos, buffer.wpos() - sizePos - 4); @@ -193,8 +193,8 @@ void SceneObject::ValuesUpdateForPlayerWithMaskSender::operator()(Player const* player->SendDirectMessage(&packet); } -void SceneObject::ClearUpdateMask(bool remove) +void SceneObject::ClearValuesChangesMask() { m_values.ClearChangesMask(&SceneObject::m_sceneObjectData); - Object::ClearUpdateMask(remove); + WorldObject::ClearValuesChangesMask(); } diff --git a/src/server/game/Entities/SceneObject/SceneObject.h b/src/server/game/Entities/SceneObject/SceneObject.h index c6e0b98e5d..3080245f9e 100644 --- a/src/server/game/Entities/SceneObject/SceneObject.h +++ b/src/server/game/Entities/SceneObject/SceneObject.h @@ -36,9 +36,9 @@ public: ~SceneObject(); protected: - 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; + void BuildValuesCreate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void BuildValuesUpdate(UF::UpdateFieldFlag flags, ByteBuffer& data, Player const* target) const override; + void ClearValuesChangesMask() override; public: void BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index c34f79686c..4e1829e528 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -14107,10 +14107,10 @@ void Unit::DestroyForPlayer(Player const* target) const WorldObject::DestroyForPlayer(target); } -void Unit::ClearUpdateMask(bool remove) +void Unit::ClearValuesChangesMask() { m_values.ClearChangesMask(&Unit::m_unitData); - Object::ClearUpdateMask(remove); + WorldObject::ClearValuesChangesMask(); } int32 Unit::GetHighestExclusiveSameEffectSpellGroupValue(AuraEffect const* aurEff, AuraType auraType, bool checkMiscValue /*= false*/, int32 miscValue /*= 0*/) const diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index b1241c66d4..921aa94e46 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1881,7 +1881,7 @@ class TC_GAME_API Unit : public WorldObject UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const* target) const override; void DestroyForPlayer(Player const* target) const override; - void ClearUpdateMask(bool remove) override; + void ClearValuesChangesMask() override; void _UpdateSpells(uint32 time); void _DeleteRemovedAuras();