TrinityCore
Player.h File Reference
#include "GridObject.h"
#include "Unit.h"
#include "CUFProfile.h"
#include "DatabaseEnvFwd.h"
#include "DBCEnums.h"
#include "EquipmentSet.h"
#include "GroupReference.h"
#include "Hash.h"
#include "ItemDefines.h"
#include "ItemEnchantmentMgr.h"
#include "MapReference.h"
#include "PetDefines.h"
#include "PlayerTaxi.h"
#include "QuestDef.h"
#include "SceneMgr.h"
+ Include dependency graph for Player.h:

Go to the source code of this file.

Classes

struct  PlayerSpell
 
struct  StoredAuraTeleportLocation
 
struct  SpellModifier
 
struct  SpellModifierByClassMask
 
struct  SpellModifierByLabel< T >
 
struct  PlayerCurrency
 
struct  ActionButton
 
struct  PvPInfo
 
struct  DuelInfo
 
struct  Areas
 
struct  Runes
 
struct  EnchantDuration
 
struct  QuestObjectiveStatusData
 
struct  SkillStatusData
 
struct  ItemPosCount
 
struct  BGData
 Holder for Battleground data. More...
 
struct  VoidStorageItem
 
struct  ResurrectionData
 
struct  GroupUpdateCounter
 
struct  SpecializationInfo
 
class  Player
 
struct  Player::ValuesUpdateForPlayerWithMaskSender
 
struct  Player::ChatFloodThrottle
 
struct  Player::BgBattlegroundQueueID_Rec
 

Namespaces

namespace  BattlePets
 
namespace  WorldPackets
 
namespace  WorldPackets::Character
 
namespace  WorldPackets::Movement
 
namespace  WorldPackets::Traits
 

Macros

#define ACTION_BUTTON_ACTION(X)   (uint64(X) & 0x00FFFFFFFFFFFFFF)
 
#define ACTION_BUTTON_TYPE(X)   ((uint64(X) & 0xFF00000000000000) >> 56)
 
#define MAX_ACTION_BUTTON_ACTION_VALUE   UI64LIT(0xFFFFFFFFFFFFFF)
 
#define MAX_ACTION_BUTTONS   180
 
#define MAX_RUNES   7
 
#define MAX_RECHARGING_RUNES   3
 
#define MAX_DRUNKEN   4
 
#define MAX_TIMERS   3
 
#define DISABLED_MIRROR_TIMER   -1
 
#define INVENTORY_SLOT_BAG_0   255
 
#define INVENTORY_DEFAULT_SIZE   16
 
#define MAX_PLAYED_TIME_INDEX   2
 
#define MAX_PLAYER_SUMMON_DELAY   (2*MINUTE)
 

Typedefs

typedef std::deque< Mail * > PlayerMails
 
using SpellFlatModifierByLabel = SpellModifierByLabel< UF::SpellFlatModByLabel >
 
using SpellPctModifierByLabel = SpellModifierByLabel< UF::SpellPctModByLabel >
 
typedef std::unordered_map< uint32, PlayerSpellStatePlayerTalentMap
 
typedef std::array< uint32, MAX_PVP_TALENT_SLOTSPlayerPvpTalentMap
 
typedef std::unordered_map< uint32, PlayerSpellPlayerSpellMap
 
typedef std::unordered_set< SpellModifier * > SpellModContainer
 
typedef std::unordered_map< uint32, PlayerCurrencyPlayerCurrenciesMap
 
typedef std::unordered_map< uint32, time_t > InstanceTimeMap
 
typedef std::map< uint8, ActionButtonActionButtonList
 
typedef std::list< EnchantDurationEnchantDurationList
 
typedef std::list< Item * > ItemDurationList
 
typedef std::map< uint32, QuestStatusDataQuestStatusMap
 
using QuestObjectiveStatusMap = std::unordered_multimap< std::pair< QuestObjectiveType, int32 >, QuestObjectiveStatusData >
 
typedef std::set< uint32RewardedQuestSet
 
typedef std::map< uint32, QuestSaveTypeQuestStatusSaveMap
 
typedef std::unordered_map< uint32, SkillStatusDataSkillStatusMap
 
typedef std::vector< ItemPosCountItemPosCountVec
 

Enumerations

enum  PlayerSkillsConstants { PLAYER_MAX_SKILLS = UF::size<decltype(UF::SkillInfo::SkillLineID)>() }
 
enum  PlayerDataFlagConstants { PLAYER_EXPLORED_ZONES_BITS = UF::size_of_value_type<decltype(UF::ActivePlayerData::DataFlags)::value_type>() * 8 , PLAYER_DATA_FLAG_EXPLORED_ZONES_INDEX = 1 , PLAYER_DATA_FLAG_CHARACTER_INDEX = 2 , PLAYER_DATA_FLAG_ACCOUNT_INDEX = 3 }
 
enum  SpellModType : uint8 {
  SPELLMOD_FLAT = 0 , SPELLMOD_PCT = 1 , SPELLMOD_LABEL_FLAT = 2 , SPELLMOD_LABEL_PCT = 3 ,
  SPELLMOD_END
}
 
enum  PlayerUnderwaterState {
  UNDERWATER_NONE = 0x00 , UNDERWATER_INWATER = 0x01 , UNDERWATER_INLAVA = 0x02 , UNDERWATER_INSLIME = 0x04 ,
  UNDERWATER_INDARKWATER = 0x08 , UNDERWATER_EXIST_TIMERS = 0x10
}
 
enum  BuyBankSlotResult { ERR_BANKSLOT_FAILED_TOO_MANY = 0 , ERR_BANKSLOT_INSUFFICIENT_FUNDS = 1 , ERR_BANKSLOT_NOTBANKER = 2 , ERR_BANKSLOT_OK = 3 }
 
enum  PlayerSpellState : uint8 {
  PLAYERSPELL_UNCHANGED = 0 , PLAYERSPELL_CHANGED = 1 , PLAYERSPELL_NEW = 2 , PLAYERSPELL_REMOVED = 3 ,
  PLAYERSPELL_TEMPORARY = 4
}
 
enum  SpecResetType { SPEC_RESET_TALENTS = 0 , SPEC_RESET_SPECIALIZATION = 1 , SPEC_RESET_GLYPHS = 2 , SPEC_RESET_PET_TALENTS = 3 }
 
enum  PlayerCurrencyState { PLAYERCURRENCY_UNCHANGED = 0 , PLAYERCURRENCY_CHANGED = 1 , PLAYERCURRENCY_NEW = 2 , PLAYERCURRENCY_REMOVED = 3 }
 
enum  ActionButtonUpdateState { ACTIONBUTTON_UNCHANGED = 0 , ACTIONBUTTON_CHANGED = 1 , ACTIONBUTTON_NEW = 2 , ACTIONBUTTON_DELETED = 3 }
 
enum  ActionButtonType {
  ACTION_BUTTON_SPELL = 0x00 , ACTION_BUTTON_C = 0x01 , ACTION_BUTTON_EQSET = 0x20 , ACTION_BUTTON_DROPDOWN = 0x30 ,
  ACTION_BUTTON_MACRO = 0x40 , ACTION_BUTTON_CMACRO = ACTION_BUTTON_C | ACTION_BUTTON_MACRO , ACTION_BUTTON_COMPANION = 0x50 , ACTION_BUTTON_MOUNT = 0x60 ,
  ACTION_BUTTON_ITEM = 0x80
}
 
enum  ReputationSource {
  REPUTATION_SOURCE_KILL , REPUTATION_SOURCE_QUEST , REPUTATION_SOURCE_DAILY_QUEST , REPUTATION_SOURCE_WEEKLY_QUEST ,
  REPUTATION_SOURCE_MONTHLY_QUEST , REPUTATION_SOURCE_REPEATABLE_QUEST , REPUTATION_SOURCE_SPELL
}
 
enum  DuelState { DUEL_STATE_CHALLENGED , DUEL_STATE_COUNTDOWN , DUEL_STATE_IN_PROGRESS , DUEL_STATE_COMPLETED }
 
enum  RuneCooldowns { RUNE_BASE_COOLDOWN = 10000 , RUNE_MISS_COOLDOWN = 1500 }
 
enum  DrunkenState { DRUNKEN_SOBER = 0 , DRUNKEN_TIPSY = 1 , DRUNKEN_DRUNK = 2 , DRUNKEN_SMASHED = 3 }
 
