139 namespace Transmogrification
320 if (left->
op != right->
op)
321 return left->
op < right->
op;
407#define ACTION_BUTTON_ACTION(X) (uint64(X) & 0x00FFFFFFFFFFFFFF)
408#define ACTION_BUTTON_TYPE(X) ((uint64(X) & 0xFF00000000000000) >> 56)
409#define MAX_ACTION_BUTTON_ACTION_VALUE UI64LIT(0xFFFFFFFFFFFFFF)
433#define MAX_ACTION_BUTTONS 180
478#define MAX_RECHARGING_RUNES 3
611#define DISABLED_MIRROR_TIMER -1
721static_assert(UF::size<decltype(UF::ActivePlayerData::InvSlots)>() ==
PLAYER_SLOT_END);
723#define INVENTORY_SLOT_BAG_0 255
724#define INVENTORY_DEFAULT_SIZE 16
837 bool isContainedIn(std::vector<ItemPosCount>
const& vec)
const;
953#define MAX_PLAYED_TIME_INDEX 2
1042#define MAX_PLAYER_SUMMON_DELAY (2*MINUTE)
1245 void CleanupsBeforeDelete(
bool finalCleanup =
true)
override;
1247 void AddToWorld()
override;
1248 void RemoveFromWorld()
override;
1250 void SetObjectScale(
float scale)
override;
1255 bool TeleportToBGEntryPoint();
1257 bool HasSummonPending()
const;
1258 void SendSummonRequestFrom(
Unit* summoner);
1259 void SummonIfPossible(
bool agree);
1265 void Heartbeat()
override;
1267 bool IsImmunedToSpellEffect(
SpellInfo const* spellInfo,
SpellEffectInfo const& spellEffectInfo,
WorldObject const* caster,
bool requireImmunityPurgesEffectAttribute =
false)
const override;
1271 void SendInitialPacketsBeforeAddToMap();
1272 void SendInitialPacketsAfterAddToMap();
1273 void SendSupercededSpell(
uint32 oldSpell,
uint32 newSpell)
const;
1276 bool CanInteractWithQuestGiver(
Object* questGiver)
const;
1285 uint16 GetChatFlags()
const;
1291 void RemoveSocial();
1299 void FinishTaxiFlight();
1300 void CleanupAfterTaxiFlight();
1301 void ContinueTaxiFlight();
1311 bool CanBeGameMaster()
const;
1312 void SetGameMaster(
bool on);
1318 void SetGMVisible(
bool on);
1332 void GiveXP(
uint32 xp,
Unit* victim,
float group_rate=1.0f);
1333 void GiveLevel(
uint8 level);
1334 bool IsMaxLevel()
const;
1336 void InitStatsForLevel(
bool reapplyMods =
false);
1361 void SetStableMaster(
ObjectGuid stableMaster);
1363 Pet* GetPet()
const;
1365 void RemovePet(
Pet* pet,
PetSaveMode mode,
bool returnreagent =
false);
1366 void DeletePetFromDB(
uint32 petNumber);
1371 void AddPetAura(
PetAura const* petSpell);
1372 void RemovePetAura(
PetAura const* petSpell);
1374 Creature* GetSummonedBattlePet()
const;
1384 void TextEmote(std::string_view text,
WorldObject const* =
nullptr,
bool =
false)
override;
1385 void TextEmote(
uint32 textId,
WorldObject const* target =
nullptr,
bool isBossEmote =
false)
override;
1387 void Whisper(std::string_view text,
Language language,
Player* receiver,
bool =
false)
override;
1388 void Whisper(
uint32 textId,
Player* target,
bool isBossWhisper =
false)
override;
1389 void WhisperAddon(std::string
const& text, std::string
const& prefix,
bool isLogged,
Player* receiver);
1391 bool CanUnderstandLanguage(
Language language)
const;
1403 template <
typename T>
1435 if (
Bag* pBag = GetBagByPos(i))
1445 if (
Bag* pBag = GetBagByPos(i))
1455 if (
Bag* bag = GetBagByPos(i))
1466 void UpdateAverageItemLevelTotal();
1467 void UpdateAverageItemLevelEquipped();
1469 uint8 FindEquipSlot(
Item const* item,
uint8 slot,
bool swap)
const;
1471 uint32 GetItemCount(
uint32 item,
bool inBankAlso =
false,
Item* skipItem =
nullptr)
const;
1472 uint32 GetItemCountWithLimitCategory(
uint32 limitCategory,
Item* skipItem =
nullptr)
const;
1475 std::vector<Item*> GetItemListByEntry(
uint32 entry,
bool inBankAlso =
false)
const;
1479 Bag* GetBagByPos(
uint8 slot)
const;
1480 std::vector<Item*> GetCraftingReagentItemsToDeposit();
1482 Item* GetShield(
bool useable =
false)
const;
1487 static bool IsInventoryPos(
uint8 bag,
uint8 slot);
1489 static bool IsEquipmentPos(
uint8 bag,
uint8 slot);
1490 static bool IsBagPos(
uint16 pos);
1492 static bool IsBankPos(
uint8 bag,
uint8 slot);
1494 static bool IsChildEquipmentPos(
uint8 bag,
uint8 slot);
1496 static bool IsAccountBankPos(
uint8 bag,
uint8 slot);
1498 bool IsValidPos(
uint8 bag,
uint8 slot,
bool explicit_pos)
const;
1500 void SetInventorySlotCount(
uint8 slots);
1510 SetBankTabSettings(setter, name, icon, description, depositFlags);
1515 SetBankTabSettings(setter, name, icon, description, depositFlags);
1534 bool HasItemCount(
uint32 item,
uint32 count = 1,
bool inBankAlso =
false)
const;
1535 bool HasItemFitToSpellRequirements(
SpellInfo const* spellInfo,
Item const* ignoreItem =
nullptr)
const;
1536 bool CanNoReagentCast(
SpellInfo const* spellInfo)
const;
1539 for (
uint8 i = 0; i < 4; ++i)
1570 void AutoUnequipOffhandIfNeed(
bool force =
false);
1571 void EquipChildItem(
uint8 parentBag,
uint8 parentSlot,
Item* parentItem);
1572 void AutoUnequipChildItem(
Item* parentItem);
1575 void AutoStoreLoot(
uint32 loot_id,
LootStore const& store,
ItemContext context =
ItemContext::NONE,
bool broadcast =
false,
bool createdByPlayer =
false) {
AutoStoreLoot(
NULL_BAG,
NULL_SLOT, loot_id, store, context, broadcast, createdByPlayer); }
1585 void SendCurrencies()
const;
1587 void SendPvpRewards()
const;
1597 void ResetCurrencyWeekCap();
1602 uint32 GetCurrencyIncreasedCapQuantity(
uint32 id)
const;
1603 uint32 GetCurrencyMaxQuantity(
CurrencyTypesEntry const* currency,
bool onLoad =
false,
bool onUpdateVersion =
false)
const;
1611 void ApplyEquipCooldown(
Item* pItem);
1612 void QuickEquipItem(
uint16 pos,
Item* pItem);
1613 void VisualizeItem(
uint8 slot,
Item* pItem);
1614 void SetVisibleItemSlot(
uint8 slot,
Item const* item);
1616 void RemoveItem(
uint8 bag,
uint8 slot,
bool update);
1617 void MoveItemFromInventory(
uint8 bag,
uint8 slot,
bool update);
1619 void MoveItemToInventory(
ItemPosCountVec const& dest,
Item* pItem,
bool update,
bool in_characterInventoryDB =
false);
1621 void RemoveItemDependentAurasAndCasts(
Item* pItem);
1622 void DestroyItem(
uint8 bag,
uint8 slot,
bool update);
1623 uint32 DestroyItemCount(
uint32 item,
uint32 count,
bool update,
bool unequip_check =
false);
1624 void DestroyItemCount(
Item* item,
uint32& count,
bool update);
1625 void DestroyConjuredItems(
bool update);
1626 void DestroyZoneLimitedItem(
bool update,
uint32 new_zone);
1629 void AddItemToBuyBackSlot(
Item* pItem);
1633 void RemoveItemFromBuyBackSlot(
uint32 slot,
bool del);
1641 bool IsUseEquipedWeapon(
bool mainhand)
const;
1642 bool IsTwoHandUsed()
const;
1643 bool IsUsingTwoHandedWeaponInOneHand()
const;
1644 void SendNewItem(
Item* item,
uint32 quantity,
bool received,
bool created,
bool broadcast =
false,
uint32 dungeonEncounterId = 0);
1651 float GetReputationPriceDiscount(
Creature const* creature)
const;
1654 Player* GetTrader()
const;
1656 void TradeCancel(
bool sendback);
1660 void UpdateEnchantTime(
uint32 time);
1661 void UpdateSoulboundTradeItems();
1662 void AddTradeableItem(
Item* item);
1663 void RemoveTradeableItem(
Item* item);
1664 void UpdateItemDuration(
uint32 time,
bool realtimeonly =
false);
1665 void AddEnchantmentDurations(
Item* item);
1666 void RemoveEnchantmentDurations(
Item* item);
1667 void RemoveEnchantmentDurationsReferences(
Item* item);
1670 void ApplyEnchantment(
Item* item,
EnchantmentSlot slot,
bool apply,
bool apply_dur =
true,
bool ignore_condition =
false);
1671 void ApplyEnchantment(
Item* item,
bool apply);
1673 void SendEnchantmentDurations();
1674 void AddItemDurations(
Item* item);
1675 void RemoveItemDurations(
Item* item);
1676 void SendItemDurations();
1677 void SendItemPassives();
1686 void PrepareGossipMenu(
WorldObject* source,
uint32 menuId,
bool showQuests =
false);
1698 int32 GetQuestMinLevel(
Quest const* quest)
const;
1699 int32 GetQuestMinLevel(
uint32 contentTuningId)
const;
1700 int32 GetQuestLevel(
Quest const* quest)
const;
1701 int32 GetQuestLevel(
uint32 contentTuningId)
const;
1704 bool IsActiveQuest(
uint32 quest_id)
const;
1705 Quest const* GetNextQuest(
Object const* questGiver,
Quest const* quest)
const;
1706 bool CanSeeStartQuest(
Quest const* quest)
const;
1707 bool CanTakeQuest(
Quest const* quest,
bool msg)
const;
1708 bool CanAddQuest(
Quest const* quest,
bool msg)
const;
1709 bool CanCompleteQuest(
uint32 quest_id,
uint32 ignoredQuestObjectiveId = 0);
1710 bool CanCompleteRepeatableQuest(
Quest const* quest);
1711 bool CanRewardQuest(
Quest const* quest,
bool msg)
const;
1713 void AddQuestAndCheckCompletion(
Quest const* quest,
Object* questGiver);
1714 void AddQuest(
Quest const* quest,
Object* questGiver);
1715 void AbandonQuest(
uint32 quest_id);
1717 void IncompleteQuest(
uint32 quest_id);
1718 uint32 GetQuestMoneyReward(
Quest const* quest)
const;
1723 void SetRewardedQuest(
uint32 quest_id);
1724 void FailQuest(
uint32 quest_id);
1726 bool SatisfyQuestSkill(
Quest const* qInfo,
bool msg)
const;
1727 bool SatisfyQuestLevel(
Quest const* qInfo,
bool msg)
const;
1728 bool SatisfyQuestMinLevel(
Quest const* qInfo,
bool msg)
const;
1729 bool SatisfyQuestMaxLevel(
Quest const* qInfo,
bool msg)
const;
1730 bool SatisfyQuestLog(
bool msg)
const;
1731 bool SatisfyQuestDependentQuests(
Quest const* qInfo,
bool msg)
const;
1732 bool SatisfyQuestPreviousQuest(
Quest const* qInfo,
bool msg)
const;
1733 bool SatisfyQuestDependentPreviousQuests(
Quest const* qInfo,
bool msg)
const;
1734 bool SatisfyQuestBreadcrumbQuest(
Quest const* qInfo,
bool msg)
const;
1735 bool SatisfyQuestDependentBreadcrumbQuests(
Quest const* qInfo,
bool msg)
const;
1736 bool SatisfyQuestClass(
Quest const* qInfo,
bool msg)
const;
1737 bool SatisfyQuestRace(
Quest const* qInfo,
bool msg)
const;
1738 bool SatisfyQuestMinReputation(
Quest const* qInfo,
bool msg)
const;
1739 bool SatisfyQuestMaxReputation(
Quest const* qInfo,
bool msg)
const;
1740 bool SatisfyQuestReputation(
Quest const* qInfo,
bool msg)
const;
1741 bool SatisfyQuestStatus(
Quest const* qInfo,
bool msg)
const;
1742 bool SatisfyQuestConditions(
Quest const* qInfo,
bool msg)
const;
1743 bool SatisfyQuestTimed(
Quest const* qInfo,
bool msg)
const;
1744 bool SatisfyQuestExclusiveGroup(
Quest const* qInfo,
bool msg)
const;
1745 bool SatisfyQuestDay(
Quest const* qInfo,
bool msg)
const;
1746 bool SatisfyQuestWeek(
Quest const* qInfo,
bool msg)
const;
1747 bool SatisfyQuestMonth(
Quest const* qInfo,
bool msg)
const;
1748 bool SatisfyQuestSeasonal(
Quest const* qInfo,
bool msg)
const;
1749 bool SatisfyQuestExpansion(
Quest const* qInfo,
bool msg)
const;
1750 bool GiveQuestSourceItem(
Quest const* quest);
1751 bool TakeQuestSourceItem(
uint32 questId,
bool msg);
1752 bool GetQuestRewardStatus(
uint32 quest_id)
const;
1755 void RemoveActiveQuest(
uint32 questId,
bool update =
true);
1756 void RemoveRewardedQuest(
uint32 questId,
bool update =
true);
1757 void SendQuestUpdate(
uint32 questId,
bool updateInteractions =
true,
bool updateGameObjectQuestGiverStatus =
false);
1759 void SkipQuests(std::span<uint32 const> questIds);
1760 void DespawnPersonalSummonsForQuest(
uint32 questId);
1762 void SetDailyQuestStatus(
uint32 quest_id);
1763 bool IsDailyQuestDone(
uint32 quest_id)
const;
1764 void SetWeeklyQuestStatus(
uint32 quest_id);
1765 void SetMonthlyQuestStatus(
uint32 quest_id);
1766 void SetSeasonalQuestStatus(
uint32 quest_id);
1768 void ResetWeeklyQuestStatus();
1769 void ResetMonthlyQuestStatus();
1770 void ResetSeasonalQuestStatus(
uint16 event_id, time_t eventStartTime);
1777 bool GetQuestSlotObjectiveFlag(
uint16 slot,
int8 objectiveIndex)
const;
1784 void SetQuestSlotEndTime(
uint16 slot, time_t endTime);
1785 void SetQuestSlotObjectiveFlag(
uint16 slot,
int8 objectiveIndex);
1786 void RemoveQuestSlotObjectiveFlag(
uint16 slot,
int8 objectiveIndex);
1787 bool IsQuestCompletedBitSet(
uint32 questId)
const;
1788 void SetQuestCompletedBit(
uint32 questId,
bool completed);
1791 void AreaExploredOrEventHappens(
uint32 questId);
1793 void ItemAddedQuestCheck(
uint32 entry,
uint32 count,
Optional<bool> boundItemFlagRequirement = {},
bool* hadBoundItemObjective =
nullptr);
1794 void ItemRemovedQuestCheck(
uint32 entry,
uint32 count);
1795 void KilledMonster(
Creature const* creature);
1797 void KilledPlayerCredit(
ObjectGuid victimGuid);
1800 void KillCreditCriteriaTreeObjective(
QuestObjective const& questObjective);
1801 void MoneyChanged(
uint64 value);
1803 void CurrencyChanged(
uint32 currencyId,
int32 change);
1805 std::vector<QuestObjective const*>* updatedObjectives =
nullptr, std::function<
bool(
QuestObjective const*)>
const* objectiveFilter =
nullptr);
1806 bool HasQuestForItem(
uint32 itemId)
const;
1808 bool HasQuestForGO(
int32 goId)
const;
1809 bool HasQuestForCurrency(
uint32 currencyId)
const;
1810 void UpdateVisibleObjectInteractions(
bool allUnits,
bool onlySpellClicks,
bool gameObjectQuestGiverStatus,
bool questObjectiveGameObjects);
1811 bool CanShareQuest(
uint32 questId)
const;
1816 bool IsQuestObjectiveCompletable(
uint32 questId,
uint32 objectiveId)
const;
1818 bool IsQuestObjectiveComplete(
uint32 questId,
uint32 objectiveId)
const;
1819 bool IsQuestObjectiveProgressBarComplete(
uint16 slot,
Quest const* quest)
const;
1820 void SendQuestComplete(
uint32 questId)
const;
1821 void SendQuestReward(
Quest const* quest,
Creature const* questGiver,
uint32 xp,
bool hideChatMessage)
const;
1823 void SendQuestTimerFailed(
uint32 questId)
const;
1824 void SendCanTakeQuestResponse(
QuestFailedReason reason,
bool sendErrorMessage =
true, std::string reasonText =
"")
const;
1825 void SendQuestConfirmAccept(
Quest const* quest,
Player* receiver)
const;
1828 void SendQuestUpdateAddCreditSimple(
QuestObjective const& obj)
const;
1830 void SendQuestUpdateAddPlayer(
Quest const* quest,
uint16 newCount)
const;
1831 void SendQuestGiverStatusMultiple();
1842 void AddTimedQuest(
uint32 questId);
1843 void RemoveTimedQuest(
uint32 questId);
1852 if (_CUFProfiles[i])
1857 bool HasPvPForcingQuest()
const;
1859 void SendForceSpawnTrackingUpdate(
uint32 questId)
const;
1861 SpawnTrackingState GetSpawnTrackingStateByObjectives(
uint32 spawnTrackingId, std::vector<uint32>
const& questObjectives)
const;
1869 bool IsLoading()
const override;
1872 static bool LoadPositionFromDB(
uint32& mapid,
float& x,
float& y,
float& z,
float& o,
bool& in_flight,
ObjectGuid guid);
1882 void SaveToDB(
bool create =
false);
1890 static void DeleteFromDB(
ObjectGuid playerguid,
uint32 accountId,
bool updateRealmChars =
true,
bool deleteFinally =
false);
1891 static void DeleteOldCharacters();
1892 static void DeleteOldCharacters(
uint32 keepDays);
1898 void RegenerateAll();
1899 void Regenerate(
Powers power);
1900 void InterruptPowerRegen(
Powers power);
1901 void RegenerateHealth();
1906 bool ModifyMoney(
int64 amount,
bool sendError =
true);
1909 void SetMoney(
uint64 value);
1915 bool IsQuestRewarded(
uint32 quest_id)
const;
1917 Unit* GetSelectedUnit()
const;
1918 Player* GetSelectedPlayer()
const;
1924 void SendNewMail()
const;
1925 void UpdateNextMailTimeAndUnreads();
1926 void AddNewMailDeliverTime(time_t deliver_time);
1928 void RemoveMail(
uint64 id);
1930 void AddMail(
Mail* mail);
1945 typedef std::unordered_map<ObjectGuid::LowType, Item*>
ItemMap;
1950 void AddMItem(
Item* it);
1953 void SendOnCancelExpectedVehicleRideAura()
const;
1954 void PetSpellInitialize();
1955 void CharmSpellInitialize();
1956 void PossessSpellInitialize();
1957 void VehicleSpellInitialize();
1958 void SendRemoveControlBar()
const;
1959 bool HasSpell(
uint32 spell)
const override;
1960 bool HasActiveSpell(
uint32 spell)
const;
1962 bool IsSpellFitByClassAndRace(
uint32 spell_id)
const;
1963 bool HandlePassiveSpellLearn(
SpellInfo const* spellInfo);
1965 void SendProficiency(
ItemClass itemClass,
uint32 itemSubclassMask)
const;
1966 void SendKnownSpells();
1967 void SendUnlearnSpells();
1968 bool AddSpell(
uint32 spellId,
bool active,
bool learning,
bool dependent,
bool disabled,
bool loading =
false,
int32 fromSkill = 0,
bool favorite =
false,
Optional<PlayerSpellTrait> trait = {});
1970 void RemoveSpell(
uint32 spell_id,
bool disabled =
false,
bool learn_low_rank =
true,
bool suppressMessaging =
false);
1971 void ResetSpells(
bool myClassOnly =
false);
1972 void LearnCustomSpells();
1973 void LearnDefaultSkills();
1975 void LearnQuestRewardedSpells();
1976 void LearnQuestRewardedSpells(
Quest const* quest);
1977 void AddTemporarySpell(
uint32 spellId);
1978 void RemoveTemporarySpell(
uint32 spellId);
1980 void AddOverrideSpell(
uint32 overridenSpellId,
uint32 newSpellId);
1981 void RemoveOverrideSpell(
uint32 overridenSpellId,
uint32 newSpellId);
1982 void LearnSpecializationSpells();
1983 void RemoveSpecializationSpells();
1984 void AddSpellCategoryCooldownMod(
int32 spellCategoryId,
int32 mod);
1985 void RemoveSpellCategoryCooldownMod(
int32 spellCategoryId,
int32 mod);
1986 void SetSpellFavorite(
uint32 spellId,
bool favorite);
1988 void AddStoredAuraTeleportLocation(
uint32 spellId);
1989 void RemoveStoredAuraTeleportLocation(
uint32 spellId);
1992 void SetReputation(
uint32 factionentry,
int32 value);
1994 std::string GetGuildName()
const;
2012 uint32 GetDefaultSpecId()
const;
2015 bool ResetTalents(
bool noCost =
false);
2016 void ResetPvpTalents();
2017 uint32 GetNextResetTalentsCost()
const;
2018 void InitTalentForLevel();
2019 void SendTalentsInfoData();
2022 bool HasTalent(
uint32 spell_id,
uint8 spec)
const;
2024 void ResetTalentSpecialization();
2029 void TogglePvpTalents(
bool enable);
2030 bool HasPvpTalent(
uint32 talentID,
uint8 activeTalentGroup)
const;
2031 void EnablePvpRules(
bool dueToCombat =
false);
2032 void DisablePvpRules();
2033 bool HasPvpRulesEnabled()
const;
2034 bool IsInAreaThatActivatesPvpTalents()
const;
2035 bool IsAreaThatActivatesPvpTalents(
uint32 areaID)
const;
2044 std::vector<uint32>
const&
GetGlyphs(
uint8 spec)
const {
return _specializationInfo.Glyphs[spec]; }
2045 std::vector<uint32>&
GetGlyphs(
uint8 spec) {
return _specializationInfo.Glyphs[spec]; }
2047 void StartLoadingActionButtons(std::function<
void()>&& callback =
nullptr);
2056 void RenameTraitConfig(
int32 editedConfigId, std::string&& newName);
2057 void DeleteTraitConfig(
int32 deletedConfigId);
2058 void ApplyTraitConfig(
int32 configId,
bool apply);
2059 void ApplyTraitEntry(
int32 traitNodeEntryId,
int32 rank,
int32 grantedRanks,
bool apply);
2062 void SetTraitConfigUseStarterBuild(
int32 traitConfigId,
bool useStarterBuild);
2063 void SetTraitConfigUseSharedActionBars(
int32 traitConfigId,
bool usesSharedActionBars,
bool isLastSelectedSavedConfig);
2068 void InitPrimaryProfessions();
2079 void SetSpellModTakingSpell(
Spell* spell,
bool apply);
2080 void SendSpellModifiers()
const;
2082 void RemoveArenaSpellCooldowns(
bool removeActivePetCooldowns =
false);
2085 void UpdatePotionCooldown(
Spell* spell =
nullptr);
2093 _resurrectionData.reset();
2098 if (!IsResurrectRequested())
2101 return !_resurrectionData->GUID.IsEmpty() && _resurrectionData->GUID == guid;
2105 void ResurrectUsingRequestData();
2106 void ResurrectUsingRequestDataImpl();
2117 void RemoveActionButton(
uint8 button);
2120 void SendActionButtons(
uint32 state)
const;
2121 bool IsActionButtonDataValid(
uint8 button,
uint64 action,
uint8 type)
const;
2126 void UpdatePvPState(
bool onlyFFA =
false);
2127 void SetPvP(
bool state)
override;
2128 void UpdatePvP(
bool state,
bool override =
false);
2130 void UpdateArea(
uint32 newArea);
2132 void UpdateZoneDependentAuras(
uint32 zone_id);
2133 void UpdateAreaDependentAuras(
uint32 area_id);
2135 void UpdateAfkReport(time_t currTime);
2136 void UpdatePvPFlag(time_t currTime);
2137 void SetContestedPvP(
Player* attackedPlayer =
nullptr);
2138 void UpdateContestedPvP(
uint32 currTime);
2140 void ResetContestedPvP();
2144 void UpdateDuelFlag(time_t currTime);
2145 void CheckDuelDistance(time_t currTime);
2150 bool IsGroupVisibleFor(
Player const* p)
const;
2151 bool IsInSameGroupWith(
Player const* p)
const;
2152 bool IsInSameRaidWith(
Player const* p)
const;
2153 void UninviteFromGroup();
2156 void SendUpdateToOutOfRangeGroupMembers();
2166 Guild const* GetGuild()
const;
2168 static void RemovePetitionsAndSigns(
ObjectGuid guid);
2174 static void LeaveAllArenaTeams(
ObjectGuid guid);
2195 bool UpdateCraftSkill(
SpellInfo const* spellInfo);
2197 bool UpdateFishingSkill(
int32 expansion);
2199 float GetHealthBonusFromStamina()
const;
2200 Stats GetPrimaryStat()
const;
2202 bool UpdateStats(
Stats stat)
override;
2203 bool UpdateAllStats()
override;
2204 void ApplySpellPenetrationBonus(
int32 amount,
bool apply);
2207 void UpdateResistances(
uint32 school)
override;
2208 void UpdateArmor()
override;
2209 void UpdateMaxHealth()
override;
2210 void UpdateMaxPower(
Powers power)
override;
2212 void UpdateAttackPowerAndDamage(
bool ranged =
false)
override;
2213 void ApplySpellPowerBonus(
int32 amount,
bool apply);
2214 void UpdateSpellDamageAndHealingBonus();
2221 void UpdateAllRatings();
2222 void UpdateMastery();
2223 void UpdateVersatilityDamageDone();
2224 void UpdateHealingDonePercentMod();
2225 bool CanUseMastery()
const;
2227 void CalculateMinMaxDamage(
WeaponAttackType attType,
bool normalized,
bool addTotalPct,
float& minDamage,
float& maxDamage)
const override;
2230 void GetDodgeFromAgility(
float &diminishing,
float &nondiminishing)
const;
2233 float ApplyRatingDiminishing(
CombatRating cr,
float bonusValue)
const;
2242 void UpdateBlockPercentage();
2244 void UpdateAllCritPercentages();
2245 void UpdateParryPercentage();
2246 void UpdateDodgePercentage();
2247 void UpdateMeleeHitChances();
2248 void UpdateRangedHitChances();
2249 void UpdateSpellHitChances();
2251 void UpdateSpellCritChance();
2252 void UpdateCorruption();
2253 void UpdateArmorPenetration(
int32 amount);
2255 void ApplyManaRegenBonus(
int32 amount,
bool apply);
2256 void ApplyHealthRegenBonus(
int32 amount,
bool apply);
2257 void UpdateManaRegen();
2258 void UpdateAllRunesRegen();
2264 Loot* GetLootByWorldObjectGUID(
ObjectGuid const& lootWorldObjectGuid)
const;
2265 std::unordered_map<ObjectGuid, Loot*>
const&
GetAELootView()
const {
return m_AELootView; }
2268 void RemoveLootRoll(
LootRoll* roll);
2270 void RemovedInsignia(
Player* looterPlr);
2278 void ClearValuesChangesMask()
override;
2281 void BuildCreateUpdateBlockForPlayer(
UpdateData* data,
Player* target)
const override;
2285 Player const* target,
bool ignoreNestedChangesMask)
const;
2298 void operator()(
Player const* player)
const;
2301 void DestroyForPlayer(
Player const* target)
const override;
2304 void SendAttackSwingCancelAttack()
const;
2306 void SendAutoRepeatCancel(
Unit* target);
2307 void SendExplorationExperience(
uint32 Area,
uint32 Experience)
const;
2309 void SendDungeonDifficulty(
int32 forcedDifficulty = -1)
const;
2310 void SendRaidDifficulty(
bool legacy,
int32 forcedDifficulty = -1)
const;
2312 void SendResetInstanceSuccess(
uint32 MapId)
const;
2314 void SendResetFailedNotify(
uint32 mapid)
const;
2315 bool IsLockedToDungeonEncounter(
uint32 dungeonEncounterId)
const;
2316 bool IsLockedToDungeonEncounter(
uint32 dungeonEncounterId,
Difficulty difficulty)
const;
2318 bool UpdatePosition(
float x,
float y,
float z,
float orientation,
bool teleport =
false)
override;
2322 void AtEnterCombat()
override;
2323 void AtExitCombat()
override;
2326 void SendMessageToSetInRange(
WorldPacket const* data,
float dist,
bool self)
const override;
2327 void SendMessageToSetInRange(
WorldPacket const* data,
float dist,
bool self,
bool own_team_only,
bool required3dDist =
false)
const;
2328 void SendMessageToSet(
WorldPacket const* data,
Player const* skipped_rcvr)
const override;
2330 void SendChatMessageToSetInRange(
ChatMsg chatMsg,
Language lanugageId, std::string&& text,
float range);
2332 Corpse* GetCorpse()
const;
2333 void SpawnCorpseBones(
bool triggerSave =
true);
2339 void InitializeSelfResurrectionSpells();
2340 void ResurrectPlayer(
float restore_percent,
bool applySickness =
false);
2341 void BuildPlayerRepop();
2342 void RepopAtGraveyard();
2344 void DurabilityLossAll(
double percent,
bool inventory);
2345 void DurabilityLoss(
Item* item,
double percent);
2346 void DurabilityPointsLossAll(
int32 points,
bool inventory);
2347 void DurabilityPointsLoss(
Item* item,
int32 points);
2349 void DurabilityRepairAll(
bool takeCost,
float discountMod,
bool guildBank);
2350 void DurabilityRepair(
uint16 pos,
bool takeCost,
float discountMod);
2352 void UpdateMirrorTimers();
2353 void StopMirrorTimers();
2358 void JoinedChannel(
Channel* c);
2360 void CleanupChannels();
2361 void UpdateLocalChannels(
uint32 newZone);
2362 void LeaveLFGChannel();
2367 void InitializeSkillFields();
2378 bool HasSkill(
uint32 skill)
const;
2381 int32 FindEmptyProfessionSlotFor(
uint32 skillId)
const;
2408 void ProcessDelayedOperations();
2410 void CheckAreaExplore();
2413 bool HasExploredZone(
uint32 areaId)
const;
2416 void UpdateZoneAndAreaId();
2417 void UpdateIndoorsOutdoorsAuras();
2418 void UpdateTavernRestingState();
2422 static uint8 GetFactionGroupForRace(
uint8 race);
2425 void SetFactionForRace(
uint8 race);
2430 void InitDisplayIds();
2432 bool IsAtGroupRewardDistance(
WorldObject const* pRewardSource)
const;
2433 bool IsAtRecruitAFriendDistance(
WorldObject const* pOther)
const;
2434 void RewardPlayerAndGroupAtEvent(
uint32 creature_id,
WorldObject* pRewardSource);
2435 bool isHonorOrXPTarget(
Unit const* victim)
const;
2437 bool GetsRecruitAFriendBonus(
bool forXP);
2442 void RewardReputation(
Unit* victim,
float rate);
2443 void RewardReputation(
Quest const* quest);
2448 void RemoveVisibleForcedReaction(
uint32 factionId);
2450 void UpdateSkillsForLevel();
2451 void ModifySkillBonus(
uint32 skillid,
int32 val,
bool talent);
2456 void UpdateHonorFields();
2458 void ResetHonorStats();
2459 uint32 GetMaxPersonalArenaRatingRequirement(
uint32 minarenaslot)
const;
2468 void AddHonorXP(
uint32 xp);
2469 void SetHonorLevel(
uint8 honorLevel);
2472 void UpdateHonorNextLevel();
2475 void RewardPlayerWithRewardPack(
uint32 rewardPackID);
2476 void RewardPlayerWithRewardPack(
RewardPackEntry const* rewardPackEntry);
2478 void SetDrunkValue(
uint8 newDrunkValue,
uint32 itemId = 0);
2483 uint32 GetCorpseReclaimDelay(
bool pvp)
const;
2484 void UpdateCorpseReclaimDelay();
2485 int32 CalculateCorpseReclaimDelay(
bool load =
false)
const;
2486 void SendCorpseReclaimDelay(
uint32 delay)
const;
2488 float GetBlockPercent(
uint8 attackerLevel)
const override;
2490 void SetCanParry(
bool value);
2492 void SetCanBlock(
bool value);
2494 void SetCanTitanGrip(
bool value,
uint32 penaltySpellId = 0);
2495 void CheckTitanGripPenalty();
2498 void SetRegularAttackTime();
2500 void HandleBaseModFlatValue(
BaseModGroup modGroup,
float amount,
bool apply);
2501 void ApplyBaseModPctValue(
BaseModGroup modGroup,
float pct);
2503 void SetBaseModFlatValue(
BaseModGroup modGroup,
float val);
2504 void SetBaseModPctValue(
BaseModGroup modGroup,
float val);
2510 float GetTotalBaseModValue(
BaseModGroup modGroup)
const;
2512 void _ApplyAllStatBonuses();
2513 void _RemoveAllStatBonuses();
2515 void ResetAllPowers();
2519 void CastAllObtainSpells();
2520 void ApplyItemObtainSpells(
Item* item,
bool apply);
2523 void UpdateAllWeaponDependentCritAuras();
2526 void ApplyItemDependentAuras(
Item* item,
bool apply);
2530 void _ApplyItemMods(
Item* item,
uint8 slot,
bool apply,
bool updateItemAuras =
true);
2531 void _RemoveAllItemMods();
2532 void _ApplyAllItemMods();
2533 void _ApplyAllLevelScaleItemMods(
bool apply);
2534 void ApplyAllAzeriteItemMods(
bool apply);
2535 void ApplyAllAzeriteEmpoweredItemMods(
bool apply);
2536 void _ApplyItemBonuses(
Item* item,
uint8 slot,
bool apply);
2537 void _ApplyWeaponDamage(
uint8 slot,
Item* item,
bool apply);
2538 bool EnchantmentFitsRequirements(
uint32 enchantmentcondition,
int8 slot)
const;
2539 void ToggleMetaGemsActive(
uint8 exceptslot,
bool apply);
2540 void CorrectMetaGemEnchants(
uint8 slot,
bool apply);
2541 void InitDataForForm(
bool reapplyMods =
false);
2543 void ApplyItemEquipSpell(
Item* item,
bool apply,
bool formChange =
false);
2544 void ApplyEquipSpell(
SpellInfo const* spellInfo,
Item* item,
bool apply,
bool formChange =
false);
2545 void UpdateEquipSpellsAtFormChange();
2546 void ApplyArtifactPowers(
Item* item,
bool apply);
2548 void ApplyAzeritePowers(
Item* item,
bool apply);
2554 void CastItemCombatSpell(
DamageInfo const& damageInfo);
2557 void ApplyItemLootedSpell(
Item* item,
bool apply);
2558 void ApplyItemLootedSpell(
ItemTemplate const* itemTemplate);
2560 void SendEquipmentSetList();
2562 void DeleteEquipmentSet(
uint64 id);
2564 void SendInitWorldStates(
uint32 zoneId,
uint32 areaId)
const;
2565 void SendUpdateWorldState(
uint32 variable,
uint32 value,
bool hidden =
false)
const;
2566 void SendDirectMessage(
WorldPacket const* data)
const;
2568 void SendAurasForTarget(
Unit* target)
const;
2573 void SendLoot(
Loot& loot,
bool aeLooting =
false);
2576 void SendLootReleaseAll()
const;
2578 void SendNotifyLootMoneyRemoved(
ObjectGuid lootObj)
const;
2585 bool InArena()
const;
2591 bool InBattlegroundQueue(
bool ignoreArena =
false)
const;
2601 bool HasFreeBattlegroundQueueId()
const;
2604 bool IsInvitedForBattlegroundInstance(
uint32 instanceId)
const;
2608 void SetBattlegroundEntryPoint();
2610 void SetBGTeam(
Team team);
2611 Team GetBGTeam()
const;
2615 bool CanReportAfkDueToLimit();
2616 void ReportedAfkBy(
Player* reporter);
2620 bool CanUseBattlegroundObject(
GameObject* gameobject)
const;
2621 bool isTotalImmune()
const;
2622 bool CanCaptureTowerPoint()
const;
2625 void SetRandomWinner(
bool isWinner);
2633 bool IsOutdoorPvPActive()
const;
2639 bool IsImmuneToEnvironmentalDamage()
const;
2667 void SetFallInformation(
uint32 time,
float z);
2670 void SetClientControl(
Unit* target,
bool allowMove);
2673 void SetViewpoint(
WorldObject* target,
bool apply);
2675 void StopCastingCharm();
2676 void StopCastingBindSight()
const;
2683 m_recall_location.Location.WorldRelocate(*
this);
2684 m_recall_location.InstanceId = GetInstanceId();
2689 void SendBindPointUpdate()
const;
2702 bool HaveAtClient(
BaseEntity const* u)
const;
2704 bool IsNeverVisibleFor(
WorldObject const* seer,
bool allowServersideObjects =
false)
const override;
2706 bool IsVisibleGloballyFor(
Player const* player)
const;
2708 void SendInitialVisiblePackets(
WorldObject* target)
const;
2709 void OnPhaseChange()
override;
2710 void UpdateObjectVisibility(
bool forced =
true)
override;
2711 void UpdateVisibilityForPlayer();
2714 void UpdateTriggerVisibility();
2717 void UpdateVisibilityOf(T* target,
UpdateData& data, std::set<WorldObject*>& visibleNow);
2726 bool isUsingLfg()
const;
2727 bool inRandomLfgDungeon()
const;
2737 void EnablePetControlsOnDismount();
2738 void UnsummonPetTemporaryIfAny();
2739 void ResummonPetTemporaryUnSummonedIfAny();
2740 void UnsummonBattlePetTemporaryIfAny(
bool onFlyingMount =
false);
2741 void ResummonBattlePetTemporaryUnSummonedIfAny();
2742 bool IsPetNeedBeTemporaryUnsummoned()
const;
2744 void SendCinematicStart(
uint32 CinematicSequenceId)
const;
2745 void SendMovieStart(
uint32 movieId);
2750 void UpdateItemLevelAreaBasedScaling();
2758 void UpdateHomebindTime(
uint32 time);
2765 auto itr = m_recentInstances.find(mapId);
2766 return itr != m_recentInstances.end() ? itr->second : 0;
2771 m_recentInstances[mapId] = instanceId;
2775 void ConfirmPendingBind();
2776 void SetPendingBind(
uint32 instanceId,
uint32 bindTimer);
2778 void SendRaidInfo();
2780 bool CheckInstanceValidity(
bool );
2781 bool CheckInstanceCount(
uint32 instanceId)
const;
2782 void AddInstanceEnterTime(
uint32 instanceId, time_t enterTime);
2801 void SetGroup(
Group* group,
int8 subgroup = -1);
2807 void ResetGroupUpdateSequenceIfNeeded(
Group const* group);
2809 Player* GetNextRandomRaidMember(
float radius);
2813 void SetBattlegroundOrBattlefieldRaid(
Group* group,
int8 subgroup = -1);
2814 void RemoveFromBattlegroundOrBattlefieldRaid();
2818 void SetOriginalGroup(
Group* group,
int8 subgroup = -1);
2826 void SetMap(
Map* map)
override;
2827 void ResetMap()
override;
2829 bool isAllowedToLoot(
Creature const* creature)
const;
2832 uint8 GetRunesState()
const;
2834 uint32 GetRuneBaseCooldown()
const;
2835 void SetRuneCooldown(
uint8 index,
uint32 cooldown);
2836 void ResyncRunes()
const;
2839 void SendRespondInspectAchievements(
Player* player)
const;
2840 uint32 GetAchievementPoints()
const;
2841 std::vector<uint32> GetCompletedAchievementIds()
const;
2842 bool HasAchieved(
uint32 achievementId)
const;
2843 void ResetAchievements();
2848 bool ModifierTreeSatisfied(
uint32 modifierTreeId)
const;
2857 bool CanSeeGossipOn(
Creature const* creature)
const;
2858 bool CanSeeSpellClickOn(
Creature const* creature)
const;
2864 float GetAverageItemLevel()
const;
2881 void CreateGarrison(
uint32 garrSiteId);
2882 void DeleteGarrison();
2893 SetUpdateFieldValue(m_values
2900 SetUpdateFieldValue(m_values
2908 bool MeetPlayerCondition(
uint32 conditionId)
const;
2929 if (choiceIndex >= 0)
2930 return m_playerData->Customizations[choiceIndex].ChrCustomizationChoiceID;
2935 template<
typename Iter>
2939 m_customizationsChanged =
true;
2942 for (
auto&& customization : customizations)
2975 int32 index = m_activePlayerData->ConditionalTransmog.FindIndex(itemModifiedAppearanceId);
2989 int32 index = m_activePlayerData->SelfResSpells.FindIndex(spellId);
3025 std::variant<int64, float> GetDataElementAccount(
uint32 dataElementId)
const;
3026 void SetDataElementAccount(
uint32 dataElementId, std::variant<int64, float> value);
3028 std::variant<int64, float> GetDataElementCharacter(
uint32 dataElementId)
const;
3029 void SetDataElementCharacter(
uint32 dataElementId, std::variant<int64, float> value);
3031 bool HasDataFlagAccount(
uint32 dataFlagId)
const;
3032 void SetDataFlagAccount(
uint32 dataFlagId,
bool on);
3034 bool HasDataFlagCharacter(
uint32 dataFlagId)
const;
3035 void SetDataFlagCharacter(
uint32 dataFlagId,
bool on);
3037 bool IsInFriendlyArea()
const;
3040 void SetWarModeDesired(
bool enabled);
3044 void SetWarModeLocal(
bool enabled);
3045 bool CanEnableWarModeInArea()
const;
3046 void UpdateWarModeAuras();
3048 void AddUnlockedTransmogOutfits(std::span<int32 const> transmogOutfitIds);
3055 void UpdateTransmogOutfitSituations(
uint32 id,
bool situationsEnabled, std::span<WorldPackets::Transmogrification::TransmogOutfitSituationInfo const> situations);
3056 void UpdateTransmogOutfitSlots(
uint32 id, std::span<WorldPackets::Transmogrification::TransmogOutfitSlotData const> slots);
3064 void SetAreaSpiritHealer(
Creature* creature);
3067 void SendAreaSpiritHealerTime(
Unit* spiritHealer)
const;
3068 void SendAreaSpiritHealerTime(
ObjectGuid const& spiritHealerGUID,
int32 timeLeft)
const;
3123 void _LoadGlyphAuras();
3149 int32 equippedTransmogOutfitId,
bool locked);
3196 void HandleSobering();
3199 void HandleDrowning(
uint32 time_diff);
3207 void outDebugValues()
const;
3332 bool CanNeverSee(
WorldObject const* obj,
bool ignorePhaseShift =
false)
const override;
3333 bool CanAlwaysSee(
WorldObject const* obj)
const override;
3335 bool IsAlwaysDetectableFor(
WorldObject const* seer)
const override;
3352 void SendRefundInfo(
Item* item);
3353 void RefundItem(
Item* item);
3356 void AdjustQuestObjectiveProgress(
Quest const* quest);
3362 bool IsInstanceLoginGameMasterException()
const;
3418 void _InitHonorLevelOnLoadFromDB(
uint32 honor,
uint32 honorLevel);
3427 void RequestSpellCast(std::unique_ptr<SpellCastRequest> castRequest);
3428 void CancelPendingCastRequest();
3429 bool CanRequestSpellCast(
SpellInfo const* spell,
Unit const* castingUnit)
const;
3433 void ExecutePendingSpellCastRequest();
3435 bool CanExecutePendingSpellCastRequest();
3448template<
typename Container>
3451 static_assert(std::is_same<typename Container::value_type, UF::ChrCustomizationChoice>::value,
3452 "MakeChrCustomizationChoiceRange must be used with containers of UF::ChrCustomizationChoice");
3454 return { container.data(), container.data() + container.size() };
uint32 GetBagSize(Bag const *bag)
Item * GetItemInBag(Bag const *bag, uint8 slot)
#define MAX_CUF_PROFILES
Maximum number of CompactUnitFrames profiles.
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
SQLTransaction< LoginDatabaseConnection > LoginDatabaseTransaction
std::shared_ptr< PreparedResultSet > PreparedQueryResult
std::unordered_set< uint32 > params[2]
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
std::chrono::steady_clock::time_point TimePoint
time_point shorthand typedefs
#define DEFINE_ENUM_FLAG(enumType)
std::map< uint64, EquipmentSetInfo > EquipmentSetContainer
std::string GetDebugInfo()
uint32 ItemRandomBonusListId
void RemoveItemFromUpdateQueueOf(Item *item, Player *player)
void AddItemToUpdateQueueOf(Item *item, Player *player)
std::list< ObjectGuid > GuidList
std::unordered_set< ObjectGuid > GuidUnorderedSet
std::set< ObjectGuid > GuidSet
std::optional< T > Optional
Optional helper class to wrap optional values within.
@ EQUIPMENT_SLOT_SHOULDERS
@ EQUIPMENT_SLOT_MAINHAND
@ EQUIPMENT_SLOT_TRINKET1
@ EQUIPMENT_SLOT_TRINKET2
std::deque< Mail * > PlayerMails
std::vector< ItemPosCount > ItemPosCountVec
TC_GAME_API void DeleteItemSetEffects(ItemSetEffect *itemSetEffect)
@ ARENA_TEAM_PERSONAL_RATING
@ ARENA_TEAM_GAMES_SEASON
EnviromentalDamage
Type of environmental damages.
uint32 constexpr PLAYER_MAX_HONOR_LEVEL
@ ERR_REFER_A_FRIEND_TARGET_TOO_HIGH
@ ERR_REFER_A_FRIEND_SUMMON_OFFLINE_S
@ ERR_REFER_A_FRIEND_DIFFERENT_FACTION
@ ERR_REFER_A_FRIEND_NONE
@ ERR_REFER_A_FRIEND_NO_TARGET
@ ERR_REFER_A_FRIEND_NOT_NOW
@ ERR_REFER_A_FRIEND_INSUF_EXPAN_LVL
@ ERR_REFER_A_FRIEND_INSUFFICIENT_GRANTABLE_LEVELS
@ ERR_REFER_A_FRIEND_NOT_REFERRED_BY
@ ERR_REFER_A_FRIEND_TOO_FAR
@ ERR_REFER_A_FRIEND_SUMMON_LEVEL_MAX_I
@ ERR_REFER_A_FRIEND_NOT_IN_GROUP
@ ERR_REFER_A_FRIEND_MAP_INCOMING_TRANSFER_NOT_ALLOWED
@ ERR_REFER_A_FRIEND_GRANT_LEVEL_MAX_I
@ ERR_REFER_A_FRIEND_SUMMON_COOLDOWN
@ ERR_REFER_A_FRIEND_NO_XREALM
@ INVENTORY_SLOT_BAG_START
@ TELE_TO_TRANSPORT_TELEPORT
@ TELE_TO_NOT_LEAVE_COMBAT
@ TELE_TO_NOT_UNSUMMON_PET
@ TELE_REVIVE_AT_TELEPORT
@ TELE_TO_NOT_LEAVE_TRANSPORT
std::array< uint32, MAX_PVP_TALENT_SLOTS > PlayerPvpTalentMap
@ PLAYERCURRENCY_UNCHANGED
@ PLAYER_FIELD_BYTE2_STEALTH
@ PLAYER_FIELD_BYTE2_INVISIBILITY_GLOW
@ PLAYER_FIELD_BYTE2_NONE
@ PLAYER_EXTRA_LEVEL_BOOSTED
@ PLAYER_EXTRA_ACCEPT_WHISPERS
@ PLAYER_EXTRA_GM_INVISIBLE
@ PLAYER_EXTRA_GRANTED_LEVELS_FROM_RAF
@ PLAYER_EXTRA_HAS_RACE_CHANGED
@ PLAYER_EXTRA_FLAG_FREE_TRANSMOG_CLAIMED
@ ArenaSkirmishCompletion
std::unordered_map< uint32, PlayerSpell > PlayerSpellMap
float constexpr MAX_AREA_SPIRIT_HEALER_RANGE
@ PLAYER_FLAGS_WAR_MODE_ACTIVE
@ PLAYER_FLAGS_AUTO_DECLINE_GUILD
@ PLAYER_FLAGS_HIDE_ACCOUNT_ACHIEVEMENTS
@ PLAYER_FLAGS_VOID_UNLOCKED
@ PLAYER_FLAGS_PLAYED_LONG_TIME
@ PLAYER_FLAGS_CONTESTED_PVP
@ PLAYER_FLAGS_NO_XP_GAIN
@ PLAYER_FLAGS_GUILD_LEVEL_ENABLED
@ PLAYER_FLAGS_GROUP_LEADER
@ PLAYER_FLAGS_IS_OUT_OF_BOUNDS
@ PLAYER_FLAGS_VOICE_CHAT
@ PLAYER_FLAGS_WAR_MODE_DESIRED
@ PLAYER_FLAGS_TAXI_BENCHMARK
@ PLAYER_FLAGS_LOW_LEVEL_RAID_ENABLED
@ PLAYER_FLAGS_COMMENTATOR2
@ PLAYER_FLAGS_TIMEWALKING
@ PLAYER_FLAGS_COMMENTATOR_CAMERA
@ PLAYER_FLAGS_PET_BATTLES_UNLOCKED
@ PLAYER_FLAGS_PLAYED_TOO_LONG
uint8 constexpr PLAYER_LEVEL_MIN_HONOR
std::unordered_map< uint32, time_t > InstanceTimeMap
std::map< uint32, QuestSaveType > QuestStatusSaveMap
@ EquippedEffectiveWeighted
@ INVENTORY_SLOT_ITEM_START
@ INVENTORY_SLOT_ITEM_END
@ DELAYED_BG_GROUP_RESTORE
Flag to restore group state after teleport from BG.
@ DELAYED_BG_MOUNT_RESTORE
Flag to restore mount state after teleport from BG.
@ DELAYED_BG_TAXI_RESTORE
Flag to restore taxi state after teleport from BG.
@ DELAYED_SPELL_CAST_DESERTER
@ DELAYED_RESURRECT_PLAYER
@ ACTION_BUTTON_COMPANION
std::unordered_map< uint32, PlayerSpellState > PlayerTalentMap
std::map< uint8, ActionButton > ActionButtonList
@ EQUIPABLE_SPELL_OFFENSIVE_SLOT3
@ EQUIPABLE_SPELL_DEFENSIVE_SLOT1
@ EQUIPABLE_SPELL_UTILITY_SLOT3
@ EQUIPABLE_SPELL_OFFENSIVE_SLOT1
@ EQUIPABLE_SPELL_WEAPON_SLOT3
@ EQUIPABLE_SPELL_WEAPON_SLOT4
@ EQUIPABLE_SPELL_WEAPON_SLOT1
@ EQUIPABLE_SPELL_DEFENSIVE_SLOT4
@ EQUIPABLE_SPELL_WEAPON_SLOT2
@ EQUIPABLE_SPELL_UTILITY_SLOT2
@ EQUIPABLE_SPELL_DEFENSIVE_SLOT3
@ EQUIPABLE_SPELL_UTILITY_SLOT1
@ EQUIPABLE_SPELL_OFFENSIVE_SLOT2
@ EQUIPABLE_SPELL_DEFENSIVE_SLOT2
@ EQUIPABLE_SPELL_OFFENSIVE_SLOT4
@ EQUIPABLE_SPELL_UTILITY_SLOT4
@ SPEC_RESET_SPECIALIZATION
std::unordered_map< uint32, SkillStatusData > SkillStatusMap
#define ACTION_BUTTON_TYPE(X)
@ PLAYER_LOCAL_FLAG_CAN_USE_OBJECTS_MOUNTED
@ PLAYER_LOCAL_FLAG_USING_PARTY_GARRISON
@ PLAYER_LOCAL_FLAG_TRACK_STEALTHED
@ PLAYER_LOCAL_FLAG_CHARACTER_BANK_CONVERSION_FAILED
@ PLAYER_LOCAL_FLAG_NO_PET_BAR
@ PLAYER_LOCAL_FLAG_WAR_MODE
@ PLAYER_LOCAL_FLAG_ACCOUNT_BANK_DISABLED
@ PLAYER_LOCAL_FLAG_ACCOUNT_SECURED
@ PLAYER_LOCAL_FLAG_RELEASE_TIMER
@ PLAYER_LOCAL_FLAG_HAS_ACCOUNT_BANK_LOCK
@ PLAYER_LOCAL_FLAG_NO_RELEASE_WINDOW
@ PLAYER_LOCAL_FLAG_CONTROLLING_PET
@ PLAYER_LOCAL_FLAG_MENTOR_RESTRICTED
@ PLAYER_LOCAL_FLAG_NEWLY_BOOSTED_CHARACTER
@ PLAYER_LOCAL_FLAG_CHARACTER_BANK_DISABLED
@ PLAYER_LOCAL_FLAG_OVERRIDE_TRANSPORT_SERVER_TIME
@ PLAYER_LOCAL_FLAG_CAN_VISIT_PARTY_GARRISON
@ PLAYER_LOCAL_FLAG_FREE_TRANSMOG_CLAIMED
@ PLAYER_LOCAL_FLAG_OVERRIDE_CAMERA_MIN_HEIGHT
@ ACCOUNT_BANK_SLOT_BAG_END
@ ACCOUNT_BANK_SLOT_BAG_START
@ ERR_BANKSLOT_FAILED_TOO_MANY
@ ERR_BANKSLOT_INSUFFICIENT_FUNDS
TC_GAME_API void UpdateItemSetAuras(Player *player, bool formChange)
TC_GAME_API void RemoveItemsSetItem(Player *player, Item const *item)
@ UNDERWATER_EXIST_TIMERS
@ RAID_INSTANCE_WARNING_TIME
@ RAID_INSTANCE_WELCOME_DAILY
TC_GAME_API uint32 GetBagSize(Bag const *bag)
@ PLAYER_DATA_FLAG_VALUE_BITS
@ PLAYER_DATA_FLAG_CHARACTER_TAXI_NODES_INDEX
@ PLAYER_DATA_FLAG_ACCOUNT_DATA_INDEX
@ PLAYER_DATA_FLAG_CHARACTER_QUEST_COMPLETED_INDEX
@ PLAYER_DATA_FLAG_CHARACTER_CONTENTPUSH_INDEX
@ PLAYER_DATA_FLAG_ACCOUNT_COMBINED_QUESTS_INDEX
@ PLAYER_EXPLORED_ZONES_BITS
@ PLAYER_DATA_FLAG_CHARACTER_DATA_INDEX
@ PLAYER_DATA_FLAG_ACCOUNT_COMBINED_QUEST_REWARDS_INDEX
@ PLAYER_DATA_FLAG_EXPLORED_ZONES_INDEX
@ PLAYER_DATA_FLAG_ACCOUNT_TAXI_NODES_INDEX
@ AT_LOGIN_RESET_PET_TALENTS
@ AT_LOGIN_CHANGE_FACTION
float constexpr TELEPORT_MIN_LOAD_SCREEN_DISTANCE
#define ACTION_BUTTON_ACTION(X)
std::list< EnchantDuration > EnchantDurationList
std::unordered_multimap< std::pair< QuestObjectiveType, int32 >, QuestObjectiveStatusData > QuestObjectiveStatusMap
@ PROFESSION_SLOT_MAX_COUNT
@ PROFESSION_SLOT_FISHING_TOOL
@ PROFESSION_SLOT_PROFESSION2_GEAR1
@ PROFESSION_SLOT_FISHING_GEAR2
@ PROFESSION_SLOT_PROFESSION1_GEAR1
@ PROFESSION_SLOT_PROFESSION2_TOOL
@ PROFESSION_SLOT_PROFESSION1_TOOL
@ PROFESSION_SLOT_PROFESSION2_GEAR2
@ PROFESSION_SLOT_FISHING_GEAR1
@ PROFESSION_SLOT_COOKING_GEAR1
@ PROFESSION_SLOT_COOKING_TOOL
@ PROFESSION_SLOT_PROFESSION1_GEAR2
@ CHILD_EQUIPMENT_SLOT_END
@ CHILD_EQUIPMENT_SLOT_START
@ PLAYER_FLAGS_EX_IN_PVP_COMBAT
@ PLAYER_FLAGS_EX_AUTO_DECLINE_NEIGHBORHOOD
@ PLAYER_FLAGS_EX_ARTIFACT_FORGE_CHEAT
@ PLAYER_FLAGS_EX_REAGENT_BANK_UNLOCKED
@ PLAYER_FLAGS_EX_UNLOCKED_AOE_LOOT
@ PLAYER_FLAGS_EX_ITEM_LEVEL_SQUISH
@ PLAYER_FLAGS_EX_NEWCOMER
@ PLAYER_FLAGS_EX_MERCENARY_MODE
@ WaitingForSuspendTokenResponse
TC_GAME_API Item * GetItemInBag(Bag const *bag, uint8 slot)
uint32 constexpr SPELL_PVP_RULES_ENABLED
#define INVENTORY_SLOT_BAG_0
TC_GAME_API void AddItemsSetItem(Player *player, Item const *item)
@ QUEST_FORCE_DELETE_SAVE_TYPE
@ QUEST_DEFAULT_SAVE_TYPE
@ REPUTATION_SOURCE_SPELL
@ REPUTATION_SOURCE_QUEST
@ REPUTATION_SOURCE_MONTHLY_QUEST
@ REPUTATION_SOURCE_REPEATABLE_QUEST
@ REPUTATION_SOURCE_WEEKLY_QUEST
@ REPUTATION_SOURCE_DAILY_QUEST
Trinity::IteratorPair< UF::ChrCustomizationChoice const * > MakeChrCustomizationChoiceRange(Container const &container)
PlayerQuestCompletedConstants
@ QUESTS_COMPLETED_BITS_PER_BLOCK
std::map< uint32, QuestStatusData > QuestStatusMap
std::set< uint32 > RewardedQuestSet
constexpr uint64 MAX_MONEY_AMOUNT
std::unordered_map< uint32, PlayerCurrency > PlayerCurrenciesMap
@ PLAYER_LOGIN_QUERY_LOAD_SPELL_COOLDOWNS
@ PLAYER_LOGIN_QUERY_LOAD_CUSTOMIZATIONS
@ PLAYER_LOGIN_QUERY_LOAD_CURRENCY
@ PLAYER_LOGIN_QUERY_LOAD_GLYPHS
@ PLAYER_LOGIN_QUERY_LOAD_DECLINED_NAMES
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_REW
@ PLAYER_LOGIN_QUERY_LOAD_DAILY_QUEST_STATUS
@ PLAYER_LOGIN_QUERY_LOAD_AURA_EFFECTS
@ PLAYER_LOGIN_QUERY_LOAD_INSTANCE_LOCK_TIMES
@ PLAYER_LOGIN_QUERY_LOAD_SEASONAL_QUEST_STATUS
@ PLAYER_LOGIN_QUERY_LOAD_SOCIAL_LIST
@ PLAYER_LOGIN_QUERY_LOAD_GARRISON_FOLLOWERS
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_OBJECTIVES_CRITERIA
@ PLAYER_LOGIN_QUERY_LOAD_TRAIT_CONFIGS
@ PLAYER_LOGIN_QUERY_LOAD_SKILLS
@ PLAYER_LOGIN_QUERY_LOAD_BG_DATA
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_OBJECTIVES_CRITERIA_PROGRESS
@ PLAYER_LOGIN_QUERY_LOAD_TRANSMOG_OUTFITS
@ PLAYER_LOGIN_QUERY_LOAD_GARRISON_FOLLOWER_ABILITIES
@ PLAYER_LOGIN_QUERY_LOAD_TRANSMOG_OUTFIT_SLOT
@ PLAYER_LOGIN_QUERY_LOAD_ACCOUNT_DATA
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS
@ PLAYER_LOGIN_QUERY_LOAD_PET_SLOTS
@ PLAYER_LOGIN_QUERY_LOAD_ARTIFACTS
@ PLAYER_LOGIN_QUERY_LOAD_INVENTORY
@ PLAYER_LOGIN_QUERY_LOAD_REPUTATION
@ PLAYER_LOGIN_QUERY_LOAD_AZERITE_MILESTONE_POWERS
@ PLAYER_LOGIN_QUERY_LOAD_GARRISON_BLUEPRINTS
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE
@ PLAYER_LOGIN_QUERY_LOAD_BANK_TAB_SETTINGS
@ PLAYER_LOGIN_QUERY_LOAD_FROM
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_OBJECTIVES
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE_UNLOCKED_ESSENCE
@ PLAYER_LOGIN_QUERY_LOAD_GARRISON_BUILDINGS
@ PLAYER_LOGIN_QUERY_LOAD_DATA_FLAGS
@ PLAYER_LOGIN_QUERY_LOAD_WEEKLY_QUEST_STATUS
@ PLAYER_LOGIN_QUERY_LOAD_SPELL_CHARGES
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE_MILESTONE_POWER
@ PLAYER_LOGIN_QUERY_LOAD_AZERITE
@ PLAYER_LOGIN_QUERY_LOAD_MONTHLY_QUEST_STATUS
@ PLAYER_LOGIN_QUERY_LOAD_GUILD
@ PLAYER_LOGIN_QUERY_LOAD_EQUIPMENT_SETS
@ PLAYER_LOGIN_QUERY_LOAD_MAILS
@ PLAYER_LOGIN_QUERY_LOAD_AURAS
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE_EMPOWERED
@ PLAYER_LOGIN_QUERY_LOAD_TALENTS
@ PLAYER_LOGIN_QUERY_LOAD_AZERITE_UNLOCKED_ESSENCES
@ PLAYER_LOGIN_QUERY_LOAD_GARRISON
@ PLAYER_LOGIN_QUERY_LOAD_BANNED
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_ARTIFACT
@ PLAYER_LOGIN_QUERY_LOAD_ARENA_INFO
@ PLAYER_LOGIN_QUERY_LOAD_GROUP
@ PLAYER_LOGIN_QUERY_LOAD_CRITERIA_PROGRESS
@ PLAYER_LOGIN_QUERY_LOAD_HOME_BIND
@ PLAYER_LOGIN_QUERY_LOAD_CORPSE_LOCATION
@ PLAYER_LOGIN_QUERY_LOAD_SPELLS
@ PLAYER_LOGIN_QUERY_LOAD_SPELL_FAVORITES
@ PLAYER_LOGIN_QUERY_LOAD_TRANSMOG_OUTFIT
@ PLAYER_LOGIN_QUERY_LOAD_DATA_ELEMENTS
@ PLAYER_LOGIN_QUERY_LOAD_TRAIT_ENTRIES
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_OBJECTIVES_SPAWN_TRACKING
@ PLAYER_LOGIN_QUERY_LOAD_TRANSMOG_OUTFIT_SITUATION
@ PLAYER_LOGIN_QUERY_LOAD_AZERITE_EMPOWERED
@ PLAYER_LOGIN_QUERY_LOAD_PVP_TALENTS
@ PLAYER_LOGIN_QUERY_LOAD_CUF_PROFILES
@ PLAYER_LOGIN_QUERY_LOAD_RANDOM_BG
@ PLAYER_LOGIN_QUERY_LOAD_AURA_STORED_LOCATIONS
@ PLAYER_LOGIN_QUERY_LOAD_ACHIEVEMENTS
@ TALENT_FAILED_AFFECTING_COMBAT
@ TALENT_FAILED_NOT_ENOUGH_TALENTS_IN_PRIMARY_TREE
@ TALENT_FAILED_NO_PRIMARY_TREE_SELECTED
@ TALENT_FAILED_CANT_DO_THAT_CHALLENGE_MODE_ACTIVE
@ TALENT_FAILED_REST_AREA
@ TALENT_FAILED_UNSPENT_TALENT_POINTS
@ TALENT_FAILED_CANT_REMOVE_TALENT
@ TALENT_FAILED_IN_PVP_MATCH
@ TALENT_FAILED_CANT_DO_THAT_RIGHT_NOW
std::list< Item * > ItemDurationList
Trinity::Containers::FlatSet< SpellModifier *, SpellModifierCompare > SpellModContainer
static void SaveToDB(QuestPool const &pool, CharacterDatabaseTransaction trans)
constexpr Trinity::RaceMask< uint64 > RACEMASK_ALL_PLAYABLE
constexpr TeamId GetTeamIdForTeam(Team team)
constexpr BattlegroundQueueTypeId BATTLEGROUND_QUEUE_NONE
#define MAX_SPECIALIZATIONS
constexpr TeamId GetOtherTeam(TeamId team)
static constexpr uint8 PLAYER_MAX_BATTLEGROUND_QUEUES
#define CLASSMASK_ALL_PLAYABLE
@ GROUP_REMOVEMETHOD_DEFAULT
@ SPELL_AURA_ALLOW_TAME_PET_TYPE
NPCFlags
Non Player Character flags.
ObjectGuid const & GetGUID() const
constexpr bool HasFlag(T flag) const
Class used to access individual fields of database query result.
static ObjectGuid const Empty
void InitTaxiNodesForLevel(uint32 race, uint32 chrClass, uint8 level)
std::unique_ptr< QuestObjectiveCriteriaMgr > m_questObjectiveCriteriaMgr
void ApplyModOverrideSpellPowerByAPPercent(float mod, bool apply)
bool IsValidPos(uint16 pos, bool explicit_pos) const
ChrSpecialization GetPrimarySpecialization() const
InstanceTimeMap _instanceResetTimes
void SetWatchedFactionIndex(int32 index)
UF::UpdateField< UF::PlayerData, int32(WowCS::EntityFragment::CGObject), TYPEID_PLAYER > m_playerData
uint32 GetHonorLevel() const
void ReplaceAllBagSlotFlags(uint32 bagIndex, EnumFlag< BagSlotFlags > flags)
std::array< int32, MAX_TIMERS > m_MirrorTimer
uint32 GetCustomizationChoice(uint32 chrCustomizationOptionId) const
void ActivatePvpItemLevels(bool activate)
uint32 GetArmorProficiency() const
GroupReference m_originalGroup
static bool IsEquipmentPos(uint16 pos)
uint8 GetNumRespecs() const
void SetTalentResetTime(time_t time_)
uint32 m_temporaryUnsummonedPetNumber
uint16 GetSkillLineIdByPos(uint32 pos) const
QuestStatusMap m_QuestStatus
uint32 m_ChampioningFaction
std::vector< uint32 > & GetGlyphs(uint8 spec)
void SetCharacterBankTabSettings(uint32 tabId, std::string const &name, std::string const &icon, std::string const &description, BagSlotFlags depositFlags)
WorldLocation const & GetCorpseLocation() const
void ScheduleDelayedOperation(uint32 operation)
bool HasClaimedFreeTransmog() const
void SaveHealthBeforeDuel()
std::unique_ptr< RestMgr > _restMgr
uint16 GetSkillRankByPos(uint32 pos) const
void SetLastPotionId(uint32 item_id)
bool IsGameMasterAcceptingWhispers() const
void SetSkillMaxRank(uint32 pos, uint16 max)
std::vector< Item * > m_itemUpdateQueue
uint16 GetSkillPermBonusByPos(uint32 pos) const
uint8 GetCUFProfilesCount() const
Retrieves a CUF profile at position 0-4
TeamId GetEffectiveTeamId() const
uint32 GetSaveTimer() const
void SetPlayerFlag(PlayerFlags flags)
bool IsBackpackAutoSortDisabled() const
void SetArenaFaction(uint8 arenaFaction)
void SetPlayerFlagEx(PlayerFlagsEx flags)
BattlegroundTypeId GetBattlegroundTypeId() const
bool HasPlayerFlagEx(PlayerFlagsEx flags) const
void ApplyModTargetResistance(int32 mod, bool apply)
bool IsBeingTeleportedFar() const
std::unordered_map< ObjectGuid, Loot * > m_AELootView
PlayerSocial * GetSocial() const
std::array< int16, MAX_COMBAT_RATING > m_baseRatingValue
void SetPlayerLocalFlag(PlayerLocalFlags flags)
void RemovePlayerFlag(PlayerFlags flags)
ItemDurationList m_itemDuration
std::unique_ptr< Garrison > _garrison
ObjectGuid GetSummonedBattlePetGUID() const
QuestStatusMap & getQuestStatusMap()
uint8 GetGuildRank() const
void SetSkillLineId(uint32 pos, uint16 skillLineId)
void SetGroupUpdateFlag(uint32 flag)
uint32 m_titanGripPenaltySpellId
uint32 GetTemporaryUnsummonedPetNumber() const
void SetSeer(WorldObject *target)
bool ForEachItem(ItemSearchLocation location, T callback) const
Iterate over each item in the player storage.
uint32 GetTotalPlayedTime() const
PetStable const * GetPetStable() const
bool m_MonthlyQuestChanged
bool _advancedCombatLoggingEnabled
void SetModDamageDonePercent(uint8 school, float pct)
RewardedQuestSet const & getRewardedQuests() const
uint8 GetDrunkValue() const
void RemoveBagSlotFlag(uint32 bagIndex, EnumFlag< BagSlotFlags > flags)
void SetNativeGender(Gender gender) override
Gender GetNativeGender() const override
SkillStatusMap mSkillStatus
void SetCharacterBankTabCount(uint8 count)
std::unordered_map< uint32, SeasonalQuestMapByQuest > SeasonalQuestMapByEvent
WorldLocation _corpseLocation
void SetRestThreshold(RestTypes type, uint32 threshold)
void SetAcceptWhispers(bool on)
std::array< ChatFloodThrottle, ChatFloodThrottle::MAX > m_chatFloodData
UF::UpdateField< UF::ActivePlayerData, int32(WowCS::EntityFragment::CGObject), TYPEID_ACTIVE_PLAYER > m_activePlayerData
bool HasRaceChanged() const
ObjectGuid::LowType m_GuildIdInvited
time_t m_lastHonorUpdateTime
bool IsWarModeDesired() const
std::unordered_map< ObjectGuid::LowType, Item * > ItemMap
void SetSkillPermBonus(uint32 pos, uint16 bonus)
static bool IsValidClass(uint8 Class)
void SetInvSlot(uint32 slot, ObjectGuid guid)
GroupReference & GetGroupRef()
GroupReference & GetOriginalGroupRef()
bool CanTameExoticPets() const
bool CanFly() const override
Difficulty m_legacyRaidDifficulty
Group const * GetGroup() const
uint32 GetArenaTeamIdInvited() const
void SetTemporaryUnsummonedPetNumber(uint32 petnumber)
bool IsBackpackSellJunkDisabled() const
Trinity::Containers::FlatSet< uint32 > _playerDataElementsNeedSave
void SetNoRegentCostMask(flag128 mask)
GuidSet m_refundableItems
DFQuestsDoneList m_DFQuests
bool UpdatePosition(Position const &pos, bool teleport=false) override
void ApplyModDamageDonePos(SpellSchools school, int32 mod, bool apply)
uint8 m_movementForceModMagnitudeChanges
void SetBackpackSellJunkDisabled(bool disabled)
uint32 GetDeathTimer() const
bool m_WeeklyQuestChanged
void RemoveGroupUpdateFlag(uint32 flag)
uint8 GetCharacterBankTabCount() const
std::unordered_map< uint32, uint32 > m_recentInstances
uint8 GetBankBagSlotCount() const
bool InBattleground() const
void SetDeveloper(bool on)
void RemovePlayerFlagEx(PlayerFlagsEx flags)
std::set< uint32 > DFQuestsDoneList
void SetGroupInvite(Group *group)
uint32 m_DelayedOperations
void SetPvpTitle(uint8 pvpTitle)
void AddTransmogFlag(uint32 slot, uint32 flag)
void setWeaponChangeTimer(uint32 time)
std::vector< uint32 > const & GetGlyphs(uint8 spec) const
void SetSelection(ObjectGuid const &guid)
Used for serverside target changes, does not apply to players.
PetStable * GetPetStable()
void SetRaidDifficultyID(Difficulty raid_difficulty)
Group * GetOriginalGroup() const
ObjectGuid const & GetLootGUID() const
void SetLootGUID(ObjectGuid const &guid)
void SetBackpackAutoSortDisabled(bool disabled)
uint32 GetBaseSpellPowerBonus() const
Returns base spellpower bonus from spellpower stat on items, without spellpower from intellect stat.
GuidUnorderedSet m_clientGUIDs
void SetKnownTitles(uint32 index, uint64 mask)
SeasonalQuestMapByEvent m_seasonalquests
void RemovePlayerLocalFlag(PlayerLocalFlags flags)
void setRegenTimerCount(uint32 time)
bool HasEnoughMoney(int64 amount) const
void SetAdvancedCombatLogging(bool enabled)
QuestObjectiveStatusMap m_questObjectiveStatus
std::unordered_map< uint32, std::unordered_set< uint32 > > m_overrideSpells
bool HasPendingBind() const
uint8 GetInventorySlotCount() const
std::forward_list< int32 > m_itemPassives
void SetTalentResetCost(uint32 cost)
void RecalculateRating(CombatRating cr)
void SetPrimarySpecialization(uint32 spec)
void SetPetSpellPower(uint32 spellPower)
Trinity::Containers::FlatSet< uint32 > _playerDataFlagsNeedSave
void SetCurrentCombatTraitConfigSubTreeID(int32 traitSubTreeId)
void SetRecentInstance(uint32 mapId, uint32 instanceId)
EnumFlag< BagSlotFlags > GetBagSlotFlags(uint32 bagIndex) const
std::array< uint32, MAX_PLAYED_TIME_INDEX > m_Played_time
bool CanTitanGrip() const
time_t GetTalentResetTime() const
ObjectGuid m_playerSharingQuest
bool IsWarModeActive() const
ActionButtonList const & GetActionButtons() const
std::set< uint32 > m_changedTransmogOutfits
PlayerPvpTalentMap & GetPvpTalentMap(uint8 spec)
std::unordered_map< uint32, StoredAuraTeleportLocation > m_storedAuraTeleportLocations
PlayerCurrenciesMap _currencyStorage
void SetNumRespecs(uint8 numRespecs)
Optional< AttackSwingErr > m_swingErrorMsg
int32 GetNewWorldCounter() const
bool m_SeasonalQuestChanged
void SetCurrentBattlePetBreedQuality(uint8 battlePetBreedQuality)
std::array< float, BASEMOD_END > m_auraBaseFlatMod
void ReplaceAllRequiredMountCapabilityFlags(uint8 flags)
void SetAtLoginFlag(AtLoginFlags f)
bool GetCommandStatus(uint32 command) const
WorldSession * GetSession() const
void SetBankTabSettings(UF::MutableFieldReferenceWithChangesMask< UF::BankTabSettings, false > setter, std::string const &name, std::string const &icon, std::string const &description, BagSlotFlags depositFlags)
ZonePVPTypeOverride GetOverrideZonePVPType() const
std::unique_ptr< ReputationMgr > m_reputationMgr
PlayerMails const & GetMails() const
std::unique_ptr< SpellCastRequest > _pendingSpellCastRequest
void SetCommandStatusOn(uint32 command)
UF::DeclinedNames const * GetDeclinedNames() const
int32 GetSpellPenetrationItemMod() const
uint32 GetSharedQuestID() const
JoinedChannelsList m_channels
InventoryResult CanTakeMoreSimilarItems(uint32 entry, uint32 count, uint32 *offendingItemId=nullptr) const
RestMgr & GetRestMgr() const
TeleportState GetTeleportState() const
uint32 m_currentBuybackSlot
std::unordered_map< int32, PlayerSpellState > m_traitConfigStates
void RemoveFromGroup(RemoveMethod method=GROUP_REMOVEMETHOD_DEFAULT)
void SaveRecallPosition()
bool GetRandomWinner() const
uint8 GetAccountBankTabCount() const
uint32 GetInGameTime() const
void SaveCUFProfile(uint8 id, std::unique_ptr< CUFProfile > profile)
Empties a CUF profile at position 0-4
void SetPassOnGroupLoot(bool bPassOnGroupLoot)
TeleportLocation m_teleport_dest
void ClearWhisperWhiteList()
uint32 GetRecentInstanceId(uint32 mapId) const
std::array< float, MAX_POWERS_PER_CLASS > m_powerFraction
ReputationMgr const & GetReputationMgr() const
bool IsResurrectRequested() const
Difficulty GetDungeonDifficultyID() const
time_t m_nextMailDelivereTime
PlayerSpellMap const & GetSpellMap() const
CinematicMgr * GetCinematicMgr() const
int16 GetSkillTempBonusByPos(uint32 pos) const
static bool IsInventoryPos(uint16 pos)
ObjectGuid m_temporaryUnsummonedBattlePet
void SetLegacyRaidDifficultyID(Difficulty raid_difficulty)
PlayerTalentMap * GetTalentMap(uint8 spec)
std::set< uint32 > QuestSet
void ClearResurrectRequestData()
Difficulty m_dungeonDifficulty
uint32 m_weaponChangeTimer
void AddConditionalTransmog(uint32 itemModifiedAppearanceId)
std::unordered_map< ObjectGuid, Loot * > const & GetAELootView() const
void RemoveTrackCreatureFlag(uint32 flags)
void ReplaceAllPlayerLocalFlags(PlayerLocalFlags flags)
uint32 m_WeaponProficiency
uint32 GetRuneCooldown(uint8 index) const
float GetEmpowerMinHoldStagePercent() const
void ApplyModOverrideAPBySpellPowerPercent(float mod, bool apply)
void ApplyModTargetPhysicalResistance(int32 mod, bool apply)
void SetActiveCombatTraitConfigID(int32 traitConfigId)
void RestoreManaAfterDuel()
void RemoveFromWhisperWhiteList(ObjectGuid guid)
uint32 m_hostileReferenceCheckTimer
void ReplaceAllPlayerFlagsEx(PlayerFlagsEx flags)
void InitTaxiNodesForLevel()
std::array< float, BASEMOD_END > m_auraBasePctMod
static bool IsChildEquipmentPos(uint16 pos)
void RestoreHealthAfterDuel()
void AddAuraVision(PlayerFieldByte2Flags flags)
void SetEmpowerMinHoldStagePercent(float empowerMinHoldStagePercent)
uint32 GetWeaponProficiency() const
void SetHasLevelBoosted()
ObjectGuid _areaSpiritHealerGUID
bool CanAcceptAreaSpiritHealFrom(Unit *spiritHealer) const
bool HasPlayerLocalFlag(PlayerLocalFlags flags) const
std::unique_ptr< ResurrectionData > _resurrectionData
RewardedQuestSet m_RewardedQuests
void SetBankAutoSortDisabled(bool disabled)
SceneMgr const & GetSceneMgr() const
uint32 GetGuildLevel() const
TeleportToOptions m_teleport_options
uint32 m_contestedPvPTimer
void SetActiveTalentGroup(uint8 group)
uint32 GetTalentResetCost() const
void AddUnlockedTransmogOutfit(int32 transmogOutfitIds)
bool IsUsingPvpItemLevels() const
void ApplyModDamageDoneNeg(SpellSchools school, int32 mod, bool apply)
EnchantDurationList m_enchantDuration
void AddIllusionBlock(uint32 blockValue)
void SetCommandStatusOff(uint32 command)
TradeData * GetTradeData() const
ObjectGuid::LowType GetGuildId() const
bool IsReagentBankUnlocked() const
float m_empowerMinHoldStagePercent
CUFProfile * GetCUFProfile(uint8 id) const
Replaces a CUF profile at position 0-4
void SetChampioningFaction(uint32 faction)
void SetMovie(uint32 movie)
bool IsBankAutoSortDisabled() const
TeleportLocation m_recall_location
bool IsGameMaster() const
void SetGuildRank(uint8 rankId)
void AddSelfResSpell(int32 spellId)
bool CanApplyResilience() const override
void SetDuelArbiter(ObjectGuid guid)
void SetPvPDeath(bool on)
void SetOverrideZonePVPType(ZonePVPTypeOverride type)
void SaveCUFProfile(uint8 id, std::nullptr_t)
ObjectGuid::LowType GetGuildIdInvited() const
Optional< ReactStates > GetTemporaryPetReactState() const
TimePoint m_regenInterruptTimestamp
void SetAccountBankTabCount(uint8 count)
uint32 GetLastPetNumber() const
uint8 getCinematic() const
void SetCanDelayTeleport(bool setting)
void SetTarget(ObjectGuid const &) override
uint32 GetXPForNextLevel() const
std::unique_ptr< Runes > m_runes
void RemoveConditionalTransmog(uint32 itemModifiedAppearanceId)
uint32 GetRBGPersonalRating() const
SpecializationInfo _specializationInfo
uint8 m_MirrorTimerFlagsLast
std::array< uint8, MAX_MOVE_TYPE > m_forced_speed_changes
std::vector< ItemSetEffect * > ItemSetEff
uint32 GetLootSpecId() const
bool IsMaxHonorLevel() const
bool IsBeingTeleportedNear() const
void SetTransportServerTime(int32 transportServerTime)
time_t m_lastDailyQuestTime
uint32 GetMailSize() const
void SaveManaBeforeDuel()
void SetQuestSharingInfo(ObjectGuid guid, uint32 id)
void AddIllusionFlag(uint32 slot, uint32 flag)
void ClearQuestSharingInfo()
void AddWarbandScenesFlag(uint32 slot, uint32 flag)
std::unordered_set< PetAura const * > m_petAuras
void AddWarbandScenesBlock(uint32 blockValue)
Difficulty m_raidDifficulty
uint8 GetActiveTalentGroup() const
void SetHeirloom(uint32 slot, int32 itemId)
PlayerPvpTalentMap const & GetPvpTalentMap(uint8 spec) const
void SetTrackCreatureFlag(uint32 flags)
void SetDungeonDifficultyID(Difficulty dungeon_difficulty)
EquipmentSetContainer _equipmentSets
void ApplyModDamageDonePercent(SpellSchools school, float pct, bool apply)
std::vector< Item * > & GetItemUpdateQueue()
GuidUnorderedSet m_visibleTransports
Difficulty GetRaidDifficultyID() const
TeleportState m_teleport_state
std::unique_ptr< PlayerAchievementMgr > m_achievementMgr
bool m_customizationsChanged
void SetOverrideSpellsId(int32 overrideSpellsId)
MapReference & GetMapRef()
Garrison * GetGarrison() const
void SetBuybackTimestamp(uint32 slot, time_t timestamp)
PlayerTalentMap const * GetTalentMap(uint8 spec) const
uint32 m_ArenaTeamIdInvited
bool HasLevelBoosted() const
std::unique_ptr< PetStable > m_petStable
uint32 GetBattlegroundId() const
static bool IsValidGender(uint8 Gender)
void AddArmorProficiency(uint32 newflag)
std::list< Channel * > JoinedChannelsList
uint32 GetGroupUpdateFlag() const
PlayerSpellMap & GetSpellMap()
bool IsAdvancedCombatLoggingEnabled() const
std::unordered_map< uint32, time_t > SeasonalQuestMapByQuest
void SetSaveTimer(uint32 timer)
void AddWhisperWhiteList(ObjectGuid guid)
bool GetPassOnGroupLoot() const
void ReplaceAllPlayerFlags(PlayerFlags flags)
uint16 GetSkillMaxRankByPos(uint32 pos) const
void SetChosenTitle(int32 title)
bool HasAtLoginFlag(AtLoginFlags f) const
void RemoveSelfResSpell(int32 spellId)
static bool IsBankPos(uint16 pos)
static bool IsValidRace(uint8 Race)
Group * GetGroup(Optional< uint8 > partyIndex)
TeleportLocation m_summon_location
ActionButtonList m_actionButtons
bool HasPlayerFlag(PlayerFlags flags) const
std::unique_ptr< DuelInfo > duel
uint8 GetSubGroup() const
bool IsResurrectRequestedBy(ObjectGuid const &guid) const
void SetGuildLevel(uint32 level)
TeleportLocation & GetTeleportDest()
void SetRestState(RestTypes type, PlayerRestState state)
void AutoStoreLoot(uint32 loot_id, LootStore const &store, ItemContext context=ItemContext::NONE, bool broadcast=false, bool createdByPlayer=false)
int32 m_spellPenetrationItemMod
void AddToy(int32 itemId, uint32 flags)
void SetFreePrimaryProfessions(uint16 profs)
void SendInitialActionButtons() const
bool isAcceptWhispers() const
size_t GetRewardedQuestCount() const
ObjectGuid GetPlayerSharingQuest() const
std::array< std::unique_ptr< CUFProfile >, MAX_CUF_PROFILES > _CUFProfiles
void SetTaxiCheater(bool on)
uint32 GetChampioningFaction() const
void ApplyModFakeInebriation(int32 mod, bool apply)
Team GetEffectiveTeam() const
uint16 GetSkillStartingRankByPos(uint32 pos) const
void SetArenaTeamIdInvited(uint32 ArenaTeamId)
void SendMessageToSet(WorldPacket const *data, bool self) const override
void SetVirtualPlayerRealm(uint32 virtualRealmAddress)
uint32 GetLevelPlayedTime() const
void SetSkillRank(uint32 pos, uint16 rank)
void SetLootSpecId(uint32 id)
uint32 m_ArmorProficiency
std::array< GroupUpdateCounter, 2 > m_groupUpdateSequences
bool IsCanDelayTeleport() const
std::unique_ptr< CinematicMgr > _cinematicMgr
bool HasBeenGrantedLevelsFromRaF() const
ObjectGuid const & GetSpiritHealerGUID() const
void SetTeleportState(TeleportState state)
bool CanEnterWater() const override
void AddWeaponProficiency(uint32 newflag)
void SetBuybackPrice(uint32 slot, uint32 price)
void SetMultiActionBars(uint8 mask)
uint32 GetFreePrimaryProfessionPoints() const
void RemoveAuraVision(PlayerFieldByte2Flags flags)
PlayerCreateMode GetCreateMode() const
GuidUnorderedSet m_itemSoulboundTradeable
void SetSkillStep(uint32 pos, uint16 step)
Group * GetGroupInvite() const
void SetRequiredMountCapabilityFlag(uint8 flag)
void SetContestedPvPTimer(uint32 newTime)
void SetAverageItemLevel(float newItemLevel, AvgItemLevelCategory category)
void SetSkillStartingRank(uint32 pos, uint16 starting)
void SetSkillTempBonus(uint32 pos, uint16 bonus)
void SetInGameTime(uint32 time)
void SetGuildIdInvited(ObjectGuid::LowType GuildId)
uint32 GetArenaTeamId(uint8) const
Difficulty GetLegacyRaidDifficultyID() const
void SetDuelTeam(uint32 duelTeam)
Spell * m_spellModTakingSpell
SpellModContainer m_spellMods
void SetBankBagSlotCount(uint8 count)
uint16 GetSkillStepByPos(uint32 pos) const
QuestStatusSaveMap m_QuestStatusSave
void setCinematic(uint8 cine)
uint32 GetLastPotionId() const
void AddHeirloom(int32 itemId, uint32 flags)
void SetLastPetNumber(uint32 petnumber)
QuestStatusSaveMap m_RewardedQuestsSave
std::unique_ptr< PlayerMenu > PlayerTalkClass
bool isTaxiCheater() const
bool IsWarModeLocalActive() const
void SetBeenGrantedLevelsFromRaF()
JoinedChannelsList const & GetJoinedChannels() const
WorldLocation const & GetBattlegroundEntryPoint() const
ReputationMgr & GetReputationMgr()
bool IsBeingTeleported() const
uint8 GetOriginalSubGroup() const
std::vector< LootRoll * > m_lootRolls
void SetCustomizations(Trinity::IteratorPair< Iter > customizations, bool markChanged=true)
static bool IsAccountBankPos(uint16 pos)
void SetBagSlotFlag(uint32 bagIndex, EnumFlag< BagSlotFlags > flags)
Optional< ReactStates > m_temporaryPetReactState
bool HasEnoughMoney(uint64 amount) const
void SetVersatilityBonus(float value)
EnumFlag< TeleportToOptions > GetTeleportOptions() const
void AddTransmogBlock(uint32 blockValue)
bool m_itemUpdateQueueBlocked
void SetAccountBankTabSettings(uint32 tabId, std::string const &name, std::string const &icon, std::string const &description, BagSlotFlags depositFlags)
void SetHasClaimedFreeTransmog()
PlayerCreateMode m_createMode
void SetHeirloomFlags(uint32 slot, uint32 flags)
void SetSummonedBattlePetGUID(ObjectGuid guid)
Utility class to enable range for loop syntax for multimap.equal_range uses.
UF::UpdateField< UF::UnitData, int32(WowCS::EntityFragment::CGObject), TYPEID_UNIT > m_unitData
Player session in the World.
std::conditional_t< std::is_base_of_v< HasChangesMaskTag, T >, MutableFieldReferenceWithChangesMask< T, PublicSet >, MutableFieldReferenceNoChangesMask< T, PublicSet > > MutableFieldReference
std::unique_ptr< VignetteData > Create(VignetteEntry const *vignetteData, WorldObject const *owner)
void Update(VignetteData &vignette, WorldObject const *owner)
UpdateCollisionHeightReason
Holder for Battleground data.
Team bgTeam
What side the player will be added to.
BattlegroundTypeId bgTypeID
time_t bgAfkReportedTimer
BattlegroundQueueTypeId queueId
WorldLocation joinPos
From where player entered BG.
Represents a CompactUnitFrame profile.
DuelInfo(Player *opponent, Player *initiator, bool isMounted)
EnchantDuration(Item *_item, EnchantmentSlot _slot, uint32 _leftduration)
Data sent in EquipmentSet related packets.
int32 UpdateSequenceNumber
ItemPosCount(uint16 _pos, uint32 _count)
bool isContainedIn(std::vector< ItemPosCount > const &vec) const
uint32 IncreasedCapQuantity
PlayerCurrencyState state
friend bool operator==(PlayerSpellTrait const &, PlayerSpellTrait const &) noexcept=default
Optional< PlayerSpellTrait > Trait
BattlegroundQueueTypeId bgQueueTypeId
UF::UnitData::Base UnitMask
UF::PlayerData::Base PlayerMask
ValuesUpdateForPlayerWithMaskSender(Player const *owner)
UF::ObjectData::Base ObjectMask
UF::ActivePlayerData::Base ActivePlayerMask
bool IgnoreNestedChangesMask
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr float GetOrientation() const
constexpr float GetPositionZ() const
bool IsInNoPvPArea
Marks if player is in an area which forces PvP flag
bool IsInFFAPvPArea
Marks if player is in a sanctuary or friendly capital city
time_t EndTimer
Marks if player is in an FFAPvP area (such as Gurubashi Arena)
QuestStatusMap::iterator QuestStatusItr
std::deque< uint8 > CooldownOrder
void SetRuneState(uint8 index, bool set=true)
uint32 Cooldown[MAX_RUNES]
SkillStatusData(uint32 _pos, SkillUpdateState _uState)
SpecializationInfo(SpecializationInfo const &)=delete
SpecializationInfo & operator=(SpecializationInfo const &)=delete
SpellFlatModifierByClassMask(SpellModOp _op, uint32 _spellId, Aura *_ownerAura, flag128 _mask)
SpellFlatModifierByLabel(SpellModOp _op, uint32 _spellId, Aura *_ownerAura, uint32 _label)
UF::SpellFlatModByLabel value
SpellModifierByClassMask(SpellModOp _op, SpellModType _type, uint32 _spellId, Aura *_ownerAura, flag128 const &_mask)
bool operator()(SpellModifier const *left, SpellModifier const *right) const
virtual ~SpellModifier()=default
SpellModifier(SpellModOp _op, SpellModType _type, uint32 _spellId, Aura *_ownerAura)
SpellPctModifierByClassMask(SpellModOp _op, uint32 _spellId, Aura *_ownerAura, flag128 _mask)
SpellPctModifierByLabel(SpellModOp _op, uint32 _spellId, Aura *_ownerAura, int32 _label)
UF::SpellPctModByLabel value
enum StoredAuraTeleportLocation::@268 State
Optional< uint32 > InstanceId
Optional< uint32 > LfgDungeonsId
Optional< ObjectGuid > TransportGuid
constexpr bool HasRace(uint32 raceId) const
UpdateField< uint32, 32, 66 > TrackCreatureMask
UpdateField< int32, 102, 111 > WatchedFactionIndex
UpdateField< uint8, 102, 132 > NumBankSlots
DynamicUpdateField< uint64, 0, 7 > KnownTitles
DynamicUpdateField< uint32, 0, 15 > HeirloomFlags
UpdateField< bool, 0, 3 > BankAutoSortDisabled
DynamicUpdateField< uint32, 0, 17 > ToyFlags
UpdateField< int32, 70, 99 > ModTargetResistance
UpdateField< bool, 0, 2 > BackpackSellJunkDisabled
UpdateFieldArray< uint32, 4, 365, 366 > NoReagentCostMask
UpdateField< ObjectGuid, 32, 57 > SummonedBattlePetGUID
UpdateFieldArray< uint32, 5, 373, 374 > BagSlotFlags
UpdateField< uint32, 70, 101 > LocalFlags
DynamicUpdateField< UF::BankTabSettings, 32, 48 > CharacterBankTabSettings
UpdateField< int32, 134, 142 > TransportServerTime
UpdateFieldArray< int32, 7, 271, 279 > ModDamageDoneNeg
UpdateFieldArray< int32, 7, 271, 272 > ModDamageDonePos
UpdateFieldArray< uint32, 12, 307, 308 > BuybackPrice
DynamicUpdateField< int32, 0, 19 > ConditionalTransmog
DynamicUpdateField< uint32, 0, 23 > WarbandScenes
UpdateFieldArray< float, 7, 271, 286 > ModDamageDonePercent
UpdateFieldArray< int64, 12, 307, 320 > BuybackTimestamp
UpdateField< uint8, 134, 155 > RequiredMountCapabilityFlags
DynamicUpdateField< int32, 0, 16 > Toys
UpdateField< uint8, 102, 133 > NumCharacterBankTabs
DynamicUpdateField< uint32, 0, 18 > Transmog
UpdateField< UF::SkillInfo, 32, 63 > Skill
UpdateField< int32, 70, 100 > ModTargetPhysicalResistance
UpdateField< float, 70, 88 > VersatilityBonus
UpdateField< uint32, 134, 147 > ActiveCombatTraitConfigID
UpdateFieldArray< ObjectGuid, 105, 162, 163 > InvSlots
UpdateField< uint16, 102, 127 > LootSpecID
UpdateField< uint32, 102, 128 > OverrideZonePVPType
UpdateField< int32, 32, 64 > CharacterPoints
UpdateField< uint8, 134, 135 > NumAccountBankTabs
UpdateField< float, 70, 97 > OverrideSpellPowerByAPPercent
UpdateField< bool, 0, 1 > BackpackAutoSortDisabled
UpdateField< uint8, 102, 104 > MultiActionBars
DynamicUpdateField< uint32, 0, 22 > TransmogIllusions
DynamicUpdateField< UF::BankTabSettings, 32, 49 > AccountBankTabSettings
DynamicUpdateField< int32, 0, 14 > Heirlooms
UpdateField< float, 70, 98 > OverrideAPBySpellPowerPercent
UpdateField< uint8, 102, 124 > AuraVision
UpdateFieldArray< UF::RestInfo, 2, 268, 269 > RestInfo
UpdateField< uint8, 102, 106 > NumRespecs
DynamicUpdateField< int32, 0, 20 > SelfResSpells
UpdateField< int32, 102, 116 > PetSpellPower
UpdateField< int32, 102, 126 > OverrideSpellsID
UpdateField< int32, -1, 3 > DepositFlags
UpdateField< std::string, -1, 1 > Icon
UpdateField< std::string, -1, 2 > Description
UpdateField< std::string, -1, 0 > Name
uint32 ChrCustomizationChoiceID
uint32 ChrCustomizationOptionID
std::conditional_t< std::is_base_of_v< IsUpdateFieldStructureTag, V >, MutableFieldReference< V, PublicSet >, std::conditional_t< std::is_base_of_v< IsUpdateFieldHolderTag, V >, MutableNestedFieldReference< V, PublicSet >, UpdateFieldSetter< V, PublicSet > > > ModifyValue(UpdateField< V, BlockBit, Bit >(T::*field))
UpdateField< uint8, 32, 33 > CurrentBattlePetBreedQuality
UpdateField< ObjectGuid, 0, 13 > LootTargetGUID
UpdateField< int32, 0, 18 > GuildLevel
UpdateField< uint32, 0, 29 > CurrentSpecID
UpdateField< int32, 0, 26 > PlayerTitle
DynamicUpdateField< UF::ChrCustomizationChoice, 0, 3 > Customizations
UpdateField< int32, 0, 27 > FakeInebriation
UpdateField< uint8, 0, 21 > PvpTitle
UpdateField< ObjectGuid, 0, 9 > DuelArbiter
UpdateFieldArray< float, 6, 249, 250 > AvgItemLevel
UpdateField< uint32, 0, 14 > PlayerFlags
UpdateField< uint8, 0, 22 > ArenaFaction
UpdateField< uint32, 0, 16 > GuildRankID
UpdateField< uint32, 0, 23 > DuelTeam
UpdateField< int32, 0, 30 > CurrentCombatTraitConfigSubTreeID
UpdateField< uint32, 0, 15 > PlayerFlagsEx
UpdateField< uint8, 0, 19 > NativeSex
UpdateField< uint32, 0, 28 > VirtualPlayerRealm
UpdateField< uint32, 0, 1 > Threshold
UpdateField< uint8, 0, 2 > StateID
UpdateFieldArray< uint16, 300, 0, 1201 > SkillMaxRank
UpdateFieldArray< uint16, 300, 0, 1801 > SkillPermBonus
UpdateFieldArray< uint16, 300, 0, 1 > SkillLineID
UpdateFieldArray< int16, 300, 0, 1501 > SkillTempBonus
UpdateFieldArray< uint16, 300, 0, 301 > SkillStep
UpdateFieldArray< uint16, 300, 0, 901 > SkillStartingRank
UpdateFieldArray< uint16, 300, 0, 601 > SkillRank
UpdateField< ObjectGuid, 0, 22 > Target