diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-10-25 15:36:11 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-10-25 15:36:11 +0200 |
| commit | 067fa31d152ecb10e5bea0419f84f7b79b96abf5 (patch) | |
| tree | 9b5921a62ff86259f613f6e8f1e3e9b294be14a8 /src/server/game/Entities/Item | |
| parent | 6dab3791ae7c810114ac1d5dbdd3b018813e2a97 (diff) | |
Core/PacketIO: Move writing data sizes in SMSG_UPDATE_OBJECT to shared functions instead of spreading it in all overrides
Diffstat (limited to 'src/server/game/Entities/Item')
| -rw-r--r-- | src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp | 7 | ||||
| -rw-r--r-- | src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/Entities/Item/Container/Bag.cpp | 7 | ||||
| -rw-r--r-- | src/server/game/Entities/Item/Item.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/Entities/Item/Item.h | 2 |
5 files changed, 1 insertions, 37 deletions
diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp index c298536ba5d..481ed961849 100644 --- a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp +++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp @@ -157,20 +157,15 @@ int64 AzeriteEmpoweredItem::GetRespecCost() const void AzeriteEmpoweredItem::BuildValuesCreate(ByteBuffer* data, Player const* target) const { UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - std::size_t sizePos = data->wpos(); - *data << uint32(0); *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_itemData->WriteCreate(*data, flags, this, target); m_azeriteEmpoweredItemData->WriteCreate(*data, flags, this, target); - data->put<uint32>(sizePos, data->wpos() - sizePos - 4); } void AzeriteEmpoweredItem::BuildValuesUpdate(ByteBuffer* data, Player const* target) const { UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - std::size_t sizePos = data->wpos(); - *data << uint32(0); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) @@ -181,8 +176,6 @@ void AzeriteEmpoweredItem::BuildValuesUpdate(ByteBuffer* data, Player const* tar if (m_values.HasChanged(TYPEID_AZERITE_EMPOWERED_ITEM)) m_azeriteEmpoweredItemData->WriteUpdate(*data, flags, this, target); - - data->put<uint32>(sizePos, data->wpos() - sizePos - 4); } void AzeriteEmpoweredItem::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp index b167f8f7947..aec58210f56 100644 --- a/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp +++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp @@ -392,20 +392,15 @@ void AzeriteItem::SetSelectedAzeriteEssence(uint8 slot, uint32 azeriteEssenceId) void AzeriteItem::BuildValuesCreate(ByteBuffer* data, Player const* target) const { UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - std::size_t sizePos = data->wpos(); - *data << uint32(0); *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_itemData->WriteCreate(*data, flags, this, target); m_azeriteItemData->WriteCreate(*data, flags, this, target); - data->put<uint32>(sizePos, data->wpos() - sizePos - 4); } void AzeriteItem::BuildValuesUpdate(ByteBuffer* data, Player const* target) const { UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - std::size_t sizePos = data->wpos(); - *data << uint32(0); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) @@ -416,8 +411,6 @@ void AzeriteItem::BuildValuesUpdate(ByteBuffer* data, Player const* target) cons if (m_values.HasChanged(TYPEID_AZERITE_ITEM)) m_azeriteItemData->WriteUpdate(*data, flags, this, target); - - data->put<uint32>(sizePos, data->wpos() - sizePos - 4); } void AzeriteItem::BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const @@ -426,8 +419,6 @@ void AzeriteItem::BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFla valuesMask.Set(TYPEID_ITEM); valuesMask.Set(TYPEID_AZERITE_ITEM); - std::size_t sizePos = data->wpos(); - *data << uint32(0); *data << uint32(valuesMask.GetBlock(0)); UF::ItemData::Mask mask; @@ -437,8 +428,6 @@ void AzeriteItem::BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFla UF::AzeriteItemData::Mask mask2; m_azeriteItemData->AppendAllowedFieldsMaskForFlag(mask2, flags); m_azeriteItemData->WriteUpdate(*data, mask2, true, this, target); - - data->put<uint32>(sizePos, data->wpos() - sizePos - 4); } void AzeriteItem::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, diff --git a/src/server/game/Entities/Item/Container/Bag.cpp b/src/server/game/Entities/Item/Container/Bag.cpp index 1d26d1d6150..a949dd6a0f0 100644 --- a/src/server/game/Entities/Item/Container/Bag.cpp +++ b/src/server/game/Entities/Item/Container/Bag.cpp @@ -185,20 +185,15 @@ void Bag::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) cons void Bag::BuildValuesCreate(ByteBuffer* data, Player const* target) const { UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - std::size_t sizePos = data->wpos(); - *data << uint32(0); *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_itemData->WriteCreate(*data, flags, this, target); m_containerData->WriteCreate(*data, flags, this, target); - data->put<uint32>(sizePos, data->wpos() - sizePos - 4); } void Bag::BuildValuesUpdate(ByteBuffer* data, Player const* target) const { UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - std::size_t sizePos = data->wpos(); - *data << uint32(0); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) @@ -209,8 +204,6 @@ void Bag::BuildValuesUpdate(ByteBuffer* data, Player const* target) const if (m_values.HasChanged(TYPEID_CONTAINER)) m_containerData->WriteUpdate(*data, flags, this, target); - - data->put<uint32>(sizePos, data->wpos() - sizePos - 4); } void Bag::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index f426e81ded6..67b5ee0200d 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -1707,19 +1707,14 @@ UF::UpdateFieldFlag Item::GetUpdateFieldFlagsFor(Player const* target) const void Item::BuildValuesCreate(ByteBuffer* data, Player const* target) const { UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - std::size_t sizePos = data->wpos(); - *data << uint32(0); *data << uint8(flags); m_objectData->WriteCreate(*data, flags, this, target); m_itemData->WriteCreate(*data, flags, this, target); - data->put<uint32>(sizePos, data->wpos() - sizePos - 4); } void Item::BuildValuesUpdate(ByteBuffer* data, Player const* target) const { UF::UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); - std::size_t sizePos = data->wpos(); - *data << uint32(0); *data << uint32(m_values.GetChangedObjectTypeMask()); if (m_values.HasChanged(TYPEID_OBJECT)) @@ -1727,8 +1722,6 @@ void Item::BuildValuesUpdate(ByteBuffer* data, Player const* target) const if (m_values.HasChanged(TYPEID_ITEM)) m_itemData->WriteUpdate(*data, flags, this, target); - - data->put<uint32>(sizePos, data->wpos() - sizePos - 4); } void Item::BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const @@ -1736,15 +1729,11 @@ void Item::BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags UpdateMask<NUM_CLIENT_OBJECT_TYPES> valuesMask; valuesMask.Set(TYPEID_ITEM); - std::size_t sizePos = data->wpos(); - *data << uint32(0); *data << uint32(valuesMask.GetBlock(0)); UF::ItemData::Mask mask; m_itemData->AppendAllowedFieldsMaskForFlag(mask, flags); m_itemData->WriteUpdate(*data, mask, true, this, target); - - data->put<uint32>(sizePos, data->wpos() - sizePos - 4); } void Item::BuildValuesUpdateForPlayerWithMask(UpdateData* data, UF::ObjectData::Mask const& requestedObjectMask, diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h index f0e3b3216a5..7df8b8534ac 100644 --- a/src/server/game/Entities/Item/Item.h +++ b/src/server/game/Entities/Item/Item.h @@ -377,7 +377,7 @@ class TC_GAME_API Item : public Object void BuildUpdate(UpdateDataMapType&) override; protected: - UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const* target) const override; + UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const* target) const final; void BuildValuesCreate(ByteBuffer* data, Player const* target) const override; void BuildValuesUpdate(ByteBuffer* data, Player const* target) const override; void ClearUpdateMask(bool remove) override; |