enum  PlayerFlags {
  PLAYER_FLAGS_GROUP_LEADER = 0x00000001 , PLAYER_FLAGS_AFK = 0x00000002 , PLAYER_FLAGS_DND = 0x00000004 , PLAYER_FLAGS_GM = 0x00000008 ,
  PLAYER_FLAGS_GHOST = 0x00000010 , PLAYER_FLAGS_RESTING = 0x00000020 , PLAYER_FLAGS_VOICE_CHAT = 0x00000040 , PLAYER_FLAGS_UNK7 = 0x00000080 ,
  PLAYER_FLAGS_CONTESTED_PVP = 0x00000100 , PLAYER_FLAGS_IN_PVP = 0x00000200 , PLAYER_FLAGS_WAR_MODE_ACTIVE = 0x00000400 , PLAYER_FLAGS_WAR_MODE_DESIRED = 0x00000800 ,
  PLAYER_FLAGS_PLAYED_LONG_TIME = 0x00001000 , PLAYER_FLAGS_PLAYED_TOO_LONG = 0x00002000 , PLAYER_FLAGS_IS_OUT_OF_BOUNDS = 0x00004000 , PLAYER_FLAGS_DEVELOPER = 0x00008000 ,
  PLAYER_FLAGS_LOW_LEVEL_RAID_ENABLED = 0x00010000 , PLAYER_FLAGS_TAXI_BENCHMARK = 0x00020000 , PLAYER_FLAGS_PVP_TIMER = 0x00040000 , PLAYER_FLAGS_UBER = 0x00080000 ,
  PLAYER_FLAGS_UNK20 = 0x00100000 , PLAYER_FLAGS_UNK21 = 0x00200000 , PLAYER_FLAGS_COMMENTATOR2 = 0x00400000 , PLAYER_FLAGS_HIDE_ACCOUNT_ACHIEVEMENTS = 0x00800000 ,
  PLAYER_FLAGS_PET_BATTLES_UNLOCKED = 0x01000000 , PLAYER_FLAGS_NO_XP_GAIN = 0x02000000 , PLAYER_FLAGS_UNK26 = 0x04000000 , PLAYER_FLAGS_AUTO_DECLINE_GUILD = 0x08000000 ,
  PLAYER_FLAGS_GUILD_LEVEL_ENABLED = 0x10000000 , PLAYER_FLAGS_VOID_UNLOCKED = 0x20000000 , PLAYER_FLAGS_TIMEWALKING = 0x40000000 , PLAYER_FLAGS_COMMENTATOR_CAMERA = 0x80000000
}
 
enum  PlayerFlagsEx {
  PLAYER_FLAGS_EX_REAGENT_BANK_UNLOCKED = 0x0001 , PLAYER_FLAGS_EX_MERCENARY_MODE = 0x0002 , PLAYER_FLAGS_EX_ARTIFACT_FORGE_CHEAT = 0x0004 , PLAYER_FLAGS_EX_IN_PVP_COMBAT = 0x0040 ,
  PLAYER_FLAGS_EX_MENTOR = 0x0080 , PLAYER_FLAGS_EX_NEWCOMER = 0x0100 , PLAYER_FLAGS_EX_UNLOCKED_AOE_LOOT = 0x0200
}
 
enum  PlayerLocalFlags {
  PLAYER_LOCAL_FLAG_CONTROLLING_PET = 0x00000001 , PLAYER_LOCAL_FLAG_TRACK_STEALTHED = 0x00000002 , PLAYER_LOCAL_FLAG_RELEASE_TIMER = 0x00000008 , PLAYER_LOCAL_FLAG_NO_RELEASE_WINDOW = 0x00000010 ,
  PLAYER_LOCAL_FLAG_NO_PET_BAR = 0x00000020 , PLAYER_LOCAL_FLAG_OVERRIDE_CAMERA_MIN_HEIGHT = 0x00000040 , PLAYER_LOCAL_FLAG_NEWLY_BOOSTED_CHARACTER = 0x00000080 , PLAYER_LOCAL_FLAG_USING_PARTY_GARRISON = 0x00000100 ,
  PLAYER_LOCAL_FLAG_CAN_USE_OBJECTS_MOUNTED = 0x00000200 , PLAYER_LOCAL_FLAG_CAN_VISIT_PARTY_GARRISON = 0x00000400 , PLAYER_LOCAL_FLAG_WAR_MODE = 0x00000800 , PLAYER_LOCAL_FLAG_ACCOUNT_SECURED = 0x00001000 ,
  PLAYER_LOCAL_FLAG_OVERRIDE_TRANSPORT_SERVER_TIME = 0x00008000 , PLAYER_LOCAL_FLAG_MENTOR_RESTRICTED = 0x00020000 , PLAYER_LOCAL_FLAG_WEEKLY_REWARD_AVAILABLE = 0x00040000
}
 
enum  PlayerFieldByte2Flags { PLAYER_FIELD_BYTE2_NONE = 0x00 , PLAYER_FIELD_BYTE2_STEALTH = 0x20 , PLAYER_FIELD_BYTE2_INVISIBILITY_GLOW = 0x40 }
 
enum  MirrorTimerType { FATIGUE_TIMER = 0 , BREATH_TIMER = 1 , FIRE_TIMER = 2 }
 
enum  PlayerExtraFlags {
  PLAYER_EXTRA_GM_ON = 0x0001 , PLAYER_EXTRA_ACCEPT_WHISPERS = 0x0004 , PLAYER_EXTRA_TAXICHEAT = 0x0008 , PLAYER_EXTRA_GM_INVISIBLE = 0x0010 ,
  PLAYER_EXTRA_GM_CHAT = 0x0020 , PLAYER_EXTRA_PVP_DEATH = 0x0100 , PLAYER_EXTRA_HAS_RACE_CHANGED = 0x0200 , PLAYER_EXTRA_GRANTED_LEVELS_FROM_RAF = 0x0400 ,
  PLAYER_EXTRA_LEVEL_BOOSTED = 0x0800
}
 
enum  AtLoginFlags {
  AT_LOGIN_NONE = 0x000 , AT_LOGIN_RENAME = 0x001 , AT_LOGIN_RESET_SPELLS = 0x002 , AT_LOGIN_RESET_TALENTS = 0x004 ,
  AT_LOGIN_CUSTOMIZE = 0x008 , AT_LOGIN_RESET_PET_TALENTS = 0x010 , AT_LOGIN_FIRST = 0x020 , AT_LOGIN_CHANGE_FACTION = 0x040 ,
  AT_LOGIN_CHANGE_RACE = 0x080 , AT_LOGIN_RESURRECT = 0x100
}
 
enum  QuestSaveType { QUEST_DEFAULT_SAVE_TYPE = 0 , QUEST_DELETE_SAVE_TYPE , QUEST_FORCE_DELETE_SAVE_TYPE }
 
enum  PlayerQuestCompletedConstants { QUESTS_COMPLETED_BITS_SIZE = UF::size<decltype(UF::ActivePlayerData::QuestCompleted)>() , QUESTS_COMPLETED_BITS_PER_BLOCK = UF::size_of_value_type<decltype(UF::ActivePlayerData::QuestCompleted)>() * 8 }
 
enum  PlayerQuestLogConstants { MAX_QUEST_COUNTS = UF::size<decltype(UF::QuestLog::ObjectiveProgress)>() }
 
enum  QuestSlotStateMask { QUEST_STATE_NONE = 0x0000 , QUEST_STATE_COMPLETE = 0x0001 , QUEST_STATE_FAIL = 0x0002 }
 
enum  SkillUpdateState { SKILL_UNCHANGED = 0 , SKILL_CHANGED = 1 , SKILL_NEW = 2 , SKILL_DELETED = 3 }
 
enum  PlayerSlots { PLAYER_SLOT_START = 0 , PLAYER_SLOT_END = 227 , PLAYER_SLOTS_COUNT = (PLAYER_SLOT_END - PLAYER_SLOT_START) }
 
