Core/Entities: Regenerated updatefields code with latest generator fixes

Port From (https://github.com/TrinityCore/TrinityCore/commit/331b9ccd6a3be12e92e7c2aab7b793739b405d2f)
This commit is contained in:
hondacrx
2021-02-18 12:08:56 -05:00
parent 03456fb574
commit 6c121e7ef5
5 changed files with 33 additions and 26 deletions
@@ -452,13 +452,13 @@ namespace Game.Entities
public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
allowedMaskForTarget |= new UpdateMask(40, new uint[] { 0x03FB1B00u, 0x00000000u });
allowedMaskForTarget.OR(new UpdateMask(40, new uint[] { 0x03FB1B00u, 0x00000000u }));
}
public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags)
{
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
changesMask &= new UpdateMask(40, new uint[] { 0xFC04E4FFu, 0xFFFFFFFFu });
changesMask.AND(new UpdateMask(40, new uint[] { 0xFC04E4FFu, 0xFFFFFFFFu }));
}
public void WriteUpdate(WorldPacket data, UpdateMask changesMask, bool ignoreNestedChangesMask, Item owner, Player receiver)
@@ -852,7 +852,10 @@ namespace Game.Entities
data.WriteUInt32(UnlockedEssenceMilestones[i]);
}
data.FlushBits();
data.WriteBit(Enabled);
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
{
data.WriteBit(Enabled);
}
for (int i = 0; i < SelectedEssences.Size(); ++i)
{
SelectedEssences[i].WriteCreate(data, owner, receiver);
@@ -862,7 +865,7 @@ namespace Game.Entities
public void WriteUpdate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, AzeriteItem owner, Player receiver)
{
UpdateMask allowedMaskForTarget = new UpdateMask(9, new[] { 0x0000001Fu });
UpdateMask allowedMaskForTarget = new UpdateMask(9, new[] { 0x0000001Du });
AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver);
}
@@ -870,13 +873,13 @@ namespace Game.Entities
public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
allowedMaskForTarget |= new UpdateMask(9, new[] { 0x000003E0u });
allowedMaskForTarget.OR(new UpdateMask(9, new[] { 0x000003E2u }));
}
public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags)
{
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
changesMask &= new UpdateMask(9, new[] { 0xFFFFFC1Fu });
changesMask.AND(new UpdateMask(9, new[] { 0xFFFFFC1Du }));
}
public void WriteUpdate(WorldPacket data, UpdateMask changesMask, bool ignoreNestedChangesMask, AzeriteItem owner, Player receiver)
@@ -1194,7 +1197,7 @@ namespace Game.Entities
public UpdateField<float> Lifesteal = new UpdateField<float>(96, 98);
public UpdateField<float> MinRangedDamage = new UpdateField<float>(96, 99);
public UpdateField<float> MaxRangedDamage = new UpdateField<float>(96, 100);
public UpdateField<float> ManaCostModifierModifier = new UpdateField<float>(96, 101);
public UpdateField<float> ManaCostMultiplier = new UpdateField<float>(96, 101);
public UpdateField<float> MaxHealthModifier = new UpdateField<float>(96, 102);
public UpdateField<float> HoverHeight = new UpdateField<float>(96, 103);
public UpdateField<uint> MinItemLevelCutoff = new UpdateField<uint>(96, 104);
@@ -1224,7 +1227,7 @@ namespace Game.Entities
public UpdateFieldArray<int> StatNegBuff = new UpdateFieldArray<int>(4, 154, 163);
public UpdateFieldArray<int> Resistances = new UpdateFieldArray<int>(7, 167, 168);
public UpdateFieldArray<int> BonusResistanceMods = new UpdateFieldArray<int>(7, 167, 175);
public UpdateFieldArray<int> PowerCostModifier = new UpdateFieldArray<int>(7, 167, 182);
public UpdateFieldArray<int> ManaCostModifier = new UpdateFieldArray<int>(7, 167, 182);
public UnitData() : base(0, TypeId.Unit, 189) { }
@@ -1356,7 +1359,7 @@ namespace Game.Entities
for (int i = 0; i < 7; ++i)
{
data.WriteInt32(BonusResistanceMods[i]);
data.WriteInt32(PowerCostModifier[i]);
data.WriteInt32(ManaCostModifier[i]);
}
}
data.WriteUInt32(BaseMana);
@@ -1384,7 +1387,7 @@ namespace Game.Entities
data.WriteFloat(Lifesteal);
data.WriteFloat(MinRangedDamage);
data.WriteFloat(MaxRangedDamage);
data.WriteFloat(ManaCostModifierModifier);
data.WriteFloat(ManaCostMultiplier);
data.WriteFloat(MaxHealthModifier);
}
data.WriteFloat(HoverHeight);
@@ -1427,21 +1430,21 @@ namespace Game.Entities
public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
allowedMaskForTarget |= new UpdateMask(192, new uint[] { 0x00002000u, 0x1E008000u, 0xFFE10000u, 0x0400007Eu, 0xFC07FF80u, 0x1FFFFFFFu });
allowedMaskForTarget.OR(new UpdateMask(192, new uint[] { 0x00002000u, 0x1E008000u, 0xFFE10000u, 0x0400007Eu, 0xFC07FF80u, 0x1FFFFFFFu }));
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.UnitAll))
allowedMaskForTarget |= new UpdateMask(192, new uint[] { 0x00000000u, 0x00000000u, 0x00000000u, 0x04000000u, 0x0007FF80u, 0x00000000u });
allowedMaskForTarget.OR(new UpdateMask(192, new uint[] { 0x00000000u, 0x00000000u, 0x00000000u, 0x04000000u, 0x0007FF80u, 0x00000000u }));
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Empath))
allowedMaskForTarget |= new UpdateMask(192, new uint[] { 0x00000000u, 0x1E000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00007F80u });
allowedMaskForTarget.OR(new UpdateMask(192, new uint[] { 0x00000000u, 0x1E000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00007F80u }));
}
public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags)
{
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
changesMask &= new UpdateMask(192, new uint[] { 0xFFFFDFFFu, 0xE1FF7FFFu, 0x001EFFFFu, 0xFBFFFF81u, 0x03F8007Fu, 0xE0000000u });
changesMask.AND(new UpdateMask(192, new uint[] { 0xFFFFDFFFu, 0xE1FF7FFFu, 0x001EFFFFu, 0xFBFFFF81u, 0x03F8007Fu, 0xE0000000u }));
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag.UnitAll))
changesMask &= new UpdateMask(192, new uint[] { 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFBFFFFFFu, 0xFFF8007Fu, 0xFFFFFFFFu });
changesMask.AND(new UpdateMask(192, new uint[] { 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFBFFFFFFu, 0xFFF8007Fu, 0xFFFFFFFFu }));
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Empath))
changesMask &= new UpdateMask(192, new uint[] { 0xFFFFFFFFu, 0xE1FFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFF807Fu });
changesMask.AND(new UpdateMask(192, new uint[] { 0xFFFFFFFFu, 0xE1FFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFF807Fu }));
}
public void WriteUpdate(WorldPacket data, UpdateMask changesMask, bool ignoreNestedChangesMask, Unit owner, Player receiver)
@@ -1903,7 +1906,7 @@ namespace Game.Entities
}
if (changesMask[101])
{
data.WriteFloat(ManaCostModifierModifier);
data.WriteFloat(ManaCostMultiplier);
}
if (changesMask[102])
{
@@ -2058,7 +2061,7 @@ namespace Game.Entities
}
if (changesMask[182 + i])
{
data.WriteInt32(PowerCostModifier[i]);
data.WriteInt32(ManaCostModifier[i]);
}
}
}
@@ -2163,7 +2166,7 @@ namespace Game.Entities
ClearChangesMask(Lifesteal);
ClearChangesMask(MinRangedDamage);
ClearChangesMask(MaxRangedDamage);
ClearChangesMask(ManaCostModifierModifier);
ClearChangesMask(ManaCostMultiplier);
ClearChangesMask(MaxHealthModifier);
ClearChangesMask(HoverHeight);
ClearChangesMask(MinItemLevelCutoff);
@@ -2193,7 +2196,7 @@ namespace Game.Entities
ClearChangesMask(StatNegBuff);
ClearChangesMask(Resistances);
ClearChangesMask(BonusResistanceMods);
ClearChangesMask(PowerCostModifier);
ClearChangesMask(ManaCostModifier);
_changesMask.ResetAll();
}
@@ -2607,13 +2610,13 @@ namespace Game.Entities
public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.PartyMember))
allowedMaskForTarget |= new UpdateMask(185, new[] { 0x00000012u, 0xFFFFFFFCu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000000u });
allowedMaskForTarget.OR(new UpdateMask(185, new[] { 0x00000012u, 0xFFFFFFFCu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000000u }));
}
void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags)
{
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag.PartyMember))
changesMask &= new UpdateMask(185, new uint[] { 0xFFFFFFEDu, 0x00000003u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFFFu });
changesMask.AND(new UpdateMask(185, new uint[] { 0xFFFFFFEDu, 0x00000003u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFFFu }));
}
public void WriteUpdate(WorldPacket data, UpdateMask changesMask, bool ignoreNestedChangesMask, Player owner, Player receiver)
+1 -1
View File
@@ -5780,7 +5780,7 @@ namespace Game.Entities
SetUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.ModTargetResistance), 0);
SetUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.ModTargetPhysicalResistance), 0);
for (int i = 0; i < (int)SpellSchools.Max; ++i)
SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.PowerCostModifier, i), 0);
SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.ManaCostModifier, i), 0);
// Reset no reagent cost field
SetNoRegentCostMask(new Framework.Dynamic.FlagArray128());
+1 -1
View File
@@ -929,7 +929,7 @@ namespace Game.Entities
return Math.Max(resistMech, 0);
}
public void ApplyModPowerCostModifier(SpellSchools school, int mod, bool apply) { ApplyModUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.PowerCostModifier, (int)school), mod, apply); }
public void ApplyModManaCostModifier(SpellSchools school, int mod, bool apply) { ApplyModUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.ManaCostModifier, (int)school), mod, apply); }
}
public partial class Player
+5 -1
View File
@@ -4141,11 +4141,15 @@ namespace Game.Spells
if (!mode.HasAnyFlag(AuraEffectHandleModes.ChangeAmountMask))
return;
// handled in SpellInfo::CalcPowerCost, this is only for client UI
if ((GetMiscValueB() & (1 << (int)PowerType.Mana)) == 0)
return;
Unit target = aurApp.GetTarget();
for (int i = 0; i < (int)SpellSchools.Max; ++i)
if (Convert.ToBoolean(GetMiscValue() & (1 << i)))
target.ApplyModPowerCostModifier((SpellSchools)i, GetAmount(), apply);
target.ApplyModManaCostModifier((SpellSchools)i, GetAmount(), apply);
}
[AuraEffectHandler(AuraType.ArenaPreparation)]
+1 -1
View File
@@ -2774,7 +2774,7 @@ namespace Game.Spells
}
if (power.PowerType == PowerType.Mana)
flatMod *= (int)(1.0f + caster.m_unitData.ManaCostModifierModifier);
flatMod *= (int)(1.0f + caster.m_unitData.ManaCostMultiplier); // this is wrong
powerCost += flatMod;
}