diff options
author | Shauren <shauren.trinity@gmail.com> | 2020-11-21 12:19:36 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2020-12-08 18:16:47 +0100 |
commit | 4ce6df1d2517959f39f32205cedc354ab0cbad73 (patch) | |
tree | fb9ac8925a5c9b2b1fc6166ef9759f79383f825f | |
parent | b0505593641b0f8f5cae4a803e57c2e763fe71f6 (diff) |
Core/Objects: Allow overriding number of bits used to write dynamic updatefield sizes
-rw-r--r-- | src/server/game/Entities/Object/Updates/UpdateField.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Updates/UpdateField.h | 8 |
2 files changed, 8 insertions, 8 deletions
diff --git a/src/server/game/Entities/Object/Updates/UpdateField.cpp b/src/server/game/Entities/Object/Updates/UpdateField.cpp index 79b7c3732dc..2c0527190db 100644 --- a/src/server/game/Entities/Object/Updates/UpdateField.cpp +++ b/src/server/game/Entities/Object/Updates/UpdateField.cpp @@ -18,9 +18,9 @@ #include "UpdateField.h" #include "ByteBuffer.h" -void UF::WriteDynamicFieldUpdateMask(std::size_t size, std::vector<uint32> const& updateMask, ByteBuffer& data) +void UF::WriteDynamicFieldUpdateMask(std::size_t size, std::vector<uint32> const& updateMask, ByteBuffer& data, int32 bitsForSize /*= 32*/) { - data.WriteBits(size, 32); + data.WriteBits(size, bitsForSize); if (size > 32) { if (data.HasUnfinishedBitPack()) @@ -40,9 +40,9 @@ void UF::WriteDynamicFieldUpdateMask(std::size_t size, std::vector<uint32> const data.WriteBits(updateMask.back(), size % 32); } -void UF::WriteCompleteDynamicFieldUpdateMask(std::size_t size, ByteBuffer& data) +void UF::WriteCompleteDynamicFieldUpdateMask(std::size_t size, ByteBuffer& data, int32 bitsForSize /*= 32*/) { - data.WriteBits(size, 32); + data.WriteBits(size, bitsForSize); if (size > 32) { if (data.HasUnfinishedBitPack()) diff --git a/src/server/game/Entities/Object/Updates/UpdateField.h b/src/server/game/Entities/Object/Updates/UpdateField.h index 1c9757842eb..98810762304 100644 --- a/src/server/game/Entities/Object/Updates/UpdateField.h +++ b/src/server/game/Entities/Object/Updates/UpdateField.h @@ -770,8 +770,8 @@ namespace UF { }; - void WriteDynamicFieldUpdateMask(std::size_t size, std::vector<uint32> const& updateMask, ByteBuffer& data); - void WriteCompleteDynamicFieldUpdateMask(std::size_t size, ByteBuffer& data); + void WriteDynamicFieldUpdateMask(std::size_t size, std::vector<uint32> const& updateMask, ByteBuffer& data, int32 bitsForSize = 32); + void WriteCompleteDynamicFieldUpdateMask(std::size_t size, ByteBuffer& data, int32 bitsForSize = 32); template<typename T> class DynamicUpdateFieldBase : public IsUpdateFieldHolderTag @@ -842,9 +842,9 @@ namespace UF return (_updateMask[index / 32] & (1 << (index % 32))) != 0; } - void WriteUpdateMask(ByteBuffer& data) const + void WriteUpdateMask(ByteBuffer& data, int32 bitsForSize = 32) const { - WriteDynamicFieldUpdateMask(_values.size(), _updateMask, data); + WriteDynamicFieldUpdateMask(_values.size(), _updateMask, data, bitsForSize); } private: |