enum  EquipmentSlots : uint8 {
  EQUIPMENT_SLOT_START = 0 , EQUIPMENT_SLOT_HEAD = 0 , EQUIPMENT_SLOT_NECK = 1 , EQUIPMENT_SLOT_SHOULDERS = 2 ,
  EQUIPMENT_SLOT_BODY = 3 , EQUIPMENT_SLOT_CHEST = 4 , EQUIPMENT_SLOT_WAIST = 5 , EQUIPMENT_SLOT_LEGS = 6 ,
  EQUIPMENT_SLOT_FEET = 7 , EQUIPMENT_SLOT_WRISTS = 8 , EQUIPMENT_SLOT_HANDS = 9 , EQUIPMENT_SLOT_FINGER1 = 10 ,
  EQUIPMENT_SLOT_FINGER2 = 11 , EQUIPMENT_SLOT_TRINKET1 = 12 , EQUIPMENT_SLOT_TRINKET2 = 13 , EQUIPMENT_SLOT_BACK = 14 ,
  EQUIPMENT_SLOT_MAINHAND = 15 , EQUIPMENT_SLOT_OFFHAND = 16 , EQUIPMENT_SLOT_RANGED = 17 , EQUIPMENT_SLOT_TABARD = 18 ,
  EQUIPMENT_SLOT_END = 19
}
 
enum  ProfessionSlots : uint8 {
  PROFESSION_SLOT_PROFESSION1_TOOL = 19 , PROFESSION_SLOT_PROFESSION1_GEAR1 = 20 , PROFESSION_SLOT_PROFESSION1_GEAR2 = 21 , PROFESSION_SLOT_PROFESSION2_TOOL = 22 ,
  PROFESSION_SLOT_PROFESSION2_GEAR1 = 23 , PROFESSION_SLOT_PROFESSION2_GEAR2 = 24 , PROFESSION_SLOT_COOKING_TOOL = 25 , PROFESSION_SLOT_COOKING_GEAR1 = 26 ,
  PROFESSION_SLOT_FISHING_TOOL = 27 , PROFESSION_SLOT_FISHING_GEAR1 = 28 , PROFESSION_SLOT_FISHING_GEAR2 = 29 , PROFESSION_SLOT_END ,
  PROFESSION_SLOT_START = PROFESSION_SLOT_PROFESSION1_TOOL , PROFESSION_SLOT_MAX_COUNT = PROFESSION_SLOT_PROFESSION2_TOOL - PROFESSION_SLOT_PROFESSION1_TOOL
}
 
enum  InventorySlots : uint8 { INVENTORY_SLOT_BAG_START = 30 , INVENTORY_SLOT_BAG_END = 34 }
 
enum  ReagentBagSlots : uint8 { REAGENT_BAG_SLOT_START = 34 , REAGENT_BAG_SLOT_END = 35 }
 
enum  InventoryPackSlots : uint8 { INVENTORY_SLOT_ITEM_START = 35 , INVENTORY_SLOT_ITEM_END = 63 }
 
enum  BankItemSlots { BANK_SLOT_ITEM_START = 63 , BANK_SLOT_ITEM_END = 91 }
 
enum  BankBagSlots { BANK_SLOT_BAG_START = 91 , BANK_SLOT_BAG_END = 98 }
 
enum  BuyBackSlots { BUYBACK_SLOT_START = 98 , BUYBACK_SLOT_END = 110 }
 
enum  ReagentSlots { REAGENT_SLOT_START = 110 , REAGENT_SLOT_END = 208 }
 
enum  ChildEquipmentSlots { CHILD_EQUIPMENT_SLOT_START = 208 , CHILD_EQUIPMENT_SLOT_END = 211 }
 
enum  EquipableSpellSlots {
  EQUIPABLE_SPELL_OFFENSIVE_SLOT1 = 211 , EQUIPABLE_SPELL_OFFENSIVE_SLOT2 = 212 , EQUIPABLE_SPELL_OFFENSIVE_SLOT3 = 213 , EQUIPABLE_SPELL_OFFENSIVE_SLOT4 = 214 ,
  EQUIPABLE_SPELL_UTILITY_SLOT1 = 215 , EQUIPABLE_SPELL_UTILITY_SLOT2 = 216 , EQUIPABLE_SPELL_UTILITY_SLOT3 = 217 , EQUIPABLE_SPELL_UTILITY_SLOT4 = 218 ,
  EQUIPABLE_SPELL_DEFENSIVE_SLOT1 = 219 , EQUIPABLE_SPELL_DEFENSIVE_SLOT2 = 220 , EQUIPABLE_SPELL_DEFENSIVE_SLOT3 = 221 , EQUIPABLE_SPELL_DEFENSIVE_SLOT4 = 222 ,
  EQUIPABLE_SPELL_WEAPON_SLOT1 = 223 , EQUIPABLE_SPELL_WEAPON_SLOT2 = 224 , EQUIPABLE_SPELL_WEAPON_SLOT3 = 225 , EQUIPABLE_SPELL_WEAPON_SLOT4 = 226
}
 
enum class  ItemSearchLocation {
  Equipment = 0x01 , Inventory = 0x02 , Bank = 0x04 , ReagentBank = 0x08 ,
  Default = Equipment | Inventory , Everywhere = Equipment | Inventory | Bank | ReagentBank
}
 
enum class  ItemSearchCallbackResult { Stop , Continue }
 
enum  NewWorldReason { NEW_WORLD_NORMAL = 16 , NEW_WORLD_SEAMLESS = 21 }
 
enum  InstanceResetWarningType {
  RAID_INSTANCE_WARNING_HOURS = 1 , RAID_INSTANCE_WARNING_MIN = 2 , RAID_INSTANCE_WARNING_MIN_SOON = 3 , RAID_INSTANCE_WELCOME = 4 ,
  RAID_INSTANCE_EXPIRED = 5
}
 
enum  ArenaTeamInfoType {
  ARENA_TEAM_ID = 0 , ARENA_TEAM_TYPE = 1 , ARENA_TEAM_MEMBER = 2 , ARENA_TEAM_GAMES_WEEK = 3 ,
  ARENA_TEAM_GAMES_SEASON = 4 , ARENA_TEAM_WINS_SEASON = 5 , ARENA_TEAM_PERSONAL_RATING = 6 , ARENA_TEAM_END = 7
}
 
enum  TeleportToOptions {
  TELE_TO_NONE = 0x00 , TELE_TO_GM_MODE = 0x01 , TELE_TO_NOT_LEAVE_TRANSPORT = 0x02 , TELE_TO_NOT_LEAVE_COMBAT = 0x04 ,
  TELE_TO_NOT_UNSUMMON_PET = 0x08 , TELE_TO_SPELL = 0x10 , TELE_TO_TRANSPORT_TELEPORT = 0x20 , TELE_REVIVE_AT_TELEPORT = 0x40 ,
  TELE_TO_SEAMLESS = 0x80
}
 
enum  EnviromentalDamage : uint8 {
  DAMAGE_EXHAUSTED = 0 , DAMAGE_DROWNING = 1 , DAMAGE_FALL = 2 , DAMAGE_LAVA = 3 ,
  DAMAGE_SLIME = 4 , DAMAGE_FIRE = 5 , DAMAGE_FALL_TO_VOID = 6
}
 Type of environmental damages. More...
 
enum  PlayedTimeIndex { PLAYED_TIME_TOTAL = 0 , PLAYED_TIME_LEVEL = 1 }
 
