Core/PacketIO: Move writing data sizes in SMSG_UPDATE_OBJECT to shared functions instead of spreading it in all overrides
Port From (https://github.com/TrinityCore/TrinityCore/commit/067fa31d152ecb10e5bea0419f84f7b79b96abf5)
This commit is contained in:
@@ -149,34 +149,26 @@ namespace Game.Entities
|
||||
public override void BuildValuesCreate(WorldPacket data, Player target)
|
||||
{
|
||||
UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
|
||||
WorldPacket buffer = new();
|
||||
|
||||
buffer.WriteUInt8((byte)flags);
|
||||
m_objectData.WriteCreate(buffer, flags, this, target);
|
||||
m_itemData.WriteCreate(buffer, flags, this, target);
|
||||
m_azeriteEmpoweredItemData.WriteCreate(buffer, flags, this, target);
|
||||
|
||||
data.WriteUInt32(buffer.GetSize());
|
||||
data.WriteBytes(buffer);
|
||||
data.WriteUInt8((byte)flags);
|
||||
m_objectData.WriteCreate(data, flags, this, target);
|
||||
m_itemData.WriteCreate(data, flags, this, target);
|
||||
m_azeriteEmpoweredItemData.WriteCreate(data, flags, this, target);
|
||||
}
|
||||
|
||||
public override void BuildValuesUpdate(WorldPacket data, Player target)
|
||||
{
|
||||
UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
|
||||
WorldPacket buffer = new();
|
||||
|
||||
data.WriteUInt32(m_values.GetChangedObjectTypeMask());
|
||||
if (m_values.HasChanged(TypeId.Object))
|
||||
m_objectData.WriteUpdate(buffer, flags, this, target);
|
||||
m_objectData.WriteUpdate(data, flags, this, target);
|
||||
|
||||
if (m_values.HasChanged(TypeId.Item))
|
||||
m_itemData.WriteUpdate(buffer, flags, this, target);
|
||||
m_itemData.WriteUpdate(data, flags, this, target);
|
||||
|
||||
if (m_values.HasChanged(TypeId.AzeriteEmpoweredItem))
|
||||
m_azeriteEmpoweredItemData.WriteUpdate(buffer, flags, this, target);
|
||||
|
||||
data.WriteUInt32(buffer.GetSize());
|
||||
data.WriteUInt32(m_values.GetChangedObjectTypeMask());
|
||||
data.WriteBytes(buffer);
|
||||
m_azeriteEmpoweredItemData.WriteUpdate(data, flags, this, target);
|
||||
}
|
||||
|
||||
void BuildValuesUpdateForPlayerWithMask(UpdateData data, UpdateMask requestedObjectMask, UpdateMask requestedItemMask, UpdateMask requestedAzeriteEmpoweredItemMask, Player target)
|
||||
|
||||
@@ -407,34 +407,26 @@ namespace Game.Entities
|
||||
public override void BuildValuesCreate(WorldPacket data, Player target)
|
||||
{
|
||||
UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
|
||||
WorldPacket buffer = new();
|
||||
|
||||
buffer.WriteUInt8((byte)flags);
|
||||
m_objectData.WriteCreate(buffer, flags, this, target);
|
||||
m_itemData.WriteCreate(buffer, flags, this, target);
|
||||
m_azeriteItemData.WriteCreate(buffer, flags, this, target);
|
||||
|
||||
data.WriteUInt32(buffer.GetSize());
|
||||
data.WriteBytes(buffer);
|
||||
data.WriteUInt8((byte)flags);
|
||||
m_objectData.WriteCreate(data, flags, this, target);
|
||||
m_itemData.WriteCreate(data, flags, this, target);
|
||||
m_azeriteItemData.WriteCreate(data, flags, this, target);
|
||||
}
|
||||
|
||||
public override void BuildValuesUpdate(WorldPacket data, Player target)
|
||||
{
|
||||
UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
|
||||
WorldPacket buffer = new();
|
||||
|
||||
data.WriteUInt32(m_values.GetChangedObjectTypeMask());
|
||||
if (m_values.HasChanged(TypeId.Object))
|
||||
m_objectData.WriteUpdate(buffer, flags, this, target);
|
||||
m_objectData.WriteUpdate(data, flags, this, target);
|
||||
|
||||
if (m_values.HasChanged(TypeId.Item))
|
||||
m_itemData.WriteUpdate(buffer, flags, this, target);
|
||||
m_itemData.WriteUpdate(data, flags, this, target);
|
||||
|
||||
if (m_values.HasChanged(TypeId.AzeriteItem))
|
||||
m_azeriteItemData.WriteUpdate(buffer, flags, this, target);
|
||||
|
||||
data.WriteUInt32(buffer.GetSize());
|
||||
data.WriteUInt32(m_values.GetChangedObjectTypeMask());
|
||||
data.WriteBytes(buffer);
|
||||
m_azeriteItemData.WriteUpdate(data, flags, this, target);
|
||||
}
|
||||
|
||||
public override void BuildValuesUpdateWithFlag(WorldPacket data, UpdateFieldFlag flags, Player target)
|
||||
@@ -443,19 +435,15 @@ namespace Game.Entities
|
||||
valuesMask.Set((int)TypeId.Item);
|
||||
valuesMask.Set((int)TypeId.AzeriteItem);
|
||||
|
||||
WorldPacket buffer = new();
|
||||
buffer.WriteUInt32(valuesMask.GetBlock(0));
|
||||
data.WriteUInt32(valuesMask.GetBlock(0));
|
||||
|
||||
UpdateMask mask = m_itemData.GetStaticUpdateMask();
|
||||
m_itemData.AppendAllowedFieldsMaskForFlag(mask, flags);
|
||||
m_itemData.WriteUpdate(buffer, mask, true, this, target);
|
||||
m_itemData.WriteUpdate(data, mask, true, this, target);
|
||||
|
||||
UpdateMask mask2 = m_azeriteItemData.GetStaticUpdateMask();
|
||||
m_azeriteItemData.AppendAllowedFieldsMaskForFlag(mask2, flags);
|
||||
m_azeriteItemData.WriteUpdate(buffer, mask2, true, this, target);
|
||||
|
||||
data.WriteUInt32(buffer.GetSize());
|
||||
data.WriteBytes(buffer);
|
||||
m_azeriteItemData.WriteUpdate(data, mask2, true, this, target);
|
||||
}
|
||||
|
||||
void BuildValuesUpdateForPlayerWithMask(UpdateData data, UpdateMask requestedObjectMask, UpdateMask requestedItemMask, UpdateMask requestedAzeriteItemMask, Player target)
|
||||
|
||||
@@ -163,34 +163,26 @@ namespace Game.Entities
|
||||
public override void BuildValuesCreate(WorldPacket data, Player target)
|
||||
{
|
||||
UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
|
||||
WorldPacket buffer = new();
|
||||
|
||||
buffer.WriteUInt8((byte)flags);
|
||||
m_objectData.WriteCreate(buffer, flags, this, target);
|
||||
m_itemData.WriteCreate(buffer, flags, this, target);
|
||||
m_containerData.WriteCreate(buffer, flags, this, target);
|
||||
|
||||
data.WriteUInt32(buffer.GetSize());
|
||||
data.WriteBytes(buffer);
|
||||
data.WriteUInt8((byte)flags);
|
||||
m_objectData.WriteCreate(data, flags, this, target);
|
||||
m_itemData.WriteCreate(data, flags, this, target);
|
||||
m_containerData.WriteCreate(data, flags, this, target);
|
||||
}
|
||||
|
||||
public override void BuildValuesUpdate(WorldPacket data, Player target)
|
||||
{
|
||||
UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
|
||||
WorldPacket buffer = new();
|
||||
|
||||
buffer.WriteUInt32(m_values.GetChangedObjectTypeMask());
|
||||
data.WriteUInt32(m_values.GetChangedObjectTypeMask());
|
||||
if (m_values.HasChanged(TypeId.Object))
|
||||
m_objectData.WriteUpdate(buffer, flags, this, target);
|
||||
m_objectData.WriteUpdate(data, flags, this, target);
|
||||
|
||||
if (m_values.HasChanged(TypeId.Item))
|
||||
m_itemData.WriteUpdate(buffer, flags, this, target);
|
||||
m_itemData.WriteUpdate(data, flags, this, target);
|
||||
|
||||
if (m_values.HasChanged(TypeId.Container))
|
||||
m_containerData.WriteUpdate(buffer, flags, this, target);
|
||||
|
||||
data.WriteUInt32(buffer.GetSize());
|
||||
data.WriteBytes(buffer);
|
||||
m_containerData.WriteUpdate(data, flags, this, target);
|
||||
}
|
||||
|
||||
void BuildValuesUpdateForPlayerWithMask(UpdateData data, UpdateMask requestedObjectMask, UpdateMask requestedItemMask, UpdateMask requestedContainerMask, Player target)
|
||||
|
||||
@@ -1273,31 +1273,22 @@ namespace Game.Entities
|
||||
public override void BuildValuesCreate(WorldPacket data, Player target)
|
||||
{
|
||||
UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
|
||||
WorldPacket buffer = new();
|
||||
|
||||
m_objectData.WriteCreate(buffer, flags, this, target);
|
||||
m_itemData.WriteCreate(buffer, flags, this, target);
|
||||
|
||||
data.WriteUInt32(buffer.GetSize() + 1);
|
||||
data.WriteUInt8((byte)flags);
|
||||
data.WriteBytes(buffer);
|
||||
m_objectData.WriteCreate(data, flags, this, target);
|
||||
m_itemData.WriteCreate(data, flags, this, target);
|
||||
}
|
||||
|
||||
public override void BuildValuesUpdate(WorldPacket data, Player target)
|
||||
{
|
||||
UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target);
|
||||
WorldPacket buffer = new();
|
||||
|
||||
data.WriteUInt32(m_values.GetChangedObjectTypeMask());
|
||||
if (m_values.HasChanged(TypeId.Object))
|
||||
m_objectData.WriteUpdate(buffer, flags, this, target);
|
||||
m_objectData.WriteUpdate(data, flags, this, target);
|
||||
|
||||
if (m_values.HasChanged(TypeId.Item))
|
||||
m_itemData.WriteUpdate(buffer, flags, this, target);
|
||||
|
||||
|
||||
data.WriteUInt32(buffer.GetSize());
|
||||
data.WriteUInt32(m_values.GetChangedObjectTypeMask());
|
||||
data.WriteBytes(buffer);
|
||||
m_itemData.WriteUpdate(data, flags, this, target);
|
||||
}
|
||||
|
||||
public override void BuildValuesUpdateWithFlag(WorldPacket data, UpdateFieldFlag flags, Player target)
|
||||
@@ -1305,15 +1296,11 @@ namespace Game.Entities
|
||||
UpdateMask valuesMask = new((int)TypeId.Max);
|
||||
valuesMask.Set((int)TypeId.Item);
|
||||
|
||||
WorldPacket buffer = new();
|
||||
UpdateMask mask = m_itemData.GetStaticUpdateMask();
|
||||
|
||||
buffer.WriteUInt32(valuesMask.GetBlock(0));
|
||||
data.WriteUInt32(valuesMask.GetBlock(0));
|
||||
m_itemData.AppendAllowedFieldsMaskForFlag(mask, flags);
|
||||
m_itemData.WriteUpdate(buffer, mask, true, this, target);
|
||||
|
||||
data.WriteUInt32(buffer.GetSize());
|
||||
data.WriteBytes(buffer);
|
||||
m_itemData.WriteUpdate(data, mask, true, this, target);
|
||||
}
|
||||
|
||||
void BuildValuesUpdateForPlayerWithMask(UpdateData data, UpdateMask requestedObjectMask, UpdateMask requestedItemMask, Player target)
|
||||
|
||||
Reference in New Issue
Block a user