void BuildValuesUpdateForPlayerWithMask(UpdateData data, UpdateMask requestedObjectMask, UpdateMask requestedSceneObjectMask, Player target) { UpdateMask valuesMask = new((int)TypeId.Max); if (requestedObjectMask.IsAnySet()) { valuesMask.Set((int)TypeId.Object); } if (requestedSceneObjectMask.IsAnySet()) { valuesMask.Set((int)TypeId.SceneObject); } WorldPacket buffer = new(); buffer.WriteUInt32(valuesMask.GetBlock(0)); if (valuesMask[(int)TypeId.Object]) { m_objectData.WriteUpdate(buffer, requestedObjectMask, true, this, target); } if (valuesMask[(int)TypeId.SceneObject]) { m_sceneObjectData.WriteUpdate(buffer, requestedSceneObjectMask, true, this, target); } WorldPacket buffer1 = new(); buffer1.WriteUInt8((byte)UpdateType.Values); buffer1.WritePackedGuid(GetGUID()); buffer1.WriteUInt32(buffer.GetSize()); buffer1.WriteBytes(buffer.GetData()); data.AddUpdateBlock(buffer1); }
public BaseUpdateData(int blockBit, TypeId bit, int changeMask) { _blockBit = blockBit; Bit = (int)bit; _changesMask = new UpdateMask(changeMask); }
public BaseUpdateData(int changeMask) { _changesMask = new UpdateMask(changeMask); }
void BuildValuesUpdateForPlayerWithMask(UpdateData data, UpdateMask requestedObjectMask, UpdateMask requestedItemMask, UpdateMask requestedAzeriteItemMask, Player target) { UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); UpdateMask valuesMask = new UpdateMask((int)TypeId.Max); if (requestedObjectMask.IsAnySet()) { valuesMask.Set((int)TypeId.Object); } m_itemData.FilterDisallowedFieldsMaskForFlag(requestedItemMask, flags); if (requestedItemMask.IsAnySet()) { valuesMask.Set((int)TypeId.Item); } m_azeriteItemData.FilterDisallowedFieldsMaskForFlag(requestedAzeriteItemMask, flags); if (requestedAzeriteItemMask.IsAnySet()) { valuesMask.Set((int)TypeId.AzeriteItem); } WorldPacket buffer = new WorldPacket(); buffer.WriteUInt32(valuesMask.GetBlock(0)); if (valuesMask[(int)TypeId.Object]) { m_objectData.WriteUpdate(buffer, requestedObjectMask, true, this, target); } if (valuesMask[(int)TypeId.Item]) { m_itemData.WriteUpdate(buffer, requestedItemMask, true, this, target); } if (valuesMask[(int)TypeId.AzeriteItem]) { m_azeriteItemData.WriteUpdate(buffer, requestedAzeriteItemMask, true, this, target); } WorldPacket buffer1 = new WorldPacket(); buffer1.WriteUInt8((byte)UpdateType.Values); buffer1.WritePackedGuid(GetGUID()); buffer1.WriteUInt32(buffer.GetSize()); buffer1.WriteBytes(buffer.GetData()); data.AddUpdateBlock(buffer1); }