enum  PlayerLoginQueryIndex {
  PLAYER_LOGIN_QUERY_LOAD_FROM , PLAYER_LOGIN_QUERY_LOAD_CUSTOMIZATIONS , PLAYER_LOGIN_QUERY_LOAD_GROUP , PLAYER_LOGIN_QUERY_LOAD_AURAS ,
  PLAYER_LOGIN_QUERY_LOAD_AURA_EFFECTS , PLAYER_LOGIN_QUERY_LOAD_AURA_STORED_LOCATIONS , PLAYER_LOGIN_QUERY_LOAD_SPELLS , PLAYER_LOGIN_QUERY_LOAD_SPELL_FAVORITES ,
  PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS , PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_OBJECTIVES , PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_OBJECTIVES_CRITERIA , PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_OBJECTIVES_CRITERIA_PROGRESS ,
  PLAYER_LOGIN_QUERY_LOAD_DAILY_QUEST_STATUS , PLAYER_LOGIN_QUERY_LOAD_REPUTATION , PLAYER_LOGIN_QUERY_LOAD_INVENTORY , PLAYER_LOGIN_QUERY_LOAD_ARTIFACTS ,
  PLAYER_LOGIN_QUERY_LOAD_AZERITE , PLAYER_LOGIN_QUERY_LOAD_AZERITE_MILESTONE_POWERS , PLAYER_LOGIN_QUERY_LOAD_AZERITE_UNLOCKED_ESSENCES , PLAYER_LOGIN_QUERY_LOAD_AZERITE_EMPOWERED ,
  PLAYER_LOGIN_QUERY_LOAD_MAILS , PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS , PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_ARTIFACT , PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE ,
  PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE_MILESTONE_POWER , PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE_UNLOCKED_ESSENCE , PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE_EMPOWERED , PLAYER_LOGIN_QUERY_LOAD_SOCIAL_LIST ,
  PLAYER_LOGIN_QUERY_LOAD_HOME_BIND , PLAYER_LOGIN_QUERY_LOAD_SPELL_COOLDOWNS , PLAYER_LOGIN_QUERY_LOAD_SPELL_CHARGES , PLAYER_LOGIN_QUERY_LOAD_DECLINED_NAMES ,
  PLAYER_LOGIN_QUERY_LOAD_GUILD , PLAYER_LOGIN_QUERY_LOAD_ARENA_INFO , PLAYER_LOGIN_QUERY_LOAD_ACHIEVEMENTS , PLAYER_LOGIN_QUERY_LOAD_CRITERIA_PROGRESS ,
  PLAYER_LOGIN_QUERY_LOAD_EQUIPMENT_SETS , PLAYER_LOGIN_QUERY_LOAD_TRANSMOG_OUTFITS , PLAYER_LOGIN_QUERY_LOAD_BG_DATA , PLAYER_LOGIN_QUERY_LOAD_GLYPHS ,
  PLAYER_LOGIN_QUERY_LOAD_TALENTS , PLAYER_LOGIN_QUERY_LOAD_PVP_TALENTS , PLAYER_LOGIN_QUERY_LOAD_ACCOUNT_DATA , PLAYER_LOGIN_QUERY_LOAD_SKILLS ,
  PLAYER_LOGIN_QUERY_LOAD_WEEKLY_QUEST_STATUS , PLAYER_LOGIN_QUERY_LOAD_RANDOM_BG , PLAYER_LOGIN_QUERY_LOAD_BANNED , PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_REW ,
  PLAYER_LOGIN_QUERY_LOAD_INSTANCE_LOCK_TIMES , PLAYER_LOGIN_QUERY_LOAD_SEASONAL_QUEST_STATUS , PLAYER_LOGIN_QUERY_LOAD_MONTHLY_QUEST_STATUS , PLAYER_LOGIN_QUERY_LOAD_VOID_STORAGE ,
  PLAYER_LOGIN_QUERY_LOAD_CURRENCY , PLAYER_LOGIN_QUERY_LOAD_CUF_PROFILES , PLAYER_LOGIN_QUERY_LOAD_CORPSE_LOCATION , PLAYER_LOGIN_QUERY_LOAD_PET_SLOTS ,
  PLAYER_LOGIN_QUERY_LOAD_GARRISON , PLAYER_LOGIN_QUERY_LOAD_GARRISON_BLUEPRINTS , PLAYER_LOGIN_QUERY_LOAD_GARRISON_BUILDINGS , PLAYER_LOGIN_QUERY_LOAD_GARRISON_FOLLOWERS ,
  PLAYER_LOGIN_QUERY_LOAD_GARRISON_FOLLOWER_ABILITIES , PLAYER_LOGIN_QUERY_LOAD_TRAIT_ENTRIES , PLAYER_LOGIN_QUERY_LOAD_TRAIT_CONFIGS , MAX_PLAYER_LOGIN_QUERY
}
 
enum  PlayerDelayedOperations {
  DELAYED_SAVE_PLAYER = 0x01 , DELAYED_RESURRECT_PLAYER = 0x02 , DELAYED_SPELL_CAST_DESERTER = 0x04 , DELAYED_BG_MOUNT_RESTORE = 0x08 ,
  DELAYED_BG_TAXI_RESTORE = 0x10 , DELAYED_BG_GROUP_RESTORE = 0x20 , DELAYED_END
}
 
enum  CharDeleteMethod { CHAR_DELETE_REMOVE = 0 , CHAR_DELETE_UNLINK = 1 }
 
enum  ReferAFriendError {
  ERR_REFER_A_FRIEND_NONE = 0 , ERR_REFER_A_FRIEND_NOT_REFERRED_BY = 1 , ERR_REFER_A_FRIEND_TARGET_TOO_HIGH = 2 , ERR_REFER_A_FRIEND_INSUFFICIENT_GRANTABLE_LEVELS = 3 ,
  ERR_REFER_A_FRIEND_TOO_FAR = 4 , ERR_REFER_A_FRIEND_DIFFERENT_FACTION = 5 , ERR_REFER_A_FRIEND_NOT_NOW = 6 , ERR_REFER_A_FRIEND_GRANT_LEVEL_MAX_I = 7 ,
  ERR_REFER_A_FRIEND_NO_TARGET = 8 , ERR_REFER_A_FRIEND_NOT_IN_GROUP = 9 , ERR_REFER_A_FRIEND_SUMMON_LEVEL_MAX_I = 10 , ERR_REFER_A_FRIEND_SUMMON_COOLDOWN = 11 ,
  ERR_REFER_A_FRIEND_INSUF_EXPAN_LVL = 12 , ERR_REFER_A_FRIEND_SUMMON_OFFLINE_S = 13 , ERR_REFER_A_FRIEND_NO_XREALM = 14 , ERR_REFER_A_FRIEND_MAP_INCOMING_TRANSFER_NOT_ALLOWED = 15
}
 
enum  PlayerCommandStates {
  CHEAT_NONE = 0x00 , CHEAT_GOD = 0x01 , CHEAT_CASTTIME = 0x02 , CHEAT_COOLDOWN = 0x04 ,
  CHEAT_POWER = 0x08 , CHEAT_WATERWALK = 0x10
}
 
enum  PlayerLogXPReason : uint8 { LOG_XP_REASON_KILL = 0 , LOG_XP_REASON_NO_KILL = 1 }
 
enum class  DisplayToastType : uint8 { NewItem = 0 , NewCurrency = 1 , Money = 2 , Honor = 3 }
 
enum class  DisplayToastMethod : uint8 {
  DoNotDisplay = 0 , Loot = 1 , PetBattle = 2 , PersonalLoot = 3 ,
  GarrisonMissionLoot = 4 , QuestUpgrade = 5 , QuestUpgradeEpic = 6 , Shipment = 7 ,
  GarrisonMissionSalvage = 8 , PvPFactionReward = 9 , GarrisonCurrency = 10 , LessAwesomeLoot = 11 ,
  UpgradedLoot = 12 , LegendaryLoot = 13 , InvasionLoot = 14 , Default = 15 ,
  QuestComplete = 16 , RatedPvPReward = 17 , CorruptedLoot = 19
}
 
enum  TalentLearnResult : int32 {
  TALENT_LEARN_OK = 0 , TALENT_FAILED_UNKNOWN = 1 , TALENT_FAILED_NOT_ENOUGH_TALENTS_IN_PRIMARY_TREE = 2 , TALENT_FAILED_NO_PRIMARY_TREE_SELECTED = 3 ,
  TALENT_FAILED_CANT_DO_THAT_RIGHT_NOW = 4 , TALENT_FAILED_AFFECTING_COMBAT = 5 , TALENT_FAILED_CANT_REMOVE_TALENT = 6 , TALENT_FAILED_CANT_DO_THAT_CHALLENGE_MODE_ACTIVE = 7 ,
  TALENT_FAILED_REST_AREA = 8 , TALENT_FAILED_UNSPENT_TALENT_POINTS = 9 , TALENT_FAILED_IN_PVP_MATCH = 10
}
 
enum class  ZonePVPTypeOverride : uint32 {
  None = 0 , Friendly = 1 , Hostile = 2 , Contested = 3 ,
  Combat = 4
}
 

Functions

TC_GAME_API uint32 GetBagSize (Bag const *bag)
 
TC_GAME_API ItemGetItemInBag (Bag const *bag, uint8 slot)
 
 DEFINE_ENUM_FLAG (PlayerFlags)
 
 DEFINE_ENUM_FLAG (PlayerFlagsEx)
 
 DEFINE_ENUM_FLAG (PlayerLocalFlags)
 
 DEFINE_ENUM_FLAG (ItemSearchLocation)
 
 DEFINE_ENUM_FLAG (TeleportToOptions)
 
TC_GAME_API void AddItemsSetItem (Player *player, Item const *item)
 
TC_GAME_API void RemoveItemsSetItem (Player *player, Item const *item)
 
template<typename Container >
Trinity::IteratorPair< UF::ChrCustomizationChoice const * > MakeChrCustomizationChoiceRange (Container const &container)
 

Variables

TC_GAME_API uint64 const MAX_MONEY_AMOUNT
 
uint32 constexpr PLAYER_MAX_HONOR_LEVEL = 500
 
