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/Object | |
| 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/Object')
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 11 |
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(); } |
