aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
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/Object
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/Object')
-rw-r--r--src/server/game/Entities/Object/Object.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 1cc56f3969f..90a33683a5e 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -177,7 +177,12 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c
buf << uint8(objectType);
BuildMovementUpdate(&buf, flags, target);
+
+ std::size_t sizePos = buf.wpos();
+ buf << uint32(0);
BuildValuesCreate(&buf, target);
+ buf.put<uint32>(sizePos, buf.wpos() - sizePos - 4);
+
data->AddUpdateBlock();
}
@@ -199,7 +204,10 @@ void Object::BuildValuesUpdateBlockForPlayer(UpdateData* data, Player const* tar
{
ByteBuffer& buf = PrepareValuesUpdateBuffer(data);
+ std::size_t sizePos = buf.wpos();
+ buf << uint32(0);
BuildValuesUpdate(&buf, target);
+ buf.put<uint32>(sizePos, buf.wpos() - sizePos - 4);
data->AddUpdateBlock();
}
@@ -208,7 +216,10 @@ void Object::BuildValuesUpdateBlockForPlayerWithFlag(UpdateData* data, UF::Updat
{
ByteBuffer& buf = PrepareValuesUpdateBuffer(data);
+ std::size_t sizePos = buf.wpos();
+ buf << uint32(0);
BuildValuesUpdateWithFlag(&buf, flags, target);
+ buf.put<uint32>(sizePos, buf.wpos() - sizePos - 4);
data->AddUpdateBlock();
}