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) public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{ {
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner)) 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) public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags)
{ {
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner)) 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) 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.WriteUInt32(UnlockedEssenceMilestones[i]);
} }
data.FlushBits(); data.FlushBits();
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
{
data.WriteBit(Enabled); data.WriteBit(Enabled);
}
for (int i = 0; i < SelectedEssences.Size(); ++i) for (int i = 0; i < SelectedEssences.Size(); ++i)
{ {
SelectedEssences[i].WriteCreate(data, owner, receiver); SelectedEssences[i].WriteCreate(data, owner, receiver);
@@ -862,7 +865,7 @@ namespace Game.Entities
public void WriteUpdate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, AzeriteItem owner, Player receiver) 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); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver);
} }
@@ -870,13 +873,13 @@ namespace Game.Entities
public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags) public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{ {
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner)) 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) public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags)
{ {
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner)) 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) 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> Lifesteal = new UpdateField<float>(96, 98);
public UpdateField<float> MinRangedDamage = new UpdateField<float>(96, 99); public UpdateField<float> MinRangedDamage = new UpdateField<float>(96, 99);
public UpdateField<float> MaxRangedDamage = new UpdateField<float>(96, 100); 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> MaxHealthModifier = new UpdateField<float>(96, 102);
public UpdateField<float> HoverHeight = new UpdateField<float>(96, 103); public UpdateField<float> HoverHeight = new UpdateField<float>(96, 103);
public UpdateField<uint> MinItemLevelCutoff = new UpdateField<uint>(96, 104); 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> StatNegBuff = new UpdateFieldArray<int>(4, 154, 163);
public UpdateFieldArray<int> Resistances = new UpdateFieldArray<int>(7, 167, 168); public UpdateFieldArray<int> Resistances = new UpdateFieldArray<int>(7, 167, 168);
public UpdateFieldArray<int> BonusResistanceMods = new UpdateFieldArray<int>(7, 167, 175); 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) { } public UnitData() : base(0, TypeId.Unit, 189) { }
@@ -1356,7 +1359,7 @@ namespace Game.Entities
for (int i = 0; i < 7; ++i) for (int i = 0; i < 7; ++i)
{ {
data.WriteInt32(BonusResistanceMods[i]); data.WriteInt32(BonusResistanceMods[i]);
data.WriteInt32(PowerCostModifier[i]); data.WriteInt32(ManaCostModifier[i]);
} }
} }
data.WriteUInt32(BaseMana); data.WriteUInt32(BaseMana);
@@ -1384,7 +1387,7 @@ namespace Game.Entities
data.WriteFloat(Lifesteal); data.WriteFloat(Lifesteal);
data.WriteFloat(MinRangedDamage); data.WriteFloat(MinRangedDamage);
data.WriteFloat(MaxRangedDamage); data.WriteFloat(MaxRangedDamage);
data.WriteFloat(ManaCostModifierModifier); data.WriteFloat(ManaCostMultiplier);
data.WriteFloat(MaxHealthModifier); data.WriteFloat(MaxHealthModifier);
} }
data.WriteFloat(HoverHeight); data.WriteFloat(HoverHeight);
@@ -1427,21 +1430,21 @@ namespace Game.Entities
public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags) public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{ {
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner)) 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)) 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)) 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) public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags)
{ {
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner)) 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)) 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)) 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) public void WriteUpdate(WorldPacket data, UpdateMask changesMask, bool ignoreNestedChangesMask, Unit owner, Player receiver)
@@ -1903,7 +1906,7 @@ namespace Game.Entities
} }
if (changesMask[101]) if (changesMask[101])
{ {
data.WriteFloat(ManaCostModifierModifier); data.WriteFloat(ManaCostMultiplier);
} }
if (changesMask[102]) if (changesMask[102])
{ {
@@ -2058,7 +2061,7 @@ namespace Game.Entities
} }
if (changesMask[182 + i]) if (changesMask[182 + i])
{ {
data.WriteInt32(PowerCostModifier[i]); data.WriteInt32(ManaCostModifier[i]);
} }
} }
} }
@@ -2163,7 +2166,7 @@ namespace Game.Entities
ClearChangesMask(Lifesteal); ClearChangesMask(Lifesteal);
ClearChangesMask(MinRangedDamage); ClearChangesMask(MinRangedDamage);
ClearChangesMask(MaxRangedDamage); ClearChangesMask(MaxRangedDamage);
ClearChangesMask(ManaCostModifierModifier); ClearChangesMask(ManaCostMultiplier);
ClearChangesMask(MaxHealthModifier); ClearChangesMask(MaxHealthModifier);
ClearChangesMask(HoverHeight); ClearChangesMask(HoverHeight);
ClearChangesMask(MinItemLevelCutoff); ClearChangesMask(MinItemLevelCutoff);
@@ -2193,7 +2196,7 @@ namespace Game.Entities
ClearChangesMask(StatNegBuff); ClearChangesMask(StatNegBuff);
ClearChangesMask(Resistances); ClearChangesMask(Resistances);
ClearChangesMask(BonusResistanceMods); ClearChangesMask(BonusResistanceMods);
ClearChangesMask(PowerCostModifier); ClearChangesMask(ManaCostModifier);
_changesMask.ResetAll(); _changesMask.ResetAll();
} }
@@ -2607,13 +2610,13 @@ namespace Game.Entities
public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags) public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{ {
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.PartyMember)) 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) void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags)
{ {
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag.PartyMember)) 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) 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.ModTargetResistance), 0);
SetUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.ModTargetPhysicalResistance), 0); SetUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.ModTargetPhysicalResistance), 0);
for (int i = 0; i < (int)SpellSchools.Max; ++i) 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 // Reset no reagent cost field
SetNoRegentCostMask(new Framework.Dynamic.FlagArray128()); SetNoRegentCostMask(new Framework.Dynamic.FlagArray128());
+1 -1
View File
@@ -929,7 +929,7 @@ namespace Game.Entities
return Math.Max(resistMech, 0); 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 public partial class Player
+5 -1
View File
@@ -4141,11 +4141,15 @@ namespace Game.Spells
if (!mode.HasAnyFlag(AuraEffectHandleModes.ChangeAmountMask)) if (!mode.HasAnyFlag(AuraEffectHandleModes.ChangeAmountMask))
return; return;
// handled in SpellInfo::CalcPowerCost, this is only for client UI
if ((GetMiscValueB() & (1 << (int)PowerType.Mana)) == 0)
return;
Unit target = aurApp.GetTarget(); Unit target = aurApp.GetTarget();
for (int i = 0; i < (int)SpellSchools.Max; ++i) for (int i = 0; i < (int)SpellSchools.Max; ++i)
if (Convert.ToBoolean(GetMiscValue() & (1 << i))) if (Convert.ToBoolean(GetMiscValue() & (1 << i)))
target.ApplyModPowerCostModifier((SpellSchools)i, GetAmount(), apply); target.ApplyModManaCostModifier((SpellSchools)i, GetAmount(), apply);
} }
[AuraEffectHandler(AuraType.ArenaPreparation)] [AuraEffectHandler(AuraType.ArenaPreparation)]
+1 -1
View File
@@ -2774,7 +2774,7 @@ namespace Game.Spells
} }
if (power.PowerType == PowerType.Mana) 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; powerCost += flatMod;
} }