From f75711f87d6580ea784d23fb6c05f76a9d367fd1 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Mon, 8 Mar 2021 14:34:25 -0500 Subject: [PATCH] Core/PacketIO: Fix structure for SelectedAzeriteEssences and name unknown conversation fields Port From (https://github.com/TrinityCore/TrinityCore/commit/d80593061fb19cf5b131812d9c548d911f4d630f) --- Source/Game/Entities/Item/AzeriteItem.cs | 14 ++++---- .../Entities/Object/Update/UpdateFields.cs | 34 +++++++++---------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/Source/Game/Entities/Item/AzeriteItem.cs b/Source/Game/Entities/Item/AzeriteItem.cs index 0361f5a0d..cfcddbc54 100644 --- a/Source/Game/Entities/Item/AzeriteItem.cs +++ b/Source/Game/Entities/Item/AzeriteItem.cs @@ -175,7 +175,7 @@ namespace Game.Entities } if (owner != null && owner.GetPrimarySpecialization() == selectedEssenceData.SpecializationId) - selectedEssences.ModifyValue(selectedEssences.Enabled).SetValue(1); + selectedEssences.ModifyValue(selectedEssences.Enabled).SetValue(true); AddDynamicUpdateFieldValue(m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.SelectedEssences), selectedEssences); } @@ -377,7 +377,7 @@ namespace Game.Entities public SelectedAzeriteEssences GetSelectedAzeriteEssences() { foreach (SelectedAzeriteEssences essences in m_azeriteItemData.SelectedEssences) - if (essences.Enabled != 0) + if (essences.Enabled) return essences; return null; @@ -387,17 +387,17 @@ namespace Game.Entities { SelectedAzeriteEssences selectedEssences = new SelectedAzeriteEssences(); selectedEssences.ModifyValue(selectedEssences.SpecializationID).SetValue(specializationId); - selectedEssences.ModifyValue(selectedEssences.Enabled).SetValue(1); + selectedEssences.ModifyValue(selectedEssences.Enabled).SetValue(true); AddDynamicUpdateFieldValue(m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.SelectedEssences), selectedEssences); } public void SetSelectedAzeriteEssences(uint specializationId) { - int index = m_azeriteItemData.SelectedEssences.FindIndexIf(essences => { return essences.Enabled == 1; }); + int index = m_azeriteItemData.SelectedEssences.FindIndexIf(essences => { return essences.Enabled; }); if (index >= 0) { SelectedAzeriteEssences selectedEssences = m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.SelectedEssences, index); - SetUpdateFieldValue(selectedEssences.ModifyValue(selectedEssences.Enabled), 0u); + SetUpdateFieldValue(selectedEssences.ModifyValue(selectedEssences.Enabled), false); } index = m_azeriteItemData.SelectedEssences.FindIndexIf(essences => @@ -408,7 +408,7 @@ namespace Game.Entities if (index >= 0) { SelectedAzeriteEssences selectedEssences = m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.SelectedEssences, index); - SetUpdateFieldValue(selectedEssences.ModifyValue(selectedEssences.Enabled), 1u); + SetUpdateFieldValue(selectedEssences.ModifyValue(selectedEssences.Enabled), true); } else CreateSelectedAzeriteEssences(specializationId); @@ -417,7 +417,7 @@ namespace Game.Entities public void SetSelectedAzeriteEssence(int slot, uint azeriteEssenceId) { //ASSERT(slot < MAX_AZERITE_ESSENCE_SLOT); - int index = m_azeriteItemData.SelectedEssences.FindIndexIf(essences => { return essences.Enabled == 1; }); + int index = m_azeriteItemData.SelectedEssences.FindIndexIf(essences => { return essences.Enabled; }); //ASSERT(index >= 0); SelectedAzeriteEssences selectedEssences = m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.SelectedEssences, index); SetUpdateFieldValue(ref selectedEssences.ModifyValue(selectedEssences.AzeriteEssenceID, slot), azeriteEssenceId); diff --git a/Source/Game/Entities/Object/Update/UpdateFields.cs b/Source/Game/Entities/Object/Update/UpdateFields.cs index 797e5044d..5fe3bd4fe 100644 --- a/Source/Game/Entities/Object/Update/UpdateFields.cs +++ b/Source/Game/Entities/Object/Update/UpdateFields.cs @@ -755,8 +755,8 @@ namespace Game.Entities public class SelectedAzeriteEssences : BaseUpdateData { - public UpdateField SpecializationID = new UpdateField(0, 1); - public UpdateField Enabled = new UpdateField(0, 2); + public UpdateField Enabled = new UpdateField(0, 1); + public UpdateField SpecializationID = new UpdateField(0, 2); public UpdateFieldArray AzeriteEssenceID = new UpdateFieldArray(4, 3, 4); public SelectedAzeriteEssences() : base(8) { } @@ -768,7 +768,7 @@ namespace Game.Entities data.WriteUInt32(AzeriteEssenceID[i]); } data.WriteUInt32(SpecializationID); - data.WriteBits(Enabled, 1); + data.WriteBit(Enabled); data.FlushBits(); } @@ -782,16 +782,19 @@ namespace Game.Entities if (changesMask.GetBlock(0) != 0) data.WriteBits(changesMask.GetBlock(0), 32); - data.FlushBits(); if (changesMask[0]) { if (changesMask[1]) { - data.WriteUInt32(SpecializationID); + data.WriteBit(Enabled); } + } + data.FlushBits(); + if (changesMask[0]) + { if (changesMask[2]) { - data.WriteBits(Enabled, 1); + data.WriteUInt32(SpecializationID); } } if (changesMask[3]) @@ -810,8 +813,8 @@ namespace Game.Entities public override void ClearChangesMask() { - ClearChangesMask(SpecializationID); ClearChangesMask(Enabled); + ClearChangesMask(SpecializationID); ClearChangesMask(AzeriteEssenceID); _changesMask.ResetAll(); } @@ -852,7 +855,6 @@ namespace Game.Entities { data.WriteUInt32(UnlockedEssenceMilestones[i]); } - data.FlushBits(); if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner)) { data.WriteBit(Enabled); @@ -2584,7 +2586,6 @@ namespace Game.Entities { ArenaCooldowns[i].WriteCreate(data, owner, receiver); } - data.FlushBits(); if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.PartyMember)) { data.WriteBit((bool)HasQuestSession); @@ -5353,7 +5354,6 @@ namespace Game.Entities data.WriteVector2(Points[i]); } data.WriteUInt32(ParameterCurve); - data.FlushBits(); data.WriteBit((bool)OverrideActive); data.FlushBits(); } @@ -5625,7 +5625,7 @@ namespace Game.Entities public uint CreatureID; public uint CreatureDisplayInfoID; public ObjectGuid ActorGUID; - public int Field_18; + public int Id; public ConversationActorType Type; public uint NoActorObject; @@ -5634,7 +5634,7 @@ namespace Game.Entities data.WriteUInt32(CreatureID); data.WriteUInt32(CreatureDisplayInfoID); data.WritePackedGuid(ActorGUID); - data.WriteInt32(Field_18); + data.WriteInt32(Id); data.WriteBits(Type, 1); data.WriteBits(NoActorObject, 1); data.FlushBits(); @@ -5645,7 +5645,7 @@ namespace Game.Entities data.WriteUInt32(CreatureID); data.WriteUInt32(CreatureDisplayInfoID); data.WritePackedGuid(ActorGUID); - data.WriteInt32(Field_18); + data.WriteInt32(Id); data.WriteBits(Type, 1); data.WriteBits(NoActorObject, 1); data.FlushBits(); @@ -5657,7 +5657,7 @@ namespace Game.Entities public UpdateField> Lines = new UpdateField>(0, 1); public DynamicUpdateField Actors = new DynamicUpdateField(0, 2); public UpdateField LastLineEndTime = new UpdateField(0, 3); - public UpdateField Field_1C = new UpdateField(0, 4); + public UpdateField Progress = new UpdateField(0, 4); public ConversationData() : base(0, TypeId.Conversation, 5) { } @@ -5665,7 +5665,7 @@ namespace Game.Entities { data.WriteInt32(((List)Lines).Count); data.WriteUInt32(LastLineEndTime); - data.WriteUInt32(Field_1C); + data.WriteUInt32(Progress); for (int i = 0; i < ((List)Lines).Count; ++i) { ((List)Lines)[i].WriteCreate(data, owner, receiver); @@ -5728,7 +5728,7 @@ namespace Game.Entities } if (_changesMask[4]) { - data.WriteUInt32(Field_1C); + data.WriteUInt32(Progress); } } } @@ -5738,7 +5738,7 @@ namespace Game.Entities ClearChangesMask(Lines); ClearChangesMask(Actors); ClearChangesMask(LastLineEndTime); - ClearChangesMask(Field_1C); + ClearChangesMask(Progress); _changesMask.ResetAll(); } }