uint8 constexpr PLAYER_LEVEL_MIN_HONOR = 10
 
uint32 constexpr SPELL_PVP_RULES_ENABLED = 134735
 
float constexpr MAX_AREA_SPIRIT_HEALER_RANGE = 20.0f
 

Macro Definition Documentation

◆ ACTION_BUTTON_ACTION

#define ACTION_BUTTON_ACTION (   X)    (uint64(X) & 0x00FFFFFFFFFFFFFF)

Definition at line 314 of file Player.h.

◆ ACTION_BUTTON_TYPE

#define ACTION_BUTTON_TYPE (   X)    ((uint64(X) & 0xFF00000000000000) >> 56)

Definition at line 315 of file Player.h.

◆ DISABLED_MIRROR_TIMER

#define DISABLED_MIRROR_TIMER   -1

Definition at line 513 of file Player.h.

◆ INVENTORY_DEFAULT_SIZE

#define INVENTORY_DEFAULT_SIZE   16

Definition at line 626 of file Player.h.

◆ INVENTORY_SLOT_BAG_0

#define INVENTORY_SLOT_BAG_0   255

Definition at line 625 of file Player.h.

◆ MAX_ACTION_BUTTON_ACTION_VALUE

#define MAX_ACTION_BUTTON_ACTION_VALUE   UI64LIT(0xFFFFFFFFFFFFFF)

Definition at line 316 of file Player.h.

◆ MAX_ACTION_BUTTONS

#define MAX_ACTION_BUTTONS   180

Definition at line 340 of file Player.h.

◆ MAX_DRUNKEN

#define MAX_DRUNKEN   4

Definition at line 424 of file Player.h.

◆ MAX_PLAYED_TIME_INDEX

#define MAX_PLAYED_TIME_INDEX   2

Definition at line 832 of file Player.h.

◆ MAX_PLAYER_SUMMON_DELAY

#define MAX_PLAYER_SUMMON_DELAY   (2*MINUTE)

Definition at line 915 of file Player.h.

◆ MAX_RECHARGING_RUNES

#define MAX_RECHARGING_RUNES   3

Definition at line 385 of file Player.h.

◆ MAX_RUNES

#define MAX_RUNES   7

Definition at line 384 of file Player.h.

◆ MAX_TIMERS

#define MAX_TIMERS   3

Definition at line 512 of file Player.h.

Typedef Documentation

◆ ActionButtonList

typedef std::map<uint8, ActionButton> ActionButtonList

Definition at line 342 of file Player.h.

◆ EnchantDurationList

Definition at line 413 of file Player.h.

◆ InstanceTimeMap

typedef std::unordered_map<uint32 , time_t> InstanceTimeMap

Definition at line 280 of file Player.h.

◆ ItemDurationList

typedef std::list<Item*> ItemDurationList

Definition at line 414 of file Player.h.

◆ ItemPosCountVec

typedef std::vector<ItemPosCount> ItemPosCountVec

Definition at line 750 of file Player.h.

◆ PlayerCurrenciesMap

typedef std::unordered_map<uint32, PlayerCurrency> PlayerCurrenciesMap

Definition at line 278 of file Player.h.

◆ PlayerMails

typedef std::deque<Mail*> PlayerMails

Definition at line 139 of file Player.h.

◆ PlayerPvpTalentMap

Definition at line 275 of file Player.h.

◆ PlayerSpellMap

typedef std::unordered_map<uint32, PlayerSpell> PlayerSpellMap

Definition at line 276 of file Player.h.

◆ PlayerTalentMap

typedef std::unordered_map<uint32, PlayerSpellState> PlayerTalentMap

Definition at line 274 of file Player.h.

◆ QuestObjectiveStatusMap

using QuestObjectiveStatusMap = std::unordered_multimap<std::pair<QuestObjectiveType, int32>, QuestObjectiveStatusData>

Definition at line 557 of file Player.h.

◆ QuestStatusMap

Definition at line 549 of file Player.h.

◆ QuestStatusSaveMap

Definition at line 569 of file Player.h.

◆ RewardedQuestSet

typedef std::set<uint32> RewardedQuestSet

Definition at line 559 of file Player.h.

◆ SkillStatusMap

typedef std::unordered_map<uint32, SkillStatusData> SkillStatusMap

Definition at line 607 of file Player.h.

◆ SpellFlatModifierByLabel

◆ SpellModContainer

typedef std::unordered_set<SpellModifier*> SpellModContainer

Definition at line 277 of file Player.h.

◆ SpellPctModifierByLabel

Enumeration Type Documentation

◆ ActionButtonType

Enumerator
ACTION_BUTTON_SPELL 
ACTION_BUTTON_C 
ACTION_BUTTON_EQSET 
ACTION_BUTTON_DROPDOWN 
ACTION_BUTTON_MACRO 
ACTION_BUTTON_CMACRO 
ACTION_BUTTON_COMPANION 
ACTION_BUTTON_MOUNT 
ACTION_BUTTON_ITEM 

Definition at line 290 of file Player.h.

◆ ActionButtonUpdateState

Enumerator
ACTIONBUTTON_UNCHANGED 
ACTIONBUTTON_CHANGED 
ACTIONBUTTON_NEW 
ACTIONBUTTON_DELETED 

Definition at line 282 of file Player.h.

◆ ArenaTeamInfoType

Enumerator
ARENA_TEAM_ID 
ARENA_TEAM_TYPE 
ARENA_TEAM_MEMBER 
ARENA_TEAM_GAMES_WEEK 
ARENA_TEAM_GAMES_SEASON 
ARENA_TEAM_WINS_SEASON 
ARENA_TEAM_PERSONAL_RATING 
ARENA_TEAM_END 

Definition at line 787 of file Player.h.

◆ AtLoginFlags

Enumerator
AT_LOGIN_NONE 
AT_LOGIN_RENAME 
AT_LOGIN_RESET_SPELLS 
AT_LOGIN_RESET_TALENTS 
AT_LOGIN_CUSTOMIZE 
AT_LOGIN_RESET_PET_TALENTS 
AT_LOGIN_FIRST 
AT_LOGIN_CHANGE_FACTION 
AT_LOGIN_CHANGE_RACE 
AT_LOGIN_RESURRECT 

Definition at line 535 of file Player.h.

◆ BankBagSlots

Enumerator
BANK_SLOT_BAG_START 
BANK_SLOT_BAG_END 

Definition at line 697 of file Player.h.

◆ BankItemSlots

Enumerator
BANK_SLOT_ITEM_START 
BANK_SLOT_ITEM_END 

Definition at line 691 of file Player.h.

◆ BuyBackSlots

Enumerator
BUYBACK_SLOT_START 
BUYBACK_SLOT_END 

Definition at line 703 of file Player.h.

◆ BuyBankSlotResult

Enumerator
ERR_BANKSLOT_FAILED_TOO_MANY 
ERR_BANKSLOT_INSUFFICIENT_FUNDS 
ERR_BANKSLOT_NOTBANKER 
ERR_BANKSLOT_OK 

Definition at line 176 of file Player.h.

◆ CharDeleteMethod

Enumerator
CHAR_DELETE_REMOVE 
CHAR_DELETE_UNLINK 

Definition at line 919 of file Player.h.

◆ ChildEquipmentSlots

Enumerator
CHILD_EQUIPMENT_SLOT_START 
CHILD_EQUIPMENT_SLOT_END 

Definition at line 716 of file Player.h.

◆ DisplayToastMethod

enum class DisplayToastMethod : uint8
strong
Enumerator
DoNotDisplay 
Loot 
PetBattle 
PersonalLoot 
GarrisonMissionLoot 
QuestUpgrade 
QuestUpgradeEpic 
Shipment 
GarrisonMissionSalvage 
PvPFactionReward 
GarrisonCurrency 
LessAwesomeLoot 
UpgradedLoot 
LegendaryLoot 
InvasionLoot 
Default 
QuestComplete 
RatedPvPReward 
CorruptedLoot 

Definition at line 970 of file Player.h.

◆ DisplayToastType

enum class DisplayToastType : uint8
strong
Enumerator
NewItem 
NewCurrency 
Money 
Honor 

Definition at line 962 of file Player.h.

◆ DrunkenState

Enumerator
DRUNKEN_SOBER 
DRUNKEN_TIPSY 
DRUNKEN_DRUNK 
DRUNKEN_SMASHED 

Definition at line 416 of file Player.h.

◆ DuelState

enum DuelState
Enumerator
DUEL_STATE_CHALLENGED 
DUEL_STATE_COUNTDOWN 
DUEL_STATE_IN_PROGRESS 
DUEL_STATE_COMPLETED 

Definition at line 355 of file Player.h.

◆ EnviromentalDamage

Type of environmental damages.

Enumerator
DAMAGE_EXHAUSTED 
DAMAGE_DROWNING 
DAMAGE_FALL 
DAMAGE_LAVA 
DAMAGE_SLIME 
DAMAGE_FIRE 
DAMAGE_FALL_TO_VOID 

Definition at line 815 of file Player.h.

◆ EquipableSpellSlots

Enumerator
EQUIPABLE_SPELL_OFFENSIVE_SLOT1 
EQUIPABLE_SPELL_OFFENSIVE_SLOT2 
EQUIPABLE_SPELL_OFFENSIVE_SLOT3 
EQUIPABLE_SPELL_OFFENSIVE_SLOT4 
EQUIPABLE_SPELL_UTILITY_SLOT1 
EQUIPABLE_SPELL_UTILITY_SLOT2 
EQUIPABLE_SPELL_UTILITY_SLOT3 
EQUIPABLE_SPELL_UTILITY_SLOT4 
EQUIPABLE_SPELL_DEFENSIVE_SLOT1 
EQUIPABLE_SPELL_DEFENSIVE_SLOT2 
EQUIPABLE_SPELL_DEFENSIVE_SLOT3 
EQUIPABLE_SPELL_DEFENSIVE_SLOT4 
EQUIPABLE_SPELL_WEAPON_SLOT1 
EQUIPABLE_SPELL_WEAPON_SLOT2 
EQUIPABLE_SPELL_WEAPON_SLOT3 
EQUIPABLE_SPELL_WEAPON_SLOT4 

Definition at line 723 of file Player.h.

◆ EquipmentSlots

Enumerator
EQUIPMENT_SLOT_START 
EQUIPMENT_SLOT_HEAD 
EQUIPMENT_SLOT_NECK 
EQUIPMENT_SLOT_SHOULDERS 
EQUIPMENT_SLOT_BODY 
EQUIPMENT_SLOT_CHEST 
EQUIPMENT_SLOT_WAIST 
EQUIPMENT_SLOT_LEGS 
EQUIPMENT_SLOT_FEET 
EQUIPMENT_SLOT_WRISTS 
EQUIPMENT_SLOT_HANDS 
EQUIPMENT_SLOT_FINGER1 
EQUIPMENT_SLOT_FINGER2 
EQUIPMENT_SLOT_TRINKET1 
EQUIPMENT_SLOT_TRINKET2 
EQUIPMENT_SLOT_BACK 
EQUIPMENT_SLOT_MAINHAND 
EQUIPMENT_SLOT_OFFHAND 
EQUIPMENT_SLOT_RANGED 
EQUIPMENT_SLOT_TABARD 
EQUIPMENT_SLOT_END 

Definition at line 628 of file Player.h.

◆ InstanceResetWarningType

Enumerator
RAID_INSTANCE_WARNING_HOURS 
RAID_INSTANCE_WARNING_MIN 
RAID_INSTANCE_WARNING_MIN_SOON 
RAID_INSTANCE_WELCOME 
RAID_INSTANCE_EXPIRED 

Definition at line 777 of file Player.h.

◆ InventoryPackSlots

Enumerator
INVENTORY_SLOT_ITEM_START 
INVENTORY_SLOT_ITEM_END 

Definition at line 685 of file Player.h.

◆ InventorySlots

Enumerator
INVENTORY_SLOT_BAG_START 
INVENTORY_SLOT_BAG_END 

Definition at line 673 of file Player.h.

◆ ItemSearchCallbackResult

enum class ItemSearchCallbackResult
strong
Enumerator
Stop 
Continue 

Definition at line 765 of file Player.h.

◆ ItemSearchLocation

enum class ItemSearchLocation
strong
Enumerator
Equipment 
Inventory 
Bank 
ReagentBank 
Default 
Everywhere 

Definition at line 752 of file Player.h.

◆ MirrorTimerType

Enumerator
FATIGUE_TIMER 
BREATH_TIMER 
FIRE_TIMER 

Definition at line 506 of file Player.h.

◆ NewWorldReason

Enumerator
NEW_WORLD_NORMAL 
NEW_WORLD_SEAMLESS 

Definition at line 771 of file Player.h.

◆ PlayedTimeIndex

Enumerator
PLAYED_TIME_TOTAL 
PLAYED_TIME_LEVEL 

Definition at line 826 of file Player.h.

◆ PlayerCommandStates

Enumerator
CHEAT_NONE 
CHEAT_GOD 
CHEAT_CASTTIME 
CHEAT_COOLDOWN 
CHEAT_POWER 
CHEAT_WATERWALK 

Definition at line 946 of file Player.h.

◆ PlayerCurrencyState

Enumerator
PLAYERCURRENCY_UNCHANGED 
PLAYERCURRENCY_CHANGED 
PLAYERCURRENCY_NEW 
PLAYERCURRENCY_REMOVED 

Definition at line 255 of file Player.h.

◆ PlayerDataFlagConstants

Enumerator
PLAYER_EXPLORED_ZONES_BITS 
PLAYER_DATA_FLAG_EXPLORED_ZONES_INDEX 
PLAYER_DATA_FLAG_CHARACTER_INDEX 
PLAYER_DATA_FLAG_ACCOUNT_INDEX 

Definition at line 146 of file Player.h.

◆ PlayerDelayedOperations

Enumerator
DELAYED_SAVE_PLAYER 
DELAYED_RESURRECT_PLAYER 
DELAYED_SPELL_CAST_DESERTER 
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_BG_GROUP_RESTORE 

Flag to restore group state after teleport from BG.

DELAYED_END 

Definition at line 903 of file Player.h.

◆ PlayerExtraFlags

Enumerator
PLAYER_EXTRA_GM_ON 
PLAYER_EXTRA_ACCEPT_WHISPERS 
PLAYER_EXTRA_TAXICHEAT 
PLAYER_EXTRA_GM_INVISIBLE 
PLAYER_EXTRA_GM_CHAT 
PLAYER_EXTRA_PVP_DEATH 
PLAYER_EXTRA_HAS_RACE_CHANGED 
PLAYER_EXTRA_GRANTED_LEVELS_FROM_RAF 
PLAYER_EXTRA_LEVEL_BOOSTED 

Definition at line 516 of file Player.h.

◆ PlayerFieldByte2Flags

Enumerator
PLAYER_FIELD_BYTE2_NONE 
PLAYER_FIELD_BYTE2_STEALTH 
PLAYER_FIELD_BYTE2_INVISIBILITY_GLOW 

Definition at line 499 of file Player.h.

◆ PlayerFlags

Enumerator
PLAYER_FLAGS_GROUP_LEADER 
PLAYER_FLAGS_AFK 
PLAYER_FLAGS_DND 
PLAYER_FLAGS_GM 
PLAYER_FLAGS_GHOST 
PLAYER_FLAGS_RESTING 
PLAYER_FLAGS_VOICE_CHAT 
PLAYER_FLAGS_UNK7 
PLAYER_FLAGS_CONTESTED_PVP 
PLAYER_FLAGS_IN_PVP 
PLAYER_FLAGS_WAR_MODE_ACTIVE 
PLAYER_FLAGS_WAR_MODE_DESIRED 
PLAYER_FLAGS_PLAYED_LONG_TIME 
PLAYER_FLAGS_PLAYED_TOO_LONG 
PLAYER_FLAGS_IS_OUT_OF_BOUNDS 
PLAYER_FLAGS_DEVELOPER 
PLAYER_FLAGS_LOW_LEVEL_RAID_ENABLED 
PLAYER_FLAGS_TAXI_BENCHMARK 
PLAYER_FLAGS_PVP_TIMER 
PLAYER_FLAGS_UBER 
PLAYER_FLAGS_UNK20 
PLAYER_FLAGS_UNK21 
PLAYER_FLAGS_COMMENTATOR2 
PLAYER_FLAGS_HIDE_ACCOUNT_ACHIEVEMENTS 
PLAYER_FLAGS_PET_BATTLES_UNLOCKED 
PLAYER_FLAGS_NO_XP_GAIN 
PLAYER_FLAGS_UNK26 
PLAYER_FLAGS_AUTO_DECLINE_GUILD 
PLAYER_FLAGS_GUILD_LEVEL_ENABLED 
PLAYER_FLAGS_VOID_UNLOCKED 
PLAYER_FLAGS_TIMEWALKING 
PLAYER_FLAGS_COMMENTATOR_CAMERA 

Definition at line 426 of file Player.h.

◆ PlayerFlagsEx

Enumerator
PLAYER_FLAGS_EX_REAGENT_BANK_UNLOCKED 
PLAYER_FLAGS_EX_MERCENARY_MODE 
PLAYER_FLAGS_EX_ARTIFACT_FORGE_CHEAT 
PLAYER_FLAGS_EX_IN_PVP_COMBAT 
PLAYER_FLAGS_EX_MENTOR 
PLAYER_FLAGS_EX_NEWCOMER 
PLAYER_FLAGS_EX_UNLOCKED_AOE_LOOT 

Definition at line 464 of file Player.h.

◆ PlayerLocalFlags

Enumerator
PLAYER_LOCAL_FLAG_CONTROLLING_PET 
PLAYER_LOCAL_FLAG_TRACK_STEALTHED 
PLAYER_LOCAL_FLAG_RELEASE_TIMER 
PLAYER_LOCAL_FLAG_NO_RELEASE_WINDOW 
PLAYER_LOCAL_FLAG_NO_PET_BAR 
PLAYER_LOCAL_FLAG_OVERRIDE_CAMERA_MIN_HEIGHT 
PLAYER_LOCAL_FLAG_NEWLY_BOOSTED_CHARACTER 
PLAYER_LOCAL_FLAG_USING_PARTY_GARRISON 
PLAYER_LOCAL_FLAG_CAN_USE_OBJECTS_MOUNTED 
PLAYER_LOCAL_FLAG_CAN_VISIT_PARTY_GARRISON 
PLAYER_LOCAL_FLAG_WAR_MODE 
PLAYER_LOCAL_FLAG_ACCOUNT_SECURED 
PLAYER_LOCAL_FLAG_OVERRIDE_TRANSPORT_SERVER_TIME 
PLAYER_LOCAL_FLAG_MENTOR_RESTRICTED 
PLAYER_LOCAL_FLAG_WEEKLY_REWARD_AVAILABLE 

Definition at line 477 of file Player.h.

◆ PlayerLoginQueryIndex

Enumerator
PLAYER_LOGIN_QUERY_LOAD_FROM 
PLAYER_LOGIN_QUERY_LOAD_CUSTOMIZATIONS 
PLAYER_LOGIN_QUERY_LOAD_GROUP 
PLAYER_LOGIN_QUERY_LOAD_AURAS 
PLAYER_LOGIN_QUERY_LOAD_AURA_EFFECTS 
PLAYER_LOGIN_QUERY_LOAD_AURA_STORED_LOCATIONS 
PLAYER_LOGIN_QUERY_LOAD_SPELLS 
PLAYER_LOGIN_QUERY_LOAD_SPELL_FAVORITES 
PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS 
PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_OBJECTIVES 
PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_OBJECTIVES_CRITERIA 
PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_OBJECTIVES_CRITERIA_PROGRESS 
PLAYER_LOGIN_QUERY_LOAD_DAILY_QUEST_STATUS 
PLAYER_LOGIN_QUERY_LOAD_REPUTATION 
PLAYER_LOGIN_QUERY_LOAD_INVENTORY 
PLAYER_LOGIN_QUERY_LOAD_ARTIFACTS 
PLAYER_LOGIN_QUERY_LOAD_AZERITE 
PLAYER_LOGIN_QUERY_LOAD_AZERITE_MILESTONE_POWERS 
PLAYER_LOGIN_QUERY_LOAD_AZERITE_UNLOCKED_ESSENCES 
PLAYER_LOGIN_QUERY_LOAD_AZERITE_EMPOWERED 
PLAYER_LOGIN_QUERY_LOAD_MAILS 
PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS 
PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_ARTIFACT 
PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE 
PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE_MILESTONE_POWER 
PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE_UNLOCKED_ESSENCE 
PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE_EMPOWERED 
PLAYER_LOGIN_QUERY_LOAD_SOCIAL_LIST 
PLAYER_LOGIN_QUERY_LOAD_HOME_BIND 
PLAYER_LOGIN_QUERY_LOAD_SPELL_COOLDOWNS 
PLAYER_LOGIN_QUERY_LOAD_SPELL_CHARGES 
PLAYER_LOGIN_QUERY_LOAD_DECLINED_NAMES 
PLAYER_LOGIN_QUERY_LOAD_GUILD 
PLAYER_LOGIN_QUERY_LOAD_ARENA_INFO 
PLAYER_LOGIN_QUERY_LOAD_ACHIEVEMENTS 
PLAYER_LOGIN_QUERY_LOAD_CRITERIA_PROGRESS 
PLAYER_LOGIN_QUERY_LOAD_EQUIPMENT_SETS 
PLAYER_LOGIN_QUERY_LOAD_TRANSMOG_OUTFITS 
PLAYER_LOGIN_QUERY_LOAD_BG_DATA 
PLAYER_LOGIN_QUERY_LOAD_GLYPHS 
PLAYER_LOGIN_QUERY_LOAD_TALENTS 
PLAYER_LOGIN_QUERY_LOAD_PVP_TALENTS 
PLAYER_LOGIN_QUERY_LOAD_ACCOUNT_DATA 
PLAYER_LOGIN_QUERY_LOAD_SKILLS 
PLAYER_LOGIN_QUERY_LOAD_WEEKLY_QUEST_STATUS 
PLAYER_LOGIN_QUERY_LOAD_RANDOM_BG 
PLAYER_LOGIN_QUERY_LOAD_BANNED 
PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_REW 
PLAYER_LOGIN_QUERY_LOAD_INSTANCE_LOCK_TIMES 
PLAYER_LOGIN_QUERY_LOAD_SEASONAL_QUEST_STATUS 
PLAYER_LOGIN_QUERY_LOAD_MONTHLY_QUEST_STATUS 
PLAYER_LOGIN_QUERY_LOAD_VOID_STORAGE 
PLAYER_LOGIN_QUERY_LOAD_CURRENCY 
PLAYER_LOGIN_QUERY_LOAD_CUF_PROFILES 
PLAYER_LOGIN_QUERY_LOAD_CORPSE_LOCATION 
PLAYER_LOGIN_QUERY_LOAD_PET_SLOTS 
PLAYER_LOGIN_QUERY_LOAD_GARRISON 
PLAYER_LOGIN_QUERY_LOAD_GARRISON_BLUEPRINTS 
PLAYER_LOGIN_QUERY_LOAD_GARRISON_BUILDINGS 
PLAYER_LOGIN_QUERY_LOAD_GARRISON_FOLLOWERS 
PLAYER_LOGIN_QUERY_LOAD_GARRISON_FOLLOWER_ABILITIES 
PLAYER_LOGIN_QUERY_LOAD_TRAIT_ENTRIES 
PLAYER_LOGIN_QUERY_LOAD_TRAIT_CONFIGS 
MAX_PLAYER_LOGIN_QUERY 

Definition at line 835 of file Player.h.

◆ PlayerLogXPReason

Enumerator
LOG_XP_REASON_KILL 
LOG_XP_REASON_NO_KILL 

Definition at line 956 of file Player.h.

◆ PlayerQuestCompletedConstants

Enumerator
QUESTS_COMPLETED_BITS_SIZE 
QUESTS_COMPLETED_BITS_PER_BLOCK 

Definition at line 572 of file Player.h.

◆ PlayerQuestLogConstants

Enumerator
MAX_QUEST_COUNTS 

Definition at line 578 of file Player.h.

◆ PlayerSkillsConstants

Enumerator
PLAYER_MAX_SKILLS 

Definition at line 141 of file Player.h.

◆ PlayerSlots

Enumerator
PLAYER_SLOT_START 
PLAYER_SLOT_END 
PLAYER_SLOTS_COUNT 

Definition at line 614 of file Player.h.

◆ PlayerSpellState

Enumerator
PLAYERSPELL_UNCHANGED 
PLAYERSPELL_CHANGED 
PLAYERSPELL_NEW 
PLAYERSPELL_REMOVED 
PLAYERSPELL_TEMPORARY 

Definition at line 184 of file Player.h.

◆ PlayerUnderwaterState

Enumerator
UNDERWATER_NONE 
UNDERWATER_INWATER 
UNDERWATER_INLAVA 
UNDERWATER_INSLIME 
UNDERWATER_INDARKWATER 
UNDERWATER_EXIST_TIMERS 

Definition at line 165 of file Player.h.

◆ ProfessionSlots

Enumerator
PROFESSION_SLOT_PROFESSION1_TOOL 
PROFESSION_SLOT_PROFESSION1_GEAR1 
PROFESSION_SLOT_PROFESSION1_GEAR2 
PROFESSION_SLOT_PROFESSION2_TOOL 
PROFESSION_SLOT_PROFESSION2_GEAR1 
PROFESSION_SLOT_PROFESSION2_GEAR2 
PROFESSION_SLOT_COOKING_TOOL 
PROFESSION_SLOT_COOKING_GEAR1 
PROFESSION_SLOT_FISHING_TOOL 
PROFESSION_SLOT_FISHING_GEAR1 
PROFESSION_SLOT_FISHING_GEAR2 
PROFESSION_SLOT_END 
PROFESSION_SLOT_START 
PROFESSION_SLOT_MAX_COUNT 

Definition at line 653 of file Player.h.

◆ QuestSaveType

Enumerator
QUEST_DEFAULT_SAVE_TYPE 
QUEST_DELETE_SAVE_TYPE 
QUEST_FORCE_DELETE_SAVE_TYPE 

Definition at line 561 of file Player.h.

◆ QuestSlotStateMask

Enumerator
QUEST_STATE_NONE 
QUEST_STATE_COMPLETE 
QUEST_STATE_FAIL 

Definition at line 583 of file Player.h.

◆ ReagentBagSlots

Enumerator
REAGENT_BAG_SLOT_START 
REAGENT_BAG_SLOT_END 

Definition at line 679 of file Player.h.

◆ ReagentSlots

Enumerator
REAGENT_SLOT_START 
REAGENT_SLOT_END 

Definition at line 710 of file Player.h.

◆ ReferAFriendError

Enumerator
ERR_REFER_A_FRIEND_NONE 
ERR_REFER_A_FRIEND_NOT_REFERRED_BY 
ERR_REFER_A_FRIEND_TARGET_TOO_HIGH 
ERR_REFER_A_FRIEND_INSUFFICIENT_GRANTABLE_LEVELS 
ERR_REFER_A_FRIEND_TOO_FAR 
ERR_REFER_A_FRIEND_DIFFERENT_FACTION 
ERR_REFER_A_FRIEND_NOT_NOW 
ERR_REFER_A_FRIEND_GRANT_LEVEL_MAX_I 
ERR_REFER_A_FRIEND_NO_TARGET 
ERR_REFER_A_FRIEND_NOT_IN_GROUP 
ERR_REFER_A_FRIEND_SUMMON_LEVEL_MAX_I 
ERR_REFER_A_FRIEND_SUMMON_COOLDOWN 
ERR_REFER_A_FRIEND_INSUF_EXPAN_LVL 
ERR_REFER_A_FRIEND_SUMMON_OFFLINE_S 
ERR_REFER_A_FRIEND_NO_XREALM 
ERR_REFER_A_FRIEND_MAP_INCOMING_TRANSFER_NOT_ALLOWED 

Definition at line 926 of file Player.h.

◆ ReputationSource

Enumerator
REPUTATION_SOURCE_KILL 
REPUTATION_SOURCE_QUEST 
REPUTATION_SOURCE_DAILY_QUEST 
REPUTATION_SOURCE_WEEKLY_QUEST 
REPUTATION_SOURCE_MONTHLY_QUEST 
REPUTATION_SOURCE_REPEATABLE_QUEST 
REPUTATION_SOURCE_SPELL 

Definition at line 303 of file Player.h.

◆ RuneCooldowns

Enumerator
RUNE_BASE_COOLDOWN 
RUNE_MISS_COOLDOWN 

Definition at line 387 of file Player.h.

◆ SkillUpdateState

Enumerator
SKILL_UNCHANGED 
SKILL_CHANGED 
SKILL_NEW 
SKILL_DELETED 

Definition at line 590 of file Player.h.

◆ SpecResetType

Enumerator
SPEC_RESET_TALENTS 
SPEC_RESET_SPECIALIZATION 
SPEC_RESET_GLYPHS 
SPEC_RESET_PET_TALENTS 

Definition at line 215 of file Player.h.

◆ SpellModType

Enumerator
SPELLMOD_FLAT 
SPELLMOD_PCT 
SPELLMOD_LABEL_FLAT 
SPELLMOD_LABEL_PCT 
SPELLMOD_END 

Definition at line 155 of file Player.h.

◆ TalentLearnResult

Enumerator
TALENT_LEARN_OK 
TALENT_FAILED_UNKNOWN 
TALENT_FAILED_NOT_ENOUGH_TALENTS_IN_PRIMARY_TREE 
TALENT_FAILED_NO_PRIMARY_TREE_SELECTED 
TALENT_FAILED_CANT_DO_THAT_RIGHT_NOW 
TALENT_FAILED_AFFECTING_COMBAT 
TALENT_FAILED_CANT_REMOVE_TALENT 
TALENT_FAILED_CANT_DO_THAT_CHALLENGE_MODE_ACTIVE 
TALENT_FAILED_REST_AREA 
TALENT_FAILED_UNSPENT_TALENT_POINTS 
TALENT_FAILED_IN_PVP_MATCH 

Definition at line 1059 of file Player.h.

◆ TeleportToOptions

Enumerator
TELE_TO_NONE 
TELE_TO_GM_MODE 
TELE_TO_NOT_LEAVE_TRANSPORT 
TELE_TO_NOT_LEAVE_COMBAT 
TELE_TO_NOT_UNSUMMON_PET 
TELE_TO_SPELL 
TELE_TO_TRANSPORT_TELEPORT 
TELE_REVIVE_AT_TELEPORT 
TELE_TO_SEAMLESS 

Definition at line 799 of file Player.h.

◆ ZonePVPTypeOverride

enum class ZonePVPTypeOverride : uint32
strong
Enumerator
None 
Friendly 
Hostile 
Contested 
Combat 

Definition at line 1099 of file Player.h.

Function Documentation

◆ AddItemsSetItem()

TC_GAME_API void AddItemsSetItem ( Player player,
Item const *  item 
)

Definition at line 66 of file Item.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DEFINE_ENUM_FLAG() [1/5]

DEFINE_ENUM_FLAG ( ItemSearchLocation  )

◆ DEFINE_ENUM_FLAG() [2/5]

DEFINE_ENUM_FLAG ( PlayerFlags  )

◆ DEFINE_ENUM_FLAG() [3/5]

DEFINE_ENUM_FLAG ( PlayerFlagsEx  )

◆ DEFINE_ENUM_FLAG() [4/5]

DEFINE_ENUM_FLAG ( PlayerLocalFlags  )

◆ DEFINE_ENUM_FLAG() [5/5]

DEFINE_ENUM_FLAG ( TeleportToOptions  )

◆ GetBagSize()

TC_GAME_API uint32 GetBagSize ( Bag const *  bag)

Definition at line 303 of file Bag.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetItemInBag()

TC_GAME_API Item * GetItemInBag ( Bag const *  bag,
uint8  slot 
)

Definition at line 308 of file Bag.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MakeChrCustomizationChoiceRange()

template<typename Container >
Trinity::IteratorPair< UF::ChrCustomizationChoice const * > MakeChrCustomizationChoiceRange ( Container const &  container)

Definition at line 3247 of file Player.h.

+ Here is the caller graph for this function:

◆ RemoveItemsSetItem()

TC_GAME_API void RemoveItemsSetItem ( Player player,
Item const *  item 
)

Definition at line 155 of file Item.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ MAX_AREA_SPIRIT_HEALER_RANGE

float constexpr MAX_AREA_SPIRIT_HEALER_RANGE = 20.0f
constexpr

Definition at line 1097 of file Player.h.

◆ MAX_MONEY_AMOUNT

TC_GAME_API uint64 const MAX_MONEY_AMOUNT
extern

Definition at line 158 of file Player.cpp.

◆ PLAYER_LEVEL_MIN_HONOR

uint8 constexpr PLAYER_LEVEL_MIN_HONOR = 10
constexpr

Definition at line 1095 of file Player.h.

◆ PLAYER_MAX_HONOR_LEVEL

uint32 constexpr PLAYER_MAX_HONOR_LEVEL = 500
constexpr

Definition at line 1094 of file Player.h.

◆ SPELL_PVP_RULES_ENABLED

uint32 constexpr SPELL_PVP_RULES_ENABLED = 134735
constexpr

Definition at line 1096 of file Player.h.