Core/Objects: Allow overriding number of bits used to write dynamic updatefield sizes

Port From (https://github.com/TrinityCore/TrinityCore/commit/4ce6df1d2517959f39f32205cedc354ab0cbad73)
This commit is contained in:
hondacrx
2020-12-10 13:04:00 -05:00
parent cbbdf6d695
commit 18d2b7bb80
@@ -170,9 +170,9 @@ namespace Game.Entities
return (_updateMask[index / 32] & (1 << (index % 32))) != 0; return (_updateMask[index / 32] & (1 << (index % 32))) != 0;
} }
public void WriteUpdateMask(WorldPacket data) public void WriteUpdateMask(WorldPacket data, int bitsForSize = 32)
{ {
data.WriteBits(_values.Count, 32); data.WriteBits(_values.Count, bitsForSize);
if (_values.Count > 32) if (_values.Count > 32)
{ {
if (data.HasUnfinishedBitPack()) if (data.HasUnfinishedBitPack())
@@ -450,9 +450,9 @@ namespace Game.Entities
_changesMask.Set(updateField.FirstElementBit + index); _changesMask.Set(updateField.FirstElementBit + index);
} }
public void WriteCompleteDynamicFieldUpdateMask(int size, WorldPacket data) public void WriteCompleteDynamicFieldUpdateMask(int size, WorldPacket data, int bitsForSize = 32)
{ {
data.WriteBits(size, 32); data.WriteBits(size, bitsForSize);
if (size > 32) if (size > 32)
{ {
if (data.HasUnfinishedBitPack()) if (data.HasUnfinishedBitPack())