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) 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); AddDynamicUpdateFieldValue(m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.SelectedEssences), selectedEssences);
} }
@@ -377,7 +377,7 @@ namespace Game.Entities
public SelectedAzeriteEssences GetSelectedAzeriteEssences() public SelectedAzeriteEssences GetSelectedAzeriteEssences()
{ {
foreach (SelectedAzeriteEssences essences in m_azeriteItemData.SelectedEssences) foreach (SelectedAzeriteEssences essences in m_azeriteItemData.SelectedEssences)
if (essences.Enabled != 0) if (essences.Enabled)
return essences; return essences;
return null; return null;
@@ -387,17 +387,17 @@ namespace Game.Entities
{ {
SelectedAzeriteEssences selectedEssences = new SelectedAzeriteEssences(); SelectedAzeriteEssences selectedEssences = new SelectedAzeriteEssences();
selectedEssences.ModifyValue(selectedEssences.SpecializationID).SetValue(specializationId); 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); AddDynamicUpdateFieldValue(m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.SelectedEssences), selectedEssences);
} }
public void SetSelectedAzeriteEssences(uint specializationId) 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) if (index >= 0)
{ {
SelectedAzeriteEssences selectedEssences = m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.SelectedEssences, index); 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 => index = m_azeriteItemData.SelectedEssences.FindIndexIf(essences =>
@@ -408,7 +408,7 @@ namespace Game.Entities
if (index >= 0) if (index >= 0)
{ {
SelectedAzeriteEssences selectedEssences = m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.SelectedEssences, index); 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 else
CreateSelectedAzeriteEssences(specializationId); CreateSelectedAzeriteEssences(specializationId);
@@ -417,7 +417,7 @@ namespace Game.Entities
public void SetSelectedAzeriteEssence(int slot, uint azeriteEssenceId) public void SetSelectedAzeriteEssence(int slot, uint azeriteEssenceId)
{ {
//ASSERT(slot < MAX_AZERITE_ESSENCE_SLOT); //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); //ASSERT(index >= 0);
SelectedAzeriteEssences selectedEssences = m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.SelectedEssences, index); SelectedAzeriteEssences selectedEssences = m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.SelectedEssences, index);
SetUpdateFieldValue(ref selectedEssences.ModifyValue(selectedEssences.AzeriteEssenceID, slot), azeriteEssenceId); SetUpdateFieldValue(ref selectedEssences.ModifyValue(selectedEssences.AzeriteEssenceID, slot), azeriteEssenceId);
@@ -755,8 +755,8 @@ namespace Game.Entities
public class SelectedAzeriteEssences : BaseUpdateData<AzeriteItem> public class SelectedAzeriteEssences : BaseUpdateData<AzeriteItem>
{ {
public UpdateField<uint> SpecializationID = new UpdateField<uint>(0, 1); public UpdateField<bool> Enabled = new UpdateField<bool>(0, 1);
public UpdateField<uint> Enabled = new UpdateField<uint>(0, 2); public UpdateField<uint> SpecializationID = new UpdateField<uint>(0, 2);
public UpdateFieldArray<uint> AzeriteEssenceID = new UpdateFieldArray<uint>(4, 3, 4); public UpdateFieldArray<uint> AzeriteEssenceID = new UpdateFieldArray<uint>(4, 3, 4);
public SelectedAzeriteEssences() : base(8) { } public SelectedAzeriteEssences() : base(8) { }
@@ -768,7 +768,7 @@ namespace Game.Entities
data.WriteUInt32(AzeriteEssenceID[i]); data.WriteUInt32(AzeriteEssenceID[i]);
} }
data.WriteUInt32(SpecializationID); data.WriteUInt32(SpecializationID);
data.WriteBits(Enabled, 1); data.WriteBit(Enabled);
data.FlushBits(); data.FlushBits();
} }
@@ -782,16 +782,19 @@ namespace Game.Entities
if (changesMask.GetBlock(0) != 0) if (changesMask.GetBlock(0) != 0)
data.WriteBits(changesMask.GetBlock(0), 32); data.WriteBits(changesMask.GetBlock(0), 32);
data.FlushBits();
if (changesMask[0]) if (changesMask[0])
{ {
if (changesMask[1]) if (changesMask[1])
{ {
data.WriteUInt32(SpecializationID); data.WriteBit(Enabled);
} }
}
data.FlushBits();
if (changesMask[0])
{
if (changesMask[2]) if (changesMask[2])
{ {
data.WriteBits(Enabled, 1); data.WriteUInt32(SpecializationID);
} }
} }
if (changesMask[3]) if (changesMask[3])
@@ -810,8 +813,8 @@ namespace Game.Entities
public override void ClearChangesMask() public override void ClearChangesMask()
{ {
ClearChangesMask(SpecializationID);
ClearChangesMask(Enabled); ClearChangesMask(Enabled);
ClearChangesMask(SpecializationID);
ClearChangesMask(AzeriteEssenceID); ClearChangesMask(AzeriteEssenceID);
_changesMask.ResetAll(); _changesMask.ResetAll();
} }
@@ -852,7 +855,6 @@ namespace Game.Entities
{ {
data.WriteUInt32(UnlockedEssenceMilestones[i]); data.WriteUInt32(UnlockedEssenceMilestones[i]);
} }
data.FlushBits();
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner)) if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
{ {
data.WriteBit(Enabled); data.WriteBit(Enabled);
@@ -2584,7 +2586,6 @@ namespace Game.Entities
{ {
ArenaCooldowns[i].WriteCreate(data, owner, receiver); ArenaCooldowns[i].WriteCreate(data, owner, receiver);
} }
data.FlushBits();
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.PartyMember)) if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.PartyMember))
{ {
data.WriteBit((bool)HasQuestSession); data.WriteBit((bool)HasQuestSession);
@@ -5353,7 +5354,6 @@ namespace Game.Entities
data.WriteVector2(Points[i]); data.WriteVector2(Points[i]);
} }
data.WriteUInt32(ParameterCurve); data.WriteUInt32(ParameterCurve);
data.FlushBits();
data.WriteBit((bool)OverrideActive); data.WriteBit((bool)OverrideActive);
data.FlushBits(); data.FlushBits();
} }
@@ -5625,7 +5625,7 @@ namespace Game.Entities
public uint CreatureID; public uint CreatureID;
public uint CreatureDisplayInfoID; public uint CreatureDisplayInfoID;
public ObjectGuid ActorGUID; public ObjectGuid ActorGUID;
public int Field_18; public int Id;
public ConversationActorType Type; public ConversationActorType Type;
public uint NoActorObject; public uint NoActorObject;
@@ -5634,7 +5634,7 @@ namespace Game.Entities
data.WriteUInt32(CreatureID); data.WriteUInt32(CreatureID);
data.WriteUInt32(CreatureDisplayInfoID); data.WriteUInt32(CreatureDisplayInfoID);
data.WritePackedGuid(ActorGUID); data.WritePackedGuid(ActorGUID);
data.WriteInt32(Field_18); data.WriteInt32(Id);
data.WriteBits(Type, 1); data.WriteBits(Type, 1);
data.WriteBits(NoActorObject, 1); data.WriteBits(NoActorObject, 1);
data.FlushBits(); data.FlushBits();
@@ -5645,7 +5645,7 @@ namespace Game.Entities
data.WriteUInt32(CreatureID); data.WriteUInt32(CreatureID);
data.WriteUInt32(CreatureDisplayInfoID); data.WriteUInt32(CreatureDisplayInfoID);
data.WritePackedGuid(ActorGUID); data.WritePackedGuid(ActorGUID);
data.WriteInt32(Field_18); data.WriteInt32(Id);
data.WriteBits(Type, 1); data.WriteBits(Type, 1);
data.WriteBits(NoActorObject, 1); data.WriteBits(NoActorObject, 1);
data.FlushBits(); data.FlushBits();
@@ -5657,7 +5657,7 @@ namespace Game.Entities
public UpdateField<List<ConversationLine>> Lines = new UpdateField<List<ConversationLine>>(0, 1); public UpdateField<List<ConversationLine>> Lines = new UpdateField<List<ConversationLine>>(0, 1);
public DynamicUpdateField<ConversationActor> Actors = new DynamicUpdateField<ConversationActor>(0, 2); public DynamicUpdateField<ConversationActor> Actors = new DynamicUpdateField<ConversationActor>(0, 2);
public UpdateField<uint> LastLineEndTime = new UpdateField<uint>(0, 3); 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) { } public ConversationData() : base(0, TypeId.Conversation, 5) { }
@@ -5665,7 +5665,7 @@ namespace Game.Entities
{ {
data.WriteInt32(((List<ConversationLine>)Lines).Count); data.WriteInt32(((List<ConversationLine>)Lines).Count);
data.WriteUInt32(LastLineEndTime); data.WriteUInt32(LastLineEndTime);
data.WriteUInt32(Field_1C); data.WriteUInt32(Progress);
for (int i = 0; i < ((List<ConversationLine>)Lines).Count; ++i) for (int i = 0; i < ((List<ConversationLine>)Lines).Count; ++i)
{ {
((List<ConversationLine>)Lines)[i].WriteCreate(data, owner, receiver); ((List<ConversationLine>)Lines)[i].WriteCreate(data, owner, receiver);
@@ -5728,7 +5728,7 @@ namespace Game.Entities
} }
if (_changesMask[4]) if (_changesMask[4])
{ {
data.WriteUInt32(Field_1C); data.WriteUInt32(Progress);
} }
} }
} }
@@ -5738,7 +5738,7 @@ namespace Game.Entities
ClearChangesMask(Lines); ClearChangesMask(Lines);
ClearChangesMask(Actors); ClearChangesMask(Actors);
ClearChangesMask(LastLineEndTime); ClearChangesMask(LastLineEndTime);
ClearChangesMask(Field_1C); ClearChangesMask(Progress);
_changesMask.ResetAll(); _changesMask.ResetAll();
} }
} }