aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Item
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-10-25 15:36:11 +0200
committerShauren <shauren.trinity@gmail.com>2024-10-25 15:36:11 +0200
commit067fa31d152ecb10e5bea0419f84f7b79b96abf5 (patch)
tree9b5921a62ff86259f613f6e8f1e3e9b294be14a8 /src/server/game/Entities/Item
parent6dab3791ae7c810114ac1d5dbdd3b018813e2a97 (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.cpp7
-rw-r--r--src/server/game/Entities/Item/AzeriteItem/AzeriteItem.cpp11
-rw-r--r--src/server/game/Entities/Item/Container/Bag.cpp7
-rw-r--r--src/server/game/Entities/Item/Item.cpp11
-rw-r--r--src/server/game/Entities/Item/Item.h2
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;