Core: Updated to 11.1.5
Port From (https://github.com/TrinityCore/TrinityCore/commit/f9bf082be962d45de79f936d625f644253e9b810)
This commit is contained in:
@@ -287,6 +287,7 @@ namespace Game.Misc
|
||||
gossipText.QuestFlags = (uint)quest.Flags;
|
||||
gossipText.QuestFlagsEx = (uint)quest.FlagsEx;
|
||||
gossipText.QuestFlagsEx2 = (uint)quest.FlagsEx2;
|
||||
gossipText.QuestFlagsEx3 = quest.FlagsEx3;
|
||||
gossipText.Repeatable = quest.IsTurnIn() && quest.IsRepeatable() && !quest.IsDailyOrWeekly() && !quest.IsMonthly();
|
||||
gossipText.ResetByScheduler = quest.IsResetByScheduler();
|
||||
gossipText.Important = quest.IsImportant();
|
||||
@@ -383,6 +384,7 @@ namespace Game.Misc
|
||||
text.QuestFlags = (uint)quest.Flags;
|
||||
text.QuestFlagsEx = (uint)quest.FlagsEx;
|
||||
text.QuestFlagsEx2 = (uint)quest.FlagsEx2;
|
||||
text.QuestFlagsEx3 = quest.FlagsEx3;
|
||||
text.Repeatable = quest.IsTurnIn() && quest.IsRepeatable() && !quest.IsDailyOrWeekly() && !quest.IsMonthly();
|
||||
text.ResetByScheduler = quest.IsResetByScheduler();
|
||||
text.Important = quest.IsImportant();
|
||||
@@ -464,6 +466,7 @@ namespace Game.Misc
|
||||
packet.QuestFlags[0] = (uint)(quest.Flags & (WorldConfig.GetBoolValue(WorldCfg.QuestIgnoreAutoAccept) ? ~QuestFlags.AutoAccept : ~QuestFlags.None));
|
||||
packet.QuestFlags[1] = (uint)quest.FlagsEx;
|
||||
packet.QuestFlags[2] = (uint)quest.FlagsEx2;
|
||||
packet.QuestFlags[3] = quest.FlagsEx3;
|
||||
packet.SuggestedPartyMembers = quest.SuggestedPlayers;
|
||||
|
||||
// Is there a better way? what about game objects?
|
||||
@@ -576,6 +579,7 @@ namespace Game.Misc
|
||||
offer.QuestFlags[0] = (uint)quest.Flags;
|
||||
offer.QuestFlags[1] = (uint)quest.FlagsEx;
|
||||
offer.QuestFlags[2] = (uint)quest.FlagsEx2;
|
||||
offer.QuestFlags[3] = quest.FlagsEx3;
|
||||
|
||||
packet.PortraitTurnIn = quest.QuestTurnInPortrait;
|
||||
packet.PortraitGiver = quest.QuestGiverPortrait;
|
||||
@@ -646,6 +650,7 @@ namespace Game.Misc
|
||||
packet.QuestFlags[0] = (uint)quest.Flags;
|
||||
packet.QuestFlags[1] = (uint)quest.FlagsEx;
|
||||
packet.QuestFlags[2] = (uint)quest.FlagsEx2;
|
||||
packet.QuestFlags[3] = quest.FlagsEx3;
|
||||
packet.SuggestPartyMembers = quest.SuggestedPlayers;
|
||||
packet.QuestInfoID = (int)quest.QuestInfoID;
|
||||
|
||||
|
||||
@@ -3794,7 +3794,7 @@ namespace Game.Entities
|
||||
|
||||
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
|
||||
{
|
||||
data.WriteBits(Type, 1);
|
||||
data.WriteUInt32(Type);
|
||||
if (Type == 1)
|
||||
{
|
||||
data.WriteFloat(FloatValue);
|
||||
@@ -3803,11 +3803,10 @@ namespace Game.Entities
|
||||
{
|
||||
data.WriteInt64(Int64Value);
|
||||
}
|
||||
data.FlushBits();
|
||||
}
|
||||
public void WriteUpdate(WorldPacket data, bool ignoreChangesMask, Player owner, Player receiver)
|
||||
{
|
||||
data.WriteBits(Type, 1);
|
||||
data.WriteUInt32(Type);
|
||||
if (Type == 1)
|
||||
{
|
||||
data.WriteFloat(FloatValue);
|
||||
@@ -3816,7 +3815,6 @@ namespace Game.Entities
|
||||
{
|
||||
data.WriteInt64(Int64Value);
|
||||
}
|
||||
data.FlushBits();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5637,10 +5635,9 @@ namespace Game.Entities
|
||||
|
||||
public class ActivePlayerData : HasChangesMask
|
||||
{
|
||||
public static int QuestCompletedBitsSize;
|
||||
public static int QuestCompletedBitsPerBlock;
|
||||
|
||||
static int changeMaskLength = 1517;
|
||||
static int changeMaskLength = 516;
|
||||
|
||||
public UpdateField<bool> BackpackAutoSortDisabled = new(0, 1);
|
||||
public UpdateField<bool> BackpackSellJunkDisabled = new(0, 2);
|
||||
@@ -5652,6 +5649,8 @@ namespace Game.Entities
|
||||
public UpdateFieldArray<DynamicUpdateField<uint>> ResearchSiteProgress = new(1, 43, 44);
|
||||
public UpdateFieldArray<DynamicUpdateField<Research>> Research = new(1, 45, 46);
|
||||
public DynamicUpdateField<ulong> KnownTitles = new(0, 7);
|
||||
public DynamicUpdateField<PlayerDataElement> CharacterDataElements = new(0, 8);
|
||||
public DynamicUpdateField<PlayerDataElement> AccountDataElements = new(0, 9);
|
||||
public DynamicUpdateField<uint> DailyQuestsCompleted = new(0, 11);
|
||||
public DynamicUpdateField<int> AvailableQuestLineXQuestIDs = new(0, 12);
|
||||
public DynamicUpdateField<uint> Heirlooms = new(0, 13);
|
||||
@@ -5677,8 +5676,6 @@ namespace Game.Entities
|
||||
public DynamicUpdateField<CategoryCooldownMod> CategoryCooldownMods = new(32, 37);
|
||||
public DynamicUpdateField<WeeklySpellUse> WeeklySpellUses = new(32, 38);
|
||||
public DynamicUpdateField<CollectableSourceTrackedData> TrackedCollectableSources = new(32, 39);
|
||||
public DynamicUpdateField<PlayerDataElement> CharacterDataElements = new(0, 8);
|
||||
public DynamicUpdateField<PlayerDataElement> AccountDataElements = new(0, 9);
|
||||
public DynamicUpdateField<PVPInfo> PvpInfo = new(0, 10);
|
||||
public DynamicUpdateField<CharacterRestriction> CharacterRestrictions = new(0, 23);
|
||||
public DynamicUpdateField<TraitConfig> TraitConfigs = new(32, 33);
|
||||
@@ -5733,7 +5730,7 @@ namespace Game.Entities
|
||||
public UpdateField<byte> MultiActionBars = new(70, 94);
|
||||
public UpdateField<byte> LifetimeMaxRank = new(70, 95);
|
||||
public UpdateField<byte> NumRespecs = new(70, 96);
|
||||
public UpdateField<byte> PvpMedals = new(70, 97);
|
||||
public UpdateField<uint> PvpMedals = new(70, 97);
|
||||
public UpdateField<ushort> TodayHonorableKills = new(70, 98);
|
||||
public UpdateField<ushort> YesterdayHonorableKills = new(70, 99);
|
||||
public UpdateField<uint> LifetimeHonorableKills = new(70, 100);
|
||||
@@ -5795,12 +5792,10 @@ namespace Game.Entities
|
||||
public UpdateFieldArray<uint> ProfessionSkillLine = new(2, 481, 482);
|
||||
public UpdateFieldArray<uint> BagSlotFlags = new(5, 484, 485);
|
||||
public UpdateFieldArray<uint> BankBagSlotFlags = new(7, 490, 491);
|
||||
public UpdateFieldArray<ulong> QuestCompleted = new(1000, 498, 499);
|
||||
public UpdateFieldArray<float> ItemUpgradeHighWatermark = new(17, 1499, 1500);
|
||||
public UpdateFieldArray<float> ItemUpgradeHighWatermark = new(17, 498, 499);
|
||||
|
||||
public ActivePlayerData() : base((int)EntityFragment.CGObject, TypeId.ActivePlayer, changeMaskLength)
|
||||
{
|
||||
QuestCompletedBitsSize = QuestCompleted.GetSize();
|
||||
QuestCompletedBitsPerBlock = sizeof(ulong) * 8;
|
||||
}
|
||||
|
||||
@@ -5878,7 +5873,7 @@ namespace Game.Entities
|
||||
data.WriteUInt8(MultiActionBars);
|
||||
data.WriteUInt8(LifetimeMaxRank);
|
||||
data.WriteUInt8(NumRespecs);
|
||||
data.WriteUInt8(PvpMedals);
|
||||
data.WriteUInt32(PvpMedals);
|
||||
for (int i = 0; i < 12; ++i)
|
||||
{
|
||||
data.WriteUInt32(BuybackPrice[i]);
|
||||
@@ -5925,10 +5920,6 @@ namespace Game.Entities
|
||||
{
|
||||
data.WriteUInt32(BankBagSlotFlags[i]);
|
||||
}
|
||||
for (int i = 0; i < 1000; ++i)
|
||||
{
|
||||
data.WriteUInt64(QuestCompleted[i]);
|
||||
}
|
||||
data.WriteUInt32(Honor);
|
||||
data.WriteUInt32(HonorNextLevel);
|
||||
data.WriteInt32(PerksProgramCurrency);
|
||||
@@ -6001,6 +5992,14 @@ namespace Game.Entities
|
||||
{
|
||||
data.WriteUInt64(KnownTitles[i]);
|
||||
}
|
||||
for (int i = 0; i < CharacterDataElements.Size(); ++i)
|
||||
{
|
||||
CharacterDataElements[i].WriteCreate(data, owner, receiver);
|
||||
}
|
||||
for (int i = 0; i < AccountDataElements.Size(); ++i)
|
||||
{
|
||||
AccountDataElements[i].WriteCreate(data, owner, receiver);
|
||||
}
|
||||
for (int i = 0; i < DailyQuestsCompleted.Size(); ++i)
|
||||
{
|
||||
data.WriteUInt32(DailyQuestsCompleted[i]);
|
||||
@@ -6122,14 +6121,6 @@ namespace Game.Entities
|
||||
FrozenPerksVendorItem.GetValue().Write(data);
|
||||
Field_1410.GetValue().WriteCreate(data, owner, receiver);
|
||||
DungeonScore.GetValue().Write(data);
|
||||
for (int i = 0; i < CharacterDataElements.Size(); ++i)
|
||||
{
|
||||
CharacterDataElements[i].WriteCreate(data, owner, receiver);
|
||||
}
|
||||
for (int i = 0; i < AccountDataElements.Size(); ++i)
|
||||
{
|
||||
AccountDataElements[i].WriteCreate(data, owner, receiver);
|
||||
}
|
||||
for (int i = 0; i < PvpInfo.Size(); ++i)
|
||||
{
|
||||
PvpInfo[i].WriteCreate(data, owner, receiver);
|
||||
@@ -6172,10 +6163,8 @@ namespace Game.Entities
|
||||
|
||||
public void WriteUpdate(WorldPacket data, UpdateMask changesMask, bool ignoreNestedChangesMask, Player owner, Player receiver)
|
||||
{
|
||||
for (uint i = 0; i < 1; ++i)
|
||||
data.WriteUInt32(changesMask.GetBlocksMask(i));
|
||||
data.WriteBits(changesMask.GetBlocksMask(1), 16);
|
||||
for (uint i = 0; i < 48; ++i)
|
||||
data.WriteBits(changesMask.GetBlocksMask(0), 17);
|
||||
for (uint i = 0; i < 17; ++i)
|
||||
if (changesMask.GetBlock(i) != 0)
|
||||
data.WriteBits(changesMask.GetBlock(i), 32);
|
||||
|
||||
@@ -6537,6 +6526,26 @@ namespace Game.Entities
|
||||
}
|
||||
}
|
||||
}
|
||||
if (changesMask[8])
|
||||
{
|
||||
for (int i = 0; i < CharacterDataElements.Size(); ++i)
|
||||
{
|
||||
if (CharacterDataElements.HasChanged(i) || ignoreNestedChangesMask)
|
||||
{
|
||||
CharacterDataElements[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (changesMask[9])
|
||||
{
|
||||
for (int i = 0; i < AccountDataElements.Size(); ++i)
|
||||
{
|
||||
if (AccountDataElements.HasChanged(i) || ignoreNestedChangesMask)
|
||||
{
|
||||
AccountDataElements[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (changesMask[11])
|
||||
{
|
||||
for (int i = 0; i < DailyQuestsCompleted.Size(); ++i)
|
||||
@@ -6800,26 +6809,6 @@ namespace Game.Entities
|
||||
}
|
||||
if (changesMask[0])
|
||||
{
|
||||
if (changesMask[8])
|
||||
{
|
||||
for (int i = 0; i < CharacterDataElements.Size(); ++i)
|
||||
{
|
||||
if (CharacterDataElements.HasChanged(i) || ignoreNestedChangesMask)
|
||||
{
|
||||
CharacterDataElements[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (changesMask[9])
|
||||
{
|
||||
for (int i = 0; i < AccountDataElements.Size(); ++i)
|
||||
{
|
||||
if (AccountDataElements.HasChanged(i) || ignoreNestedChangesMask)
|
||||
{
|
||||
AccountDataElements[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (changesMask[10])
|
||||
{
|
||||
for (int i = 0; i < PvpInfo.Size(); ++i)
|
||||
@@ -7074,7 +7063,7 @@ namespace Game.Entities
|
||||
}
|
||||
if (changesMask[97])
|
||||
{
|
||||
data.WriteUInt8(PvpMedals);
|
||||
data.WriteUInt32(PvpMedals);
|
||||
}
|
||||
if (changesMask[98])
|
||||
{
|
||||
@@ -7417,20 +7406,10 @@ namespace Game.Entities
|
||||
}
|
||||
}
|
||||
if (changesMask[498])
|
||||
{
|
||||
for (int i = 0; i < 1000; ++i)
|
||||
{
|
||||
if (changesMask[499 + i])
|
||||
{
|
||||
data.WriteUInt64(QuestCompleted[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (changesMask[1499])
|
||||
{
|
||||
for (int i = 0; i < 17; ++i)
|
||||
{
|
||||
if (changesMask[1500 + i])
|
||||
if (changesMask[499 + i])
|
||||
{
|
||||
data.WriteFloat(ItemUpgradeHighWatermark[i]);
|
||||
}
|
||||
@@ -7451,6 +7430,8 @@ namespace Game.Entities
|
||||
ClearChangesMask(ResearchSiteProgress);
|
||||
ClearChangesMask(Research);
|
||||
ClearChangesMask(KnownTitles);
|
||||
ClearChangesMask(CharacterDataElements);
|
||||
ClearChangesMask(AccountDataElements);
|
||||
ClearChangesMask(DailyQuestsCompleted);
|
||||
ClearChangesMask(AvailableQuestLineXQuestIDs);
|
||||
ClearChangesMask(Heirlooms);
|
||||
@@ -7476,8 +7457,6 @@ namespace Game.Entities
|
||||
ClearChangesMask(CategoryCooldownMods);
|
||||
ClearChangesMask(WeeklySpellUses);
|
||||
ClearChangesMask(TrackedCollectableSources);
|
||||
ClearChangesMask(CharacterDataElements);
|
||||
ClearChangesMask(AccountDataElements);
|
||||
ClearChangesMask(PvpInfo);
|
||||
ClearChangesMask(CharacterRestrictions);
|
||||
ClearChangesMask(TraitConfigs);
|
||||
@@ -7594,7 +7573,6 @@ namespace Game.Entities
|
||||
ClearChangesMask(ProfessionSkillLine);
|
||||
ClearChangesMask(BagSlotFlags);
|
||||
ClearChangesMask(BankBagSlotFlags);
|
||||
ClearChangesMask(QuestCompleted);
|
||||
ClearChangesMask(ItemUpgradeHighWatermark);
|
||||
_changesMask.ResetAll();
|
||||
}
|
||||
|
||||
@@ -2421,13 +2421,6 @@ namespace Game.Entities
|
||||
|
||||
int fieldOffset = (int)((questBit - 1) / ActivePlayerData.QuestCompletedBitsPerBlock);
|
||||
ulong flag = 1ul << (((int)questBit - 1) % ActivePlayerData.QuestCompletedBitsPerBlock);
|
||||
if (fieldOffset < ActivePlayerData.QuestCompletedBitsSize)
|
||||
{
|
||||
if (completed)
|
||||
SetUpdateFieldFlagValue(ref m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.QuestCompleted, fieldOffset), flag);
|
||||
else
|
||||
RemoveUpdateFieldFlagValue(ref m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.QuestCompleted, fieldOffset), flag);
|
||||
}
|
||||
|
||||
BitVectors bitVectors = m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.BitVectors);
|
||||
BitVector bitVector = bitVectors.ModifyValue(bitVectors.Values, (int)PlayerDataFlag.CharacterQuestCompletedIndex);
|
||||
|
||||
@@ -2965,7 +2965,9 @@ namespace Game.Entities
|
||||
PlayerInteractionType.ProfessionsCraftingOrder, PlayerInteractionType.Professions, PlayerInteractionType.ProfessionsCustomerOrder,
|
||||
PlayerInteractionType.TraitSystem, PlayerInteractionType.BarbersChoice, PlayerInteractionType.MajorFactionRenown,
|
||||
PlayerInteractionType.PersonalTabardVendor, PlayerInteractionType.ForgeMaster, PlayerInteractionType.CharacterBanker,
|
||||
PlayerInteractionType.AccountBanker, PlayerInteractionType.ProfessionRespec
|
||||
PlayerInteractionType.AccountBanker, PlayerInteractionType.ProfessionRespec,PlayerInteractionType.PlaceholderType72,
|
||||
PlayerInteractionType.PlaceholderType75, PlayerInteractionType.PlaceholderType76, PlayerInteractionType.GuildRename,
|
||||
PlayerInteractionType.PlaceholderType77, PlayerInteractionType.ItemUpgrade
|
||||
};
|
||||
|
||||
PlayerInteractionType interactionType = GossipOptionNpcToInteractionType[(int)gossipOptionNpc];
|
||||
@@ -4962,7 +4964,7 @@ namespace Game.Entities
|
||||
if (playerChoiceLocale != null)
|
||||
ObjectManager.GetLocaleString(playerChoiceLocale.Question, locale, ref displayPlayerChoice.Question);
|
||||
|
||||
displayPlayerChoice.CloseChoiceFrame = false;
|
||||
displayPlayerChoice.InfiniteRange = false;
|
||||
displayPlayerChoice.HideWarboardHeader = playerChoice.HideWarboardHeader;
|
||||
displayPlayerChoice.KeepOpenAfterChoice = playerChoice.KeepOpenAfterChoice;
|
||||
|
||||
@@ -5066,7 +5068,6 @@ namespace Game.Entities
|
||||
var mawPower = new Networking.Packets.PlayerChoiceResponseMawPower();
|
||||
mawPower.TypeArtFileID = playerChoiceResponse.MawPower.Value.TypeArtFileID;
|
||||
mawPower.Rarity = playerChoiceResponse.MawPower.Value.Rarity;
|
||||
mawPower.RarityColor = playerChoiceResponse.MawPower.Value.RarityColor;
|
||||
mawPower.SpellID = playerChoiceResponse.MawPower.Value.SpellID;
|
||||
mawPower.MaxStacks = playerChoiceResponse.MawPower.Value.MaxStacks;
|
||||
|
||||
|
||||
@@ -1999,10 +1999,10 @@ namespace Game.Entities
|
||||
|
||||
Stats GetPrimaryStat()
|
||||
{
|
||||
byte primaryStatPriority;
|
||||
sbyte primaryStatPriority;
|
||||
var specialization = GetPrimarySpecializationEntry();
|
||||
if (specialization != null)
|
||||
primaryStatPriority = (byte)specialization.PrimaryStatPriority;
|
||||
primaryStatPriority = specialization.PrimaryStatPriority;
|
||||
else
|
||||
primaryStatPriority = CliDB.ChrClassesStorage.LookupByKey(GetClass()).PrimaryStatPriority;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user