314#define ACTION_BUTTON_ACTION(X) (uint64(X) & 0x00FFFFFFFFFFFFFF)
315#define ACTION_BUTTON_TYPE(X) ((uint64(X) & 0xFF00000000000000) >> 56)
316#define MAX_ACTION_BUTTON_ACTION_VALUE UI64LIT(0xFFFFFFFFFFFFFF)
340#define MAX_ACTION_BUTTONS 180
385#define MAX_RECHARGING_RUNES 3
513#define DISABLED_MIRROR_TIMER -1
623static_assert(UF::size<decltype(UF::ActivePlayerData::InvSlots)>() ==
PLAYER_SLOT_END);
625#define INVENTORY_SLOT_BAG_0 255
626#define INVENTORY_DEFAULT_SIZE 16
746 bool isContainedIn(std::vector<ItemPosCount>
const& vec)
const;
832#define MAX_PLAYED_TIME_INDEX 2
915#define MAX_PLAYER_SUMMON_DELAY (2*MINUTE)
1025 uint32 fixedScalingLevel,
uint32 artifactKnowledgeLevel,
ItemContext context, std::vector<int32>
const& bonuses)
1121 void CleanupsBeforeDelete(
bool finalCleanup =
true)
override;
1123 void AddToWorld()
override;
1124 void RemoveFromWorld()
override;
1126 void SetObjectScale(
float scale)
override;
1130 bool TeleportToBGEntryPoint();
1132 bool HasSummonPending()
const;
1133 void SendSummonRequestFrom(
Unit* summoner);
1134 void SummonIfPossible(
bool agree);
1140 bool IsImmunedToSpellEffect(
SpellInfo const* spellInfo,
SpellEffectInfo const& spellEffectInfo,
WorldObject const* caster,
bool requireImmunityPurgesEffectAttribute =
false)
const override;
1144 void SendInitialPacketsBeforeAddToMap();
1145 void SendInitialPacketsAfterAddToMap();
1146 void SendSupercededSpell(
uint32 oldSpell,
uint32 newSpell)
const;
1149 bool CanInteractWithQuestGiver(
Object* questGiver)
const;
1158 uint16 GetChatFlags()
const;
1164 void RemoveSocial();
1168 bool ActivateTaxiPathTo(std::vector<uint32>
const& nodes,
Creature* npc =
nullptr,
uint32 spellid = 0,
uint32 preferredMountDisplay = 0);
1169 bool ActivateTaxiPathTo(
uint32 taxi_path_id,
uint32 spellid = 0);
1170 void FinishTaxiFlight();
1171 void CleanupAfterTaxiFlight();
1172 void ContinueTaxiFlight()
const;
1180 bool CanBeGameMaster()
const;
1181 void SetGameMaster(
bool on);
1187 void SetGMVisible(
bool on);
1199 void GiveXP(
uint32 xp,
Unit* victim,
float group_rate=1.0f);
1200 void GiveLevel(
uint8 level);
1201 bool IsMaxLevel()
const;
1203 void InitStatsForLevel(
bool reapplyMods =
false);
1228 void SetStableMaster(
ObjectGuid stableMaster);
1232 void RemovePet(
Pet* pet,
PetSaveMode mode,
bool returnreagent =
false);
1237 void AddPetAura(
PetAura const* petSpell);
1238 void RemovePetAura(
PetAura const* petSpell);
1240 Creature* GetSummonedBattlePet()
const;
1250 void TextEmote(std::string_view text,
WorldObject const* =
nullptr,
bool =
false)
override;
1251 void TextEmote(
uint32 textId,
WorldObject const* target =
nullptr,
bool isBossEmote =
false)
override;
1253 void Whisper(std::string_view text,
Language language,
Player* receiver,
bool =
false)
override;
1254 void Whisper(
uint32 textId,
Player* target,
bool isBossWhisper =
false)
override;
1255 void WhisperAddon(std::string
const& text, std::string
const& prefix,
bool isLogged,
Player* receiver);
1257 bool CanUnderstandLanguage(
Language language)
const;
1269 template <
typename T>
1301 if (
Bag* pBag = GetBagByPos(i))
1316 if (
Bag* pBag = GetBagByPos(i))
1326 if (
Bag* bag = GetBagByPos(i))
1342 void UpdateAverageItemLevelTotal();
1343 void UpdateAverageItemLevelEquipped();
1347 uint32 GetItemCount(
uint32 item,
bool inBankAlso =
false,
Item* skipItem =
nullptr)
const;
1348 uint32 GetItemCountWithLimitCategory(
uint32 limitCategory,
Item* skipItem =
nullptr)
const;
1351 std::vector<Item*> GetItemListByEntry(
uint32 entry,
bool inBankAlso =
false)
const;
1355 Bag* GetBagByPos(
uint8 slot)
const;
1356 std::vector<Item*> GetCraftingReagentItemsToDeposit();
1357 uint32 GetFreeInventorySpace()
const;
1359 Item* GetShield(
bool useable =
false)
const;
1364 static bool IsInventoryPos(
uint8 bag,
uint8 slot);
1366 static bool IsEquipmentPos(
uint8 bag,
uint8 slot);
1367 static bool IsBagPos(
uint16 pos);
1369 static bool IsBankPos(
uint8 bag,
uint8 slot);
1371 static bool IsReagentBankPos(
uint8 bag,
uint8 slot);
1373 static bool IsChildEquipmentPos(
uint8 bag,
uint8 slot);
1375 bool IsValidPos(
uint8 bag,
uint8 slot,
bool explicit_pos)
const;
1377 void SetInventorySlotCount(
uint8 slots);
1380 bool HasItemCount(
uint32 item,
uint32 count = 1,
bool inBankAlso =
false)
const;
1381 bool HasItemFitToSpellRequirements(
SpellInfo const* spellInfo,
Item const* ignoreItem =
nullptr)
const;
1382 bool CanNoReagentCast(
SpellInfo const* spellInfo)
const;
1385 for (
uint8 i = 0; i < 4; ++i)
1416 void AutoUnequipOffhandIfNeed(
bool force =
false);
1417 void EquipChildItem(
uint8 parentBag,
uint8 parentSlot,
Item* parentItem);
1418 void AutoUnequipChildItem(
Item* parentItem);
1421 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); }
1431 void SendCurrencies()
const;
1433 void SendPvpRewards()
const;
1443 void ResetCurrencyWeekCap();
1448 uint32 GetCurrencyIncreasedCapQuantity(
uint32 id)
const;
1449 uint32 GetCurrencyMaxQuantity(
CurrencyTypesEntry const* currency,
bool onLoad =
false,
bool onUpdateVersion =
false)
const;
1456 void ApplyEquipCooldown(
Item* pItem);
1457 void QuickEquipItem(
uint16 pos,
Item* pItem);
1458 void VisualizeItem(
uint8 slot,
Item* pItem);
1459 void SetVisibleItemSlot(
uint8 slot,
Item* pItem);
1461 void RemoveItem(
uint8 bag,
uint8 slot,
bool update);
1462 void MoveItemFromInventory(
uint8 bag,
uint8 slot,
bool update);
1464 void MoveItemToInventory(
ItemPosCountVec const& dest,
Item* pItem,
bool update,
bool in_characterInventoryDB =
false);
1466 void RemoveItemDependentAurasAndCasts(
Item* pItem);
1467 void DestroyItem(
uint8 bag,
uint8 slot,
bool update);
1468 uint32 DestroyItemCount(
uint32 item,
uint32 count,
bool update,
bool unequip_check =
false);
1469 void DestroyItemCount(
Item* item,
uint32& count,
bool update);
1470 void DestroyConjuredItems(
bool update);
1471 void DestroyZoneLimitedItem(
bool update,
uint32 new_zone);
1474 void AddItemToBuyBackSlot(
Item* pItem);
1478 void RemoveItemFromBuyBackSlot(
uint32 slot,
bool del);
1486 bool IsUseEquipedWeapon(
bool mainhand)
const;
1487 bool IsTwoHandUsed()
const;
1488 bool IsUsingTwoHandedWeaponInOneHand()
const;
1489 void SendNewItem(
Item* item,
uint32 quantity,
bool received,
bool created,
bool broadcast =
false,
uint32 dungeonEncounterId = 0);
1494 float GetReputationPriceDiscount(
Creature const* creature)
const;
1497 Player* GetTrader()
const;
1499 void TradeCancel(
bool sendback);
1503 void UpdateEnchantTime(
uint32 time);
1504 void UpdateSoulboundTradeItems();
1505 void AddTradeableItem(
Item* item);
1506 void RemoveTradeableItem(
Item* item);
1507 void UpdateItemDuration(
uint32 time,
bool realtimeonly =
false);
1508 void AddEnchantmentDurations(
Item* item);
1509 void RemoveEnchantmentDurations(
Item* item);
1510 void RemoveEnchantmentDurationsReferences(
Item* item);
1513 void ApplyEnchantment(
Item* item,
EnchantmentSlot slot,
bool apply,
bool apply_dur =
true,
bool ignore_condition =
false);
1514 void ApplyEnchantment(
Item* item,
bool apply);
1516 void SendEnchantmentDurations();
1517 void AddItemDurations(
Item* item);
1518 void RemoveItemDurations(
Item* item);
1519 void SendItemDurations();
1528 void PrepareGossipMenu(
WorldObject* source,
uint32 menuId,
bool showQuests =
false);
1540 int32 GetQuestMinLevel(
Quest const* quest)
const;
1541 int32 GetQuestMinLevel(
uint32 contentTuningId)
const;
1542 int32 GetQuestLevel(
Quest const* quest)
const;
1543 int32 GetQuestLevel(
uint32 contentTuningId)
const;
1546 bool IsActiveQuest(
uint32 quest_id)
const;
1547 Quest const* GetNextQuest(
Object const* questGiver,
Quest const* quest)
const;
1548 bool CanSeeStartQuest(
Quest const* quest)
const;
1549 bool CanTakeQuest(
Quest const* quest,
bool msg)
const;
1550 bool CanAddQuest(
Quest const* quest,
bool msg)
const;
1551 bool CanCompleteQuest(
uint32 quest_id,
uint32 ignoredQuestObjectiveId = 0);
1552 bool CanCompleteRepeatableQuest(
Quest const* quest);
1553 bool CanRewardQuest(
Quest const* quest,
bool msg)
const;
1555 void AddQuestAndCheckCompletion(
Quest const* quest,
Object* questGiver);
1556 void AddQuest(
Quest const* quest,
Object* questGiver);
1557 void AbandonQuest(
uint32 quest_id);
1559 void IncompleteQuest(
uint32 quest_id);
1560 uint32 GetQuestMoneyReward(
Quest const* quest)
const;
1565 void SetRewardedQuest(
uint32 quest_id);
1566 void FailQuest(
uint32 quest_id);
1568 bool SatisfyQuestSkill(
Quest const* qInfo,
bool msg)
const;
1569 bool SatisfyQuestLevel(
Quest const* qInfo,
bool msg)
const;
1570 bool SatisfyQuestMinLevel(
Quest const* qInfo,
bool msg)
const;
1571 bool SatisfyQuestMaxLevel(
Quest const* qInfo,
bool msg)
const;
1572 bool SatisfyQuestLog(
bool msg)
const;
1573 bool SatisfyQuestDependentQuests(
Quest const* qInfo,
bool msg)
const;
1574 bool SatisfyQuestPreviousQuest(
Quest const* qInfo,
bool msg)
const;
1575 bool SatisfyQuestDependentPreviousQuests(
Quest const* qInfo,
bool msg)
const;
1576 bool SatisfyQuestBreadcrumbQuest(
Quest const* qInfo,
bool msg)
const;
1577 bool SatisfyQuestDependentBreadcrumbQuests(
Quest const* qInfo,
bool msg)
const;
1578 bool SatisfyQuestClass(
Quest const* qInfo,
bool msg)
const;
1579 bool SatisfyQuestRace(
Quest const* qInfo,
bool msg)
const;
1580 bool SatisfyQuestReputation(
Quest const* qInfo,
bool msg)
const;
1581 bool SatisfyQuestStatus(
Quest const* qInfo,
bool msg)
const;
1582 bool SatisfyQuestConditions(
Quest const* qInfo,
bool msg)
const;
1583 bool SatisfyQuestTimed(
Quest const* qInfo,
bool msg)
const;
1584 bool SatisfyQuestExclusiveGroup(
Quest const* qInfo,
bool msg)
const;
1585 bool SatisfyQuestDay(
Quest const* qInfo,
bool msg)
const;
1586 bool SatisfyQuestWeek(
Quest const* qInfo,
bool msg)
const;
1587 bool SatisfyQuestMonth(
Quest const* qInfo,
bool msg)
const;
1588 bool SatisfyQuestSeasonal(
Quest const* qInfo,
bool msg)
const;
1589 bool SatisfyQuestExpansion(
Quest const* qInfo,
bool msg)
const;
1590 bool GiveQuestSourceItem(
Quest const* quest);
1591 bool TakeQuestSourceItem(
uint32 questId,
bool msg);
1592 bool GetQuestRewardStatus(
uint32 quest_id)
const;
1595 void RemoveActiveQuest(
uint32 questId,
bool update =
true);
1596 void RemoveRewardedQuest(
uint32 questId,
bool update =
true);
1597 void SendQuestUpdate(
uint32 questId,
bool updateInteractions =
true,
bool updateGameObjectQuestGiverStatus =
false);
1599 void SkipQuests(std::vector<uint32>
const& questIds);
1600 void DespawnPersonalSummonsForQuest(
uint32 questId);
1602 void SetDailyQuestStatus(
uint32 quest_id);
1603 bool IsDailyQuestDone(
uint32 quest_id)
const;
1604 void SetWeeklyQuestStatus(
uint32 quest_id);
1605 void SetMonthlyQuestStatus(
uint32 quest_id);
1606 void SetSeasonalQuestStatus(
uint32 quest_id);
1608 void ResetWeeklyQuestStatus();
1609 void ResetMonthlyQuestStatus();
1610 void ResetSeasonalQuestStatus(
uint16 event_id, time_t eventStartTime);
1617 bool GetQuestSlotObjectiveFlag(
uint16 slot,
int8 objectiveIndex)
const;
1624 void SetQuestSlotEndTime(
uint16 slot, time_t endTime);
1625 void SetQuestSlotObjectiveFlag(
uint16 slot,
int8 objectiveIndex);
1626 void RemoveQuestSlotObjectiveFlag(
uint16 slot,
int8 objectiveIndex);
1627 void SetQuestCompletedBit(
uint32 questBit,
bool completed);
1630 void AreaExploredOrEventHappens(
uint32 questId);
1632 void ItemAddedQuestCheck(
uint32 entry,
uint32 count,
Optional<bool> boundItemFlagRequirement = {},
bool* hadBoundItemObjective =
nullptr);
1633 void ItemRemovedQuestCheck(
uint32 entry,
uint32 count);
1636 void KilledPlayerCredit(
ObjectGuid victimGuid);
1639 void KillCreditCriteriaTreeObjective(
QuestObjective const& questObjective);
1640 void MoneyChanged(
uint64 value);
1642 void CurrencyChanged(
uint32 currencyId,
int32 change);
1644 std::vector<QuestObjective const*>* updatedObjectives =
nullptr, std::function<
bool(
QuestObjective const*)>
const* objectiveFilter =
nullptr);
1645 bool HasQuestForItem(
uint32 itemId)
const;
1647 bool HasQuestForGO(
int32 goId)
const;
1648 void UpdateVisibleObjectInteractions(
bool allUnits,
bool onlySpellClicks,
bool gameObjectQuestGiverStatus,
bool questObjectiveGameObjects);
1649 bool CanShareQuest(
uint32 questId)
const;
1655 bool IsQuestObjectiveComplete(
uint32 questId,
uint32 objectiveId)
const;
1656 bool IsQuestObjectiveProgressBarComplete(
uint16 slot,
Quest const* quest)
const;
1657 void SendQuestComplete(
uint32 questId)
const;
1658 void SendQuestReward(
Quest const* quest,
Creature const* questGiver,
uint32 xp,
bool hideChatMessage)
const;
1660 void SendQuestTimerFailed(
uint32 questId)
const;
1661 void SendCanTakeQuestResponse(
QuestFailedReason reason,
bool sendErrorMessage =
true, std::string reasonText =
"")
const;
1662 void SendQuestConfirmAccept(
Quest const* quest,
Player* receiver)
const;
1665 void SendQuestUpdateAddCreditSimple(
QuestObjective const& obj)
const;
1667 void SendQuestUpdateAddPlayer(
Quest const* quest,
uint16 newCount)
const;
1668 void SendQuestGiverStatusMultiple();
1690 if (_CUFProfiles[i])
1695 bool HasPvPForcingQuest()
const;
1702 bool IsLoading()
const override;
1705 static bool LoadPositionFromDB(
uint32& mapid,
float& x,
float& y,
float& z,
float& o,
bool& in_flight,
ObjectGuid guid);
1715 void SaveToDB(
bool create =
false);
1723 static void DeleteFromDB(
ObjectGuid playerguid,
uint32 accountId,
bool updateRealmChars =
true,
bool deleteFinally =
false);
1724 static void DeleteOldCharacters();
1725 static void DeleteOldCharacters(
uint32 keepDays);
1731 void RegenerateAll();
1732 void Regenerate(
Powers power);
1733 void InterruptPowerRegen(
Powers power);
1734 void RegenerateHealth();
1739 bool ModifyMoney(
int64 amount,
bool sendError =
true);
1742 void SetMoney(
uint64 value);
1748 bool IsQuestRewarded(
uint32 quest_id)
const;
1750 Unit* GetSelectedUnit()
const;
1751 Player* GetSelectedPlayer()
const;
1757 void SendNewMail()
const;
1758 void UpdateNextMailTimeAndUnreads();
1759 void AddNewMailDeliverTime(time_t deliver_time);
1761 void RemoveMail(
uint64 id);
1778 typedef std::unordered_map<ObjectGuid::LowType, Item*>
ItemMap;
1783 void AddMItem(
Item* it);
1786 void SendOnCancelExpectedVehicleRideAura()
const;
1787 void PetSpellInitialize();
1788 void CharmSpellInitialize();
1789 void PossessSpellInitialize();
1790 void VehicleSpellInitialize();
1791 void SendRemoveControlBar()
const;
1792 bool HasSpell(
uint32 spell)
const override;
1793 bool HasActiveSpell(
uint32 spell)
const;
1795 bool IsSpellFitByClassAndRace(
uint32 spell_id)
const;
1796 bool HandlePassiveSpellLearn(
SpellInfo const* spellInfo);
1798 void SendProficiency(
ItemClass itemClass,
uint32 itemSubclassMask)
const;
1799 void SendKnownSpells();
1800 void SendUnlearnSpells();
1801 bool AddSpell(
uint32 spellId,
bool active,
bool learning,
bool dependent,
bool disabled,
bool loading =
false,
int32 fromSkill = 0,
bool favorite =
false,
Optional<int32> traitDefinitionId = {});
1802 void LearnSpell(
uint32 spell_id,
bool dependent,
int32 fromSkill = 0,
bool suppressMessaging =
false,
Optional<int32> traitDefinitionId = {});
1803 void RemoveSpell(
uint32 spell_id,
bool disabled =
false,
bool learn_low_rank =
true,
bool suppressMessaging =
false);
1804 void ResetSpells(
bool myClassOnly =
false);
1805 void LearnCustomSpells();
1806 void LearnDefaultSkills();
1808 void LearnQuestRewardedSpells();
1809 void LearnQuestRewardedSpells(
Quest const* quest);
1810 void AddTemporarySpell(
uint32 spellId);
1811 void RemoveTemporarySpell(
uint32 spellId);
1813 void AddOverrideSpell(
uint32 overridenSpellId,
uint32 newSpellId);
1814 void RemoveOverrideSpell(
uint32 overridenSpellId,
uint32 newSpellId);
1815 void LearnSpecializationSpells();
1816 void RemoveSpecializationSpells();
1817 void AddSpellCategoryCooldownMod(
int32 spellCategoryId,
int32 mod);
1818 void RemoveSpellCategoryCooldownMod(
int32 spellCategoryId,
int32 mod);
1819 void SetSpellFavorite(
uint32 spellId,
bool favorite);
1821 void AddStoredAuraTeleportLocation(
uint32 spellId);
1822 void RemoveStoredAuraTeleportLocation(
uint32 spellId);
1825 void SetReputation(
uint32 factionentry,
int32 value);
1827 std::string GetGuildName()
const;
1845 uint32 GetDefaultSpecId()
const;
1848 bool ResetTalents(
bool noCost =
false);
1849 void ResetPvpTalents();
1850 uint32 GetNextResetTalentsCost()
const;
1851 void InitTalentForLevel();
1852 void SendTalentsInfoData();
1855 bool HasTalent(
uint32 spell_id,
uint8 spec)
const;
1857 void ResetTalentSpecialization();
1862 void TogglePvpTalents(
bool enable);
1863 bool HasPvpTalent(
uint32 talentID,
uint8 activeTalentGroup)
const;
1864 void EnablePvpRules(
bool dueToCombat =
false);
1865 void DisablePvpRules();
1866 bool HasPvpRulesEnabled()
const;
1867 bool IsInAreaThatActivatesPvpTalents()
const;
1868 bool IsAreaThatActivatesPvpTalents(
uint32 areaID)
const;
1877 std::vector<uint32>
const&
GetGlyphs(
uint8 spec)
const {
return _specializationInfo.Glyphs[spec]; }
1878 std::vector<uint32>&
GetGlyphs(
uint8 spec) {
return _specializationInfo.Glyphs[spec]; }
1880 void StartLoadingActionButtons(std::function<
void()>&& callback =
nullptr);
1889 void RenameTraitConfig(
int32 editedConfigId, std::string&& newName);
1890 void DeleteTraitConfig(
int32 deletedConfigId);
1891 void ApplyTraitConfig(
int32 configId,
bool apply);
1894 void SetTraitConfigUseStarterBuild(
int32 traitConfigId,
bool useStarterBuild);
1895 void SetTraitConfigUseSharedActionBars(
int32 traitConfigId,
bool usesSharedActionBars,
bool isLastSelectedSavedConfig);
1899 void InitPrimaryProfessions();
1911 void SetSpellModTakingSpell(
Spell* spell,
bool apply);
1912 void SendSpellModifiers()
const;
1914 void RemoveArenaSpellCooldowns(
bool removeActivePetCooldowns =
false);
1917 void UpdatePotionCooldown(
Spell* spell =
nullptr);
1922 _resurrectionData.reset();
1927 if (!IsResurrectRequested())
1930 return !_resurrectionData->GUID.IsEmpty() && _resurrectionData->GUID == guid;
1934 void ResurrectUsingRequestData();
1935 void ResurrectUsingRequestDataImpl();
1946 void RemoveActionButton(
uint8 button);
1949 void SendActionButtons(
uint32 state)
const;
1950 bool IsActionButtonDataValid(
uint8 button,
uint64 action,
uint8 type)
const;
1955 void UpdatePvPState(
bool onlyFFA =
false);
1956 void SetPvP(
bool state)
override;
1957 void UpdatePvP(
bool state,
bool override =
false);
1959 void UpdateArea(
uint32 newArea);
1961 void UpdateZoneDependentAuras(
uint32 zone_id);
1962 void UpdateAreaDependentAuras(
uint32 area_id);
1964 void UpdateAfkReport(time_t currTime);
1965 void UpdatePvPFlag(time_t currTime);
1966 void SetContestedPvP(
Player* attackedPlayer =
nullptr);
1967 void UpdateContestedPvP(
uint32 currTime);
1969 void ResetContestedPvP();
1973 void UpdateDuelFlag(time_t currTime);
1974 void CheckDuelDistance(time_t currTime);
1979 bool IsGroupVisibleFor(
Player const* p)
const;
1980 bool IsInSameGroupWith(
Player const* p)
const;
1981 bool IsInSameRaidWith(
Player const* p)
const;
1982 void UninviteFromGroup();
1985 void SendUpdateToOutOfRangeGroupMembers();
1995 Guild const* GetGuild()
const;
1997 static void RemovePetitionsAndSigns(
ObjectGuid guid);
2003 static void LeaveAllArenaTeams(
ObjectGuid guid);
2024 bool UpdateCraftSkill(
SpellInfo const* spellInfo);
2026 bool UpdateFishingSkill(
int32 expansion);
2028 float GetHealthBonusFromStamina()
const;
2029 Stats GetPrimaryStat()
const;
2031 bool UpdateStats(
Stats stat)
override;
2032 bool UpdateAllStats()
override;
2033 void ApplySpellPenetrationBonus(
int32 amount,
bool apply);
2036 void UpdateResistances(
uint32 school)
override;
2037 void UpdateArmor()
override;
2038 void UpdateMaxHealth()
override;
2039 void UpdateMaxPower(
Powers power)
override;
2041 void UpdateAttackPowerAndDamage(
bool ranged =
false)
override;
2042 void ApplySpellPowerBonus(
int32 amount,
bool apply);
2043 void UpdateSpellDamageAndHealingBonus();
2050 void UpdateAllRatings();
2051 void UpdateMastery();
2052 void UpdateVersatilityDamageDone();
2053 void UpdateHealingDonePercentMod();
2054 bool CanUseMastery()
const;
2056 void CalculateMinMaxDamage(
WeaponAttackType attType,
bool normalized,
bool addTotalPct,
float& minDamage,
float& maxDamage)
const override;
2059 void GetDodgeFromAgility(
float &diminishing,
float &nondiminishing)
const;
2062 float ApplyRatingDiminishing(
CombatRating cr,
float bonusValue)
const;
2071 void UpdateBlockPercentage();
2073 void UpdateAllCritPercentages();
2074 void UpdateParryPercentage();
2075 void UpdateDodgePercentage();
2076 void UpdateMeleeHitChances();
2077 void UpdateRangedHitChances();
2078 void UpdateSpellHitChances();
2080 void UpdateSpellCritChance();
2081 void UpdateCorruption();
2082 void UpdateArmorPenetration(
int32 amount);
2084 void ApplyManaRegenBonus(
int32 amount,
bool apply);
2085 void ApplyHealthRegenBonus(
int32 amount,
bool apply);
2086 void UpdateManaRegen();
2087 void UpdateAllRunesRegen();
2093 Loot* GetLootByWorldObjectGUID(
ObjectGuid const& lootWorldObjectGuid)
const;
2094 std::unordered_map<ObjectGuid, Loot*>
const&
GetAELootView()
const {
return m_AELootView; }
2097 void RemoveLootRoll(
LootRoll* roll);
2099 void RemovedInsignia(
Player* looterPlr);
2105 void BuildValuesCreate(
ByteBuffer* data,
Player const* target)
const override;
2106 void BuildValuesUpdate(
ByteBuffer* data,
Player const* target)
const override;
2107 void ClearUpdateMask(
bool remove)
override;
2110 void BuildCreateUpdateBlockForPlayer(
UpdateData* data,
Player* target)
const override;
2125 void operator()(
Player const* player)
const;
2128 void DestroyForPlayer(
Player* target)
const override;
2131 void SendAttackSwingCancelAttack()
const;
2133 void SendAutoRepeatCancel(
Unit* target);
2134 void SendExplorationExperience(
uint32 Area,
uint32 Experience)
const;
2136 void SendDungeonDifficulty(
int32 forcedDifficulty = -1)
const;
2137 void SendRaidDifficulty(
bool legacy,
int32 forcedDifficulty = -1)
const;
2139 void SendResetInstanceSuccess(
uint32 MapId)
const;
2141 void SendResetFailedNotify(
uint32 mapid)
const;
2142 bool IsLockedToDungeonEncounter(
uint32 dungeonEncounterId)
const;
2143 bool IsLockedToDungeonEncounter(
uint32 dungeonEncounterId,
Difficulty difficulty)
const;
2145 bool UpdatePosition(
float x,
float y,
float z,
float orientation,
bool teleport =
false)
override;
2148 void AtEnterCombat()
override;
2149 void AtExitCombat()
override;
2152 void SendMessageToSetInRange(
WorldPacket const* data,
float dist,
bool self)
const override;
2153 void SendMessageToSetInRange(
WorldPacket const* data,
float dist,
bool self,
bool own_team_only,
bool required3dDist =
false)
const;
2154 void SendMessageToSet(
WorldPacket const* data,
Player const* skipped_rcvr)
const override;
2156 void SendChatMessageToSetInRange(
ChatMsg chatMsg,
Language lanugageId, std::string&& text,
float range);
2159 void SpawnCorpseBones(
bool triggerSave =
true);
2165 void InitializeSelfResurrectionSpells();
2166 void ResurrectPlayer(
float restore_percent,
bool applySickness =
false);
2167 void BuildPlayerRepop();
2168 void RepopAtGraveyard();
2170 void DurabilityLossAll(
double percent,
bool inventory);
2171 void DurabilityLoss(
Item* item,
double percent);
2172 void DurabilityPointsLossAll(
int32 points,
bool inventory);
2173 void DurabilityPointsLoss(
Item* item,
int32 points);
2175 void DurabilityRepairAll(
bool takeCost,
float discountMod,
bool guildBank);
2176 void DurabilityRepair(
uint16 pos,
bool takeCost,
float discountMod);
2178 void UpdateMirrorTimers();
2179 void StopMirrorTimers();
2184 void JoinedChannel(
Channel* c);
2186 void CleanupChannels();
2187 void UpdateLocalChannels(
uint32 newZone);
2188 void LeaveLFGChannel();
2193 void InitializeSkillFields();
2204 bool HasSkill(
uint32 skill)
const;
2207 int32 FindEmptyProfessionSlotFor(
uint32 skillId)
const;
2225 void ProcessDelayedOperations();
2227 void CheckAreaExploreAndOutdoor(
void);
2230 bool HasExploredZone(
uint32 areaId)
const;
2234 static uint8 GetFactionGroupForRace(
uint8 race);
2237 void SetFactionForRace(
uint8 race);
2242 void InitDisplayIds();
2244 bool IsAtGroupRewardDistance(
WorldObject const* pRewardSource)
const;
2245 bool IsAtRecruitAFriendDistance(
WorldObject const* pOther)
const;
2246 void RewardPlayerAndGroupAtEvent(
uint32 creature_id,
WorldObject* pRewardSource);
2247 bool isHonorOrXPTarget(
Unit const* victim)
const;
2249 bool GetsRecruitAFriendBonus(
bool forXP);
2254 void RewardReputation(
Unit* victim,
float rate);
2255 void RewardReputation(
Quest const* quest);
2259 void UpdateSkillsForLevel();
2260 void ModifySkillBonus(
uint32 skillid,
int32 val,
bool talent);
2265 void UpdateHonorFields();
2266 bool RewardHonor(
Unit* victim,
uint32 groupsize,
int32 honor = -1,
bool pvptoken =
false);
2267 void ResetHonorStats();
2268 uint32 GetMaxPersonalArenaRatingRequirement(
uint32 minarenaslot)
const;
2277 void AddHonorXP(
uint32 xp);
2278 void SetHonorLevel(
uint8 honorLevel);
2281 void UpdateHonorNextLevel();
2284 void RewardPlayerWithRewardPack(
uint32 rewardPackID);
2285 void RewardPlayerWithRewardPack(
RewardPackEntry const* rewardPackEntry);
2287 void SetDrunkValue(
uint8 newDrunkValue,
uint32 itemId = 0);
2292 uint32 GetCorpseReclaimDelay(
bool pvp)
const;
2293 void UpdateCorpseReclaimDelay();
2294 int32 CalculateCorpseReclaimDelay(
bool load =
false)
const;
2295 void SendCorpseReclaimDelay(
uint32 delay)
const;
2297 float GetBlockPercent(
uint8 attackerLevel)
const override;
2299 void SetCanParry(
bool value);
2301 void SetCanBlock(
bool value);
2303 void SetCanTitanGrip(
bool value,
uint32 penaltySpellId = 0);
2304 void CheckTitanGripPenalty();
2307 void SetRegularAttackTime();
2310 void ApplyBaseModPctValue(
BaseModGroup modGroup,
float pct);
2312 void SetBaseModFlatValue(
BaseModGroup modGroup,
float val);
2313 void SetBaseModPctValue(
BaseModGroup modGroup,
float val);
2319 float GetTotalBaseModValue(
BaseModGroup modGroup)
const;
2321 void _ApplyAllStatBonuses();
2322 void _RemoveAllStatBonuses();
2324 void ResetAllPowers();
2328 void CastAllObtainSpells();
2329 void ApplyItemObtainSpells(
Item* item,
bool apply);
2332 void UpdateAllWeaponDependentCritAuras();
2335 void ApplyItemDependentAuras(
Item* item,
bool apply);
2339 void _ApplyItemMods(
Item* item,
uint8 slot,
bool apply,
bool updateItemAuras =
true);
2340 void _RemoveAllItemMods();
2341 void _ApplyAllItemMods();
2342 void _ApplyAllLevelScaleItemMods(
bool apply);
2343 void ApplyAllAzeriteItemMods(
bool apply);
2344 void ApplyAllAzeriteEmpoweredItemMods(
bool apply);
2347 bool EnchantmentFitsRequirements(
uint32 enchantmentcondition,
int8 slot)
const;
2348 void ToggleMetaGemsActive(
uint8 exceptslot,
bool apply);
2349 void CorrectMetaGemEnchants(
uint8 slot,
bool apply);
2350 void InitDataForForm(
bool reapplyMods =
false);
2352 void ApplyItemEquipSpell(
Item* item,
bool apply,
bool formChange =
false);
2353 void ApplyEquipSpell(
SpellInfo const* spellInfo,
Item* item,
bool apply,
bool formChange =
false);
2354 void UpdateEquipSpellsAtFormChange();
2355 void UpdateItemSetAuras(
bool formChange =
false);
2356 void ApplyArtifactPowers(
Item* item,
bool apply);
2358 void ApplyAzeritePowers(
Item* item,
bool apply);
2364 void CastItemCombatSpell(
DamageInfo const& damageInfo);
2367 void ApplyItemLootedSpell(
Item* item,
bool apply);
2368 void ApplyItemLootedSpell(
ItemTemplate const* itemTemplate);
2370 void SendEquipmentSetList();
2372 void DeleteEquipmentSet(
uint64 id);
2374 void SendInitWorldStates(
uint32 zoneId,
uint32 areaId);
2375 void SendUpdateWorldState(
uint32 variable,
uint32 value,
bool hidden =
false)
const;
2376 void SendDirectMessage(
WorldPacket const* data)
const;
2378 void SendAurasForTarget(
Unit* target)
const;
2383 void SendLoot(
Loot& loot,
bool aeLooting =
false);
2386 void SendLootReleaseAll()
const;
2388 void SendNotifyLootMoneyRemoved(
ObjectGuid lootObj)
const;
2395 bool InArena()
const;
2401 bool InBattlegroundQueue(
bool ignoreArena =
false)
const;
2411 bool HasFreeBattlegroundQueueId()
const;
2414 bool IsInvitedForBattlegroundInstance(
uint32 instanceId)
const;
2418 void SetBattlegroundEntryPoint();
2420 void SetBGTeam(
Team team);
2421 Team GetBGTeam()
const;
2425 bool CanReportAfkDueToLimit();
2426 void ReportedAfkBy(
Player* reporter);
2430 bool CanUseBattlegroundObject(
GameObject* gameobject)
const;
2431 bool isTotalImmune()
const;
2432 bool CanCaptureTowerPoint()
const;
2435 void SetRandomWinner(
bool isWinner);
2443 bool IsOutdoorPvPActive()
const;
2449 bool IsImmuneToEnvironmentalDamage()
const;
2477 void SetFallInformation(
uint32 time,
float z);
2480 void SetClientControl(
Unit* target,
bool allowMove);
2485 void StopCastingCharm();
2486 void StopCastingBindSight()
const;
2493 m_recall_location.WorldRelocate(*
this);
2494 m_recall_instanceId = GetInstanceId();
2499 void SendBindPointUpdate()
const;
2512 bool HaveAtClient(
Object const* u)
const;
2514 bool IsNeverVisibleFor(
WorldObject const* seer,
bool allowServersideObjects =
false)
const override;
2516 bool IsVisibleGloballyFor(
Player const* player)
const;
2518 void SendInitialVisiblePackets(
WorldObject* target)
const;
2519 void OnPhaseChange()
override;
2520 void UpdateObjectVisibility(
bool forced =
true)
override;
2521 void UpdateVisibilityForPlayer();
2524 void UpdateTriggerVisibility();
2527 void UpdateVisibilityOf(T* target,
UpdateData& data, std::set<WorldObject*>& visibleNow);
2536 bool isUsingLfg()
const;
2537 bool inRandomLfgDungeon()
const;
2547 void EnablePetControlsOnDismount();
2548 void UnsummonPetTemporaryIfAny();
2549 void ResummonPetTemporaryUnSummonedIfAny();
2550 void UnsummonBattlePetTemporaryIfAny(
bool onFlyingMount =
false);
2551 void ResummonBattlePetTemporaryUnSummonedIfAny();
2552 bool IsPetNeedBeTemporaryUnsummoned()
const;
2554 void SendCinematicStart(
uint32 CinematicSequenceId)
const;
2555 void SendMovieStart(
uint32 movieId);
2560 void UpdateItemLevelAreaBasedScaling();
2568 void UpdateHomebindTime(
uint32 time);
2575 auto itr = m_recentInstances.find(mapId);
2576 return itr != m_recentInstances.end() ? itr->second : 0;
2581 m_recentInstances[mapId] = instanceId;
2585 void ConfirmPendingBind();
2586 void SetPendingBind(
uint32 instanceId,
uint32 bindTimer);
2588 void SendRaidInfo();
2590 bool CheckInstanceValidity(
bool );
2591 bool CheckInstanceCount(
uint32 instanceId)
const;
2592 void AddInstanceEnterTime(
uint32 instanceId, time_t enterTime);
2611 void SetGroup(
Group* group,
int8 subgroup = -1);
2617 void ResetGroupUpdateSequenceIfNeeded(
Group const* group);
2619 Player* GetNextRandomRaidMember(
float radius);
2623 void SetBattlegroundOrBattlefieldRaid(
Group* group,
int8 subgroup = -1);
2624 void RemoveFromBattlegroundOrBattlefieldRaid();
2628 void SetOriginalGroup(
Group* group,
int8 subgroup = -1);
2636 void SetMap(
Map* map)
override;
2637 void ResetMap()
override;
2639 bool isAllowedToLoot(
Creature const* creature)
const;
2642 uint8 GetRunesState()
const;
2644 uint32 GetRuneBaseCooldown()
const;
2645 void SetRuneCooldown(
uint8 index,
uint32 cooldown);
2646 void ResyncRunes()
const;
2649 void SendRespondInspectAchievements(
Player* player)
const;
2650 uint32 GetAchievementPoints()
const;
2651 std::vector<uint32> GetCompletedAchievementIds()
const;
2652 bool HasAchieved(
uint32 achievementId)
const;
2653 void ResetAchievements();
2658 bool ModifierTreeSatisfied(
uint32 modifierTreeId)
const;
2667 bool CanSeeGossipOn(
Creature const* creature)
const;
2668 bool CanSeeSpellClickOn(
Creature const* creature)
const;
2674 float GetAverageItemLevel()
const;
2689 std::string GetMapAreaAndZoneString()
const;
2690 std::string GetCoordsMapAreaAndZoneString()
const;
2696 uint8 GetNextVoidStorageFreeSlot()
const;
2697 uint8 GetNumOfVoidStorageFreeSlots()
const;
2699 void DeleteVoidStorageItem(
uint8 slot);
2700 bool SwapVoidStorageItem(
uint8 oldSlot,
uint8 newSlot);
2708 void CreateGarrison(
uint32 garrSiteId);
2709 void DeleteGarrison();
2735 bool MeetPlayerCondition(
uint32 conditionId)
const;
2757 if (choiceIndex >= 0)
2758 return m_playerData->Customizations[choiceIndex].ChrCustomizationChoiceID;
2763 template<
typename Iter>
2767 m_customizationsChanged =
true;
2770 for (
auto&& customization : customizations)
2803 int32 index = m_activePlayerData->ConditionalTransmog.FindIndex(itemModifiedAppearanceId);
2814 int32 index = m_activePlayerData->SelfResSpells.FindIndex(spellId);
2850 bool IsInFriendlyArea()
const;
2853 void SetWarModeDesired(
bool enabled);
2857 void SetWarModeLocal(
bool enabled);
2858 bool CanEnableWarModeInArea()
const;
2859 void UpdateWarModeAuras();
2866 void SetAreaSpiritHealer(
Creature* creature);
2869 void SendAreaSpiritHealerTime(
Unit* spiritHealer)
const;
2870 void SendAreaSpiritHealerTime(
ObjectGuid const& spiritHealerGUID,
int32 timeLeft)
const;
2926 void _LoadGlyphAuras();
2992 void HandleSobering();
2995 void HandleDrowning(
uint32 time_diff);
3003 void outDebugValues()
const;
3130 bool CanNeverSee(
WorldObject const* obj)
const override;
3131 bool CanAlwaysSee(
WorldObject const* obj)
const override;
3133 bool IsAlwaysDetectableFor(
WorldObject const* seer)
const override;
3152 void SendRefundInfo(
Item* item);
3153 void RefundItem(
Item* item);
3156 void AdjustQuestObjectiveProgress(
Quest const* quest);
3164 bool IsInstanceLoginGameMasterException()
const;
3221 void _InitHonorLevelOnLoadFromDB(
uint32 honor,
uint32 honorLevel);
3230 void RequestSpellCast(std::unique_ptr<SpellCastRequest> castRequest);
3231 void CancelPendingCastRequest();
3232 bool CanRequestSpellCast(
SpellInfo const* spell,
Unit const* castingUnit)
const;
3236 void ExecutePendingSpellCastRequest();
3238 bool CanExecutePendingSpellCastRequest();
3246template<
typename Container>
3249 static_assert(std::is_same<typename Container::value_type, UF::ChrCustomizationChoice>::value,
3250 "MakeChrCustomizationChoiceRange must be used with containers of UF::ChrCustomizationChoice");
3252 return { container.data(), container.data() + container.size() };
#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::steady_clock::time_point TimePoint
time_point shorthand typedefs
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
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
@ 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
std::unordered_map< uint32, PlayerSpell > PlayerSpellMap
std::unordered_set< SpellModifier * > SpellModContainer
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
@ 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_WEEKLY_REWARD_AVAILABLE
@ PLAYER_LOCAL_FLAG_NO_PET_BAR
@ PLAYER_LOCAL_FLAG_WAR_MODE
@ PLAYER_LOCAL_FLAG_ACCOUNT_SECURED
@ PLAYER_LOCAL_FLAG_RELEASE_TIMER
@ 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_OVERRIDE_TRANSPORT_SERVER_TIME
@ PLAYER_LOCAL_FLAG_CAN_VISIT_PARTY_GARRISON
@ PLAYER_LOCAL_FLAG_OVERRIDE_CAMERA_MIN_HEIGHT
@ ERR_BANKSLOT_FAILED_TOO_MANY
@ ERR_BANKSLOT_INSUFFICIENT_FUNDS
TC_GAME_API void RemoveItemsSetItem(Player *player, Item const *item)
@ UNDERWATER_EXIST_TIMERS
@ RAID_INSTANCE_WARNING_MIN
@ RAID_INSTANCE_WARNING_MIN_SOON
@ RAID_INSTANCE_WARNING_HOURS
TC_GAME_API uint32 GetBagSize(Bag const *bag)
@ PLAYER_DATA_FLAG_ACCOUNT_INDEX
@ PLAYER_EXPLORED_ZONES_BITS
@ PLAYER_DATA_FLAG_EXPLORED_ZONES_INDEX
@ PLAYER_DATA_FLAG_CHARACTER_INDEX
@ AT_LOGIN_RESET_PET_TALENTS
@ AT_LOGIN_CHANGE_FACTION
DEFINE_ENUM_FLAG(PlayerFlags)
TC_GAME_API uint64 const MAX_MONEY_AMOUNT
#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_ARTIFACT_FORGE_CHEAT
@ PLAYER_FLAGS_EX_REAGENT_BANK_UNLOCKED
@ PLAYER_FLAGS_EX_UNLOCKED_AOE_LOOT
@ PLAYER_FLAGS_EX_NEWCOMER
@ PLAYER_FLAGS_EX_MERCENARY_MODE
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_SIZE
@ QUESTS_COMPLETED_BITS_PER_BLOCK
std::map< uint32, QuestStatusData > QuestStatusMap
std::set< uint32 > RewardedQuestSet
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_ACCOUNT_DATA
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS
@ PLAYER_LOGIN_QUERY_LOAD_VOID_STORAGE
@ 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_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_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_TRAIT_ENTRIES
@ 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
static void SaveToDB(QuestPool const &pool, CharacterDatabaseTransaction trans)
constexpr Trinity::RaceMask< uint64 > RACEMASK_ALL_PLAYABLE
constexpr BattlegroundQueueTypeId BATTLEGROUND_QUEUE_NONE
#define MAX_SPECIALIZATIONS
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.
constexpr bool HasFlag(T flag) const
Class used to access individual fields of database query result.
static ObjectGuid const Empty
static ObjectGuid GetGUID(Object const *o)
void InitTaxiNodesForLevel(uint32 race, uint32 chrClass, uint8 level)
std::unique_ptr< QuestObjectiveCriteriaMgr > m_questObjectiveCriteriaMgr
void ApplyModOverrideSpellPowerByAPPercent(float mod, bool apply)
void SetSemaphoreTeleportNear(bool semphsetting)
bool IsValidPos(uint16 pos, bool explicit_pos) const
ChrSpecialization GetPrimarySpecialization() const
InstanceTimeMap _instanceResetTimes
void SetWatchedFactionIndex(int32 index)
WorldLocation m_recall_location
WorldLocation m_summon_location
uint32 GetHonorLevel() const
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
QuestStatusMap m_QuestStatus
uint32 m_ChampioningFaction
std::vector< uint32 > & GetGlyphs(uint8 spec)
bool m_bHasDelayedTeleport
void ScheduleDelayedOperation(uint32 operation)
void SaveHealthBeforeDuel()
std::unique_ptr< RestMgr > _restMgr
WorldLocation & GetTeleportDest()
void SetLastPotionId(uint32 item_id)
bool IsGameMasterAcceptingWhispers() const
void SetSkillMaxRank(uint32 pos, uint16 max)
std::vector< Item * > m_itemUpdateQueue
WorldLocation m_teleport_dest
uint8 GetCUFProfilesCount() const
Retrieves a CUF profile at position 0-4
TeamId GetEffectiveTeamId() const
uint32 GetSaveTimer() const
void SetPlayerFlag(PlayerFlags flags)
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
UF::UpdateField< UF::PlayerData, 0, TYPEID_PLAYER > m_playerData
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 SetNativeGender(Gender gender) override
Gender GetNativeGender() const override
SkillStatusMap mSkillStatus
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
TimeTracker m_groupUpdateTimer
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)
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
uint32 GetDeathTimer() const
bool m_WeeklyQuestChanged
void RemoveGroupUpdateFlag(uint32 flag)
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)
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
void SetTalentResetCost(uint32 cost)
void RecalculateRating(CombatRating cr)
uint32 m_foodEmoteTimerCount
void SetPrimarySpecialization(uint32 spec)
void SetPetSpellPower(uint32 spellPower)
void SetRecentInstance(uint32 mapId, uint32 instanceId)
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
PlayerPvpTalentMap & GetPvpTalentMap(uint8 spec)
std::unordered_map< uint32, StoredAuraTeleportLocation > m_storedAuraTeleportLocations
PlayerCurrenciesMap _currencyStorage
void SetNumRespecs(uint8 numRespecs)
Optional< AttackSwingErr > m_swingErrorMsg
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
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
uint32 m_currentBuybackSlot
std::unordered_map< int32, PlayerSpellState > m_traitConfigStates
void RemoveFromGroup(RemoveMethod method=GROUP_REMOVEMETHOD_DEFAULT)
void SaveRecallPosition()
bool GetRandomWinner() 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)
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
void SetDelayedTeleportFlag(bool setting)
static bool IsReagentBankPos(uint16 pos)
static bool IsInventoryPos(uint16 pos)
ObjectGuid m_temporaryUnsummonedBattlePet
void SetLegacyRaidDifficultyID(Difficulty raid_difficulty)
PlayerTalentMap * GetTalentMap(uint8 spec)
std::set< uint32 > QuestSet
void ClearResurrectRequestData()
void SetSemaphoreTeleportFar(bool semphsetting)
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
bool mSemaphoreTeleport_Far
uint32 GetRuneCooldown(uint8 index) 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
WorldLocation GetCorpseLocation() const
void ReplaceAllPlayerFlagsEx(PlayerFlagsEx flags)
void InitTaxiNodesForLevel()
Optional< uint32 > GetTeleportDestInstanceId() const
bool IsHasDelayedTeleport() const
std::array< float, BASEMOD_END > m_auraBasePctMod
static bool IsChildEquipmentPos(uint16 pos)
void RestoreHealthAfterDuel()
void AddAuraVision(PlayerFieldByte2Flags flags)
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
SceneMgr const & GetSceneMgr() const
uint32 GetGuildLevel() const
TeleportToOptions m_teleport_options
uint32 m_contestedPvPTimer
void SetActiveTalentGroup(uint8 group)
uint32 GetTalentResetCost() const
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
CUFProfile * GetCUFProfile(uint8 id) const
Replaces a CUF profile at position 0-4
void SetChampioningFaction(uint32 faction)
void SetMovie(uint32 movie)
uint32 GetTeleportOptions() const
bool IsGameMaster() const
void SetGuildRank(uint8 rankId)
void AddSelfResSpell(int32 spellId)
bool CanApplyResilience() const override
void AddLootRoll(LootRoll *roll)
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
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()
bool mSemaphoreTeleport_Near
std::unordered_set< PetAura const * > m_petAuras
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
std::unique_ptr< PlayerAchievementMgr > m_achievementMgr
bool m_customizationsChanged
void SetOverrideSpellsId(int32 overrideSpellsId)
MapReference & GetMapRef()
UF::UpdateField< UF::ActivePlayerData, 0, TYPEID_ACTIVE_PLAYER > m_activePlayerData
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
bool IsBeingTeleportedSeamlessly() const
uint32 GetGroupUpdateFlag() const
PlayerSpellMap & GetSpellMap()
bool IsAdvancedCombatLoggingEnabled() const
std::unordered_map< uint32, time_t > SeasonalQuestMapByQuest
void SetSaveTimer(uint32 timer)
uint32 m_recall_instanceId
void SetAverageItemLevelTotal(float newItemLevel)
void AddWhisperWhiteList(ObjectGuid guid)
bool GetPassOnGroupLoot() const
void ReplaceAllPlayerFlags(PlayerFlags flags)
void SetChosenTitle(int32 title)
bool HasAtLoginFlag(AtLoginFlags f) const
bool IsVoidStorageUnlocked() const
void SetAverageItemLevelEquipped(float newItemLevel)
void RemoveSelfResSpell(int32 spellId)
static bool IsBankPos(uint16 pos)
static bool IsValidRace(uint8 Race)
Group * GetGroup(Optional< uint8 > partyIndex)
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)
void SetRestState(RestTypes type, PlayerRestState state)
void AutoStoreLoot(uint32 loot_id, LootStore const &store, ItemContext context=ItemContext::NONE, bool broadcast=false, bool createdByPlayer=false)
void AddTimedQuest(uint32 questId)
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
void RemoveTimedQuest(uint32 questId)
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
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
bool CanEnterWater() const override
uint32 m_summon_instanceId
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
Optional< uint32 > m_teleport_instanceId
void SetSkillStep(uint32 pos, uint16 step)
Group * GetGroupInvite() const
void SetRequiredMountCapabilityFlag(uint8 flag)
void SetContestedPvPTimer(uint32 newTime)
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
void SetBankBagSlotCount(uint8 count)
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)
Optional< ReactStates > m_temporaryPetReactState
bool HasEnoughMoney(uint64 amount) const
void SetVersatilityBonus(float value)
void AddTransmogBlock(uint32 blockValue)
bool m_itemUpdateQueueBlocked
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, 0, TYPEID_UNIT > m_unitData
Player session in the World.
TC_GAME_API Pet * GetPet(WorldObject const &, ObjectGuid const &guid)
TC_GAME_API Corpse * GetCorpse(WorldObject const &u, ObjectGuid const &guid)
DynamicUpdateFieldSetter< T >::insert_result AddDynamicUpdateFieldValue(DynamicUpdateFieldSetter< T > &setter)
void RemoveDynamicUpdateFieldValue(DynamicUpdateFieldSetter< T > &setter, uint32 index)
void ClearDynamicUpdateFieldValues(DynamicUpdateFieldSetter< T > &setter)
bool SetUpdateFieldValue(UpdateFieldSetter< T > &setter, typename UpdateFieldSetter< T >::value_type &&value)
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
Optional< int32 > TraitDefinitionId
BattlegroundQueueTypeId bgQueueTypeId
UF::UnitData::Base UnitMask
UF::PlayerData::Base PlayerMask
ValuesUpdateForPlayerWithMaskSender(Player const *owner)
UF::ObjectData::Base ObjectMask
UF::ActivePlayerData::Base ActivePlayerMask
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(uint8 _pos, SkillUpdateState _uState)
SpecializationInfo(SpecializationInfo const &)=delete
SpecializationInfo & operator=(SpecializationInfo const &)=delete
SpellModifierByClassMask(Aura *_ownerAura)
SpellModifierByLabel(Aura *_ownerAura)
SpellModifier(Aura *_ownerAura)
virtual ~SpellModifier()=default
enum StoredAuraTeleportLocation::@282 State
constexpr bool HasRace(uint8 raceId) const
UpdateField< uint32, 72, 87 > LocalFlags
DynamicUpdateField< int32, 0, 17 > SelfResSpells
DynamicUpdateField< uint64, 0, 7 > KnownTitles
UpdateField< int32, 32, 51 > CharacterPoints
UpdateField< uint16, 104, 112 > LootSpecID
UpdateField< int32, 104, 111 > OverrideSpellsID
UpdateField< uint8, 104, 109 > AuraVision
DynamicUpdateField< int32, 0, 13 > Toys
UpdateField< uint8, 104, 117 > NumBankSlots
DynamicUpdateField< uint32, 0, 19 > TransmogIllusions
DynamicUpdateField< uint32, 0, 15 > Transmog
UpdateField< UF::SkillInfo, 32, 50 > Skill
UpdateField< uint32, 32, 53 > TrackCreatureMask
UpdateField< int32, 104, 123 > TransportServerTime
UpdateFieldArray< float, 7, 367, 382 > ModDamageDonePercent
UpdateField< uint32, 104, 113 > OverrideZonePVPType
UpdateFieldArray< int32, 7, 367, 375 > ModDamageDoneNeg
UpdateField< int32, 72, 85 > ModTargetResistance
UpdateField< int32, 72, 86 > ModTargetPhysicalResistance
UpdateField< int32, 72, 100 > PetSpellPower
DynamicUpdateField< uint32, 0, 12 > HeirloomFlags
UpdateField< float, 72, 83 > OverrideSpellPowerByAPPercent
UpdateFieldArray< int32, 7, 367, 368 > ModDamageDonePos
UpdateField< uint8, 104, 135 > RequiredMountCapabilityFlags
UpdateFieldArray< UF::RestInfo, 2, 364, 365 > RestInfo
UpdateField< int32, 72, 96 > WatchedFactionIndex
UpdateField< float, 72, 75 > VersatilityBonus
UpdateFieldArray< uint32, 12, 403, 404 > BuybackPrice
UpdateFieldArray< ObjectGuid, 227, 136, 137 > InvSlots
UpdateFieldArray< int64, 12, 403, 416 > BuybackTimestamp
UpdateField< uint8, 72, 89 > MultiActionBars
DynamicUpdateField< int32, 0, 16 > ConditionalTransmog
DynamicUpdateField< uint32, 0, 14 > ToyFlags
DynamicUpdateField< int32, 0, 11 > Heirlooms
UpdateFieldArray< uint32, 4, 461, 462 > NoReagentCostMask
UpdateField< uint32, 104, 127 > ActiveCombatTraitConfigID
UpdateField< float, 72, 84 > OverrideAPBySpellPowerPercent
UpdateField< uint8, 72, 91 > NumRespecs
UpdateField< ObjectGuid, 32, 45 > SummonedBattlePetGUID
uint32 ChrCustomizationChoiceID
uint32 ChrCustomizationOptionID
UpdateField< uint32, 0, 26 > VirtualPlayerRealm
UpdateFieldArray< float, 6, 242, 243 > AvgItemLevel
UpdateField< ObjectGuid, 0, 12 > LootTargetGUID
UpdateField< uint32, 0, 22 > DuelTeam
DynamicUpdateField< UF::ChrCustomizationChoice, 0, 3 > Customizations
UpdateField< uint8, 0, 20 > PvpTitle
UpdateField< uint8, 0, 18 > NativeSex
UpdateField< uint8, 0, 29 > CurrentBattlePetBreedQuality
UpdateField< uint8, 0, 21 > ArenaFaction
UpdateField< uint32, 0, 13 > PlayerFlags
UpdateField< int32, 0, 24 > PlayerTitle
UpdateField< uint32, 0, 14 > PlayerFlagsEx
UpdateField< ObjectGuid, 0, 8 > DuelArbiter
UpdateField< uint32, 0, 15 > GuildRankID
UpdateField< int32, 0, 25 > FakeInebriation
UpdateField< uint32, 0, 27 > CurrentSpecID
UpdateField< int32, 0, 17 > GuildLevel
UpdateField< uint32, 0, 1 > Threshold
UpdateField< uint8, 0, 2 > StateID
UpdateFieldArray< uint16, 256, 0, 1537 > SkillPermBonus
UpdateFieldArray< uint16, 256, 0, 769 > SkillStartingRank
UpdateFieldArray< uint16, 256, 0, 257 > SkillStep
UpdateFieldArray< uint16, 256, 0, 1025 > SkillMaxRank
UpdateFieldArray< int16, 256, 0, 1281 > SkillTempBonus
UpdateFieldArray< uint16, 256, 0, 513 > SkillRank
UpdateFieldArray< uint16, 256, 0, 1 > SkillLineID
UpdateField< ObjectGuid, 0, 19 > Target
ItemRandomBonusListId RandomBonusListId
VoidStorageItem(VoidStorageItem &&vsi) noexcept
uint32 ArtifactKnowledgeLevel
std::vector< int32 > BonusListIDs
VoidStorageItem(uint64 id, uint32 entry, ObjectGuid const &creator, ItemRandomBonusListId randomBonusListId, uint32 fixedScalingLevel, uint32 artifactKnowledgeLevel, ItemContext context, std::vector< int32 > const &bonuses)