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;
}
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 (data.HasUnfinishedBitPack())
@@ -450,9 +450,9 @@ namespace Game.Entities
_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 (data.HasUnfinishedBitPack())