Core/PacketIO: Fix structure for SelectedAzeriteEssences and name unknown conversation fields

Port From (https://github.com/TrinityCore/TrinityCore/commit/d80593061fb19cf5b131812d9c548d911f4d630f)
This commit is contained in:
hondacrx
2021-03-08 14:34:25 -05:00
parent cdfba27105
commit f75711f87d
2 changed files with 24 additions and 24 deletions
+7 -7
View File
@@ -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);
@@ -755,8 +755,8 @@ namespace Game.Entities
public class SelectedAzeriteEssences : BaseUpdateData<AzeriteItem>
{
public UpdateField<uint> SpecializationID = new UpdateField<uint>(0, 1);
public UpdateField<uint> Enabled = new UpdateField<uint>(0, 2);
public UpdateField<bool> Enabled = new UpdateField<bool>(0, 1);
public UpdateField<uint> SpecializationID = new UpdateField<uint>(0, 2);
public UpdateFieldArray<uint> AzeriteEssenceID = new UpdateFieldArray<uint>(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<List<ConversationLine>> Lines = new UpdateField<List<ConversationLine>>(0, 1);
public DynamicUpdateField<ConversationActor> Actors = new DynamicUpdateField<ConversationActor>(0, 2);
public UpdateField<uint> LastLineEndTime = new UpdateField<uint>(0, 3);
public UpdateField<uint> Field_1C = new UpdateField<uint>(0, 4);
public UpdateField<uint> Progress = new UpdateField<uint>(0, 4);
public ConversationData() : base(0, TypeId.Conversation, 5) { }
@@ -5665,7 +5665,7 @@ namespace Game.Entities
{
data.WriteInt32(((List<ConversationLine>)Lines).Count);
data.WriteUInt32(LastLineEndTime);
data.WriteUInt32(Field_1C);
data.WriteUInt32(Progress);
for (int i = 0; i < ((List<ConversationLine>)Lines).Count; ++i)
{
((List<ConversationLine>)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();
}
}