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.

291{
292 ACTION_BUTTON_SPELL = 0x00,
293 ACTION_BUTTON_C = 0x01, // click?
294 ACTION_BUTTON_EQSET = 0x20,
296 ACTION_BUTTON_MACRO = 0x40,
299 ACTION_BUTTON_MOUNT = 0x60,
300 ACTION_BUTTON_ITEM = 0x80
301};
@ ACTION_BUTTON_MOUNT
Definition: Player.h:299
@ ACTION_BUTTON_COMPANION
Definition: Player.h:298
@ ACTION_BUTTON_DROPDOWN
Definition: Player.h:295
@ ACTION_BUTTON_EQSET
Definition: Player.h:294
@ ACTION_BUTTON_C
Definition: Player.h:293
@ ACTION_BUTTON_MACRO
Definition: Player.h:296
@ ACTION_BUTTON_ITEM
Definition: Player.h:300
@ ACTION_BUTTON_CMACRO
Definition: Player.h:297
@ ACTION_BUTTON_SPELL
Definition: Player.h:292

◆ ActionButtonUpdateState

Enumerator
ACTIONBUTTON_UNCHANGED 
ACTIONBUTTON_CHANGED 
ACTIONBUTTON_NEW 
ACTIONBUTTON_DELETED 

Definition at line 282 of file Player.h.

283{
288};
@ ACTIONBUTTON_NEW
Definition: Player.h:286
@ ACTIONBUTTON_UNCHANGED
Definition: Player.h:284
@ ACTIONBUTTON_DELETED
Definition: Player.h:287
@ ACTIONBUTTON_CHANGED
Definition: Player.h:285

◆ 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.

788{
789 ARENA_TEAM_ID = 0,
790 ARENA_TEAM_TYPE = 1, // new in 3.2 - team type?
791 ARENA_TEAM_MEMBER = 2, // 0 - captain, 1 - member
797};
@ ARENA_TEAM_GAMES_WEEK
Definition: Player.h:792
@ ARENA_TEAM_TYPE
Definition: Player.h:790
@ ARENA_TEAM_ID
Definition: Player.h:789
@ ARENA_TEAM_END
Definition: Player.h:796
@ ARENA_TEAM_PERSONAL_RATING
Definition: Player.h:795
@ ARENA_TEAM_MEMBER
Definition: Player.h:791
@ ARENA_TEAM_WINS_SEASON
Definition: Player.h:794
@ ARENA_TEAM_GAMES_SEASON
Definition: Player.h:793

◆ 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.

536{
537 AT_LOGIN_NONE = 0x000,
538 AT_LOGIN_RENAME = 0x001,
539 AT_LOGIN_RESET_SPELLS = 0x002,
541 AT_LOGIN_CUSTOMIZE = 0x008,
543 AT_LOGIN_FIRST = 0x020,
545 AT_LOGIN_CHANGE_RACE = 0x080,
546 AT_LOGIN_RESURRECT = 0x100,
547};
@ AT_LOGIN_RESET_TALENTS
Definition: Player.h:540
@ AT_LOGIN_RESET_SPELLS
Definition: Player.h:539
@ AT_LOGIN_NONE
Definition: Player.h:537
@ AT_LOGIN_RESET_PET_TALENTS
Definition: Player.h:542
@ AT_LOGIN_FIRST
Definition: Player.h:543
@ AT_LOGIN_RESURRECT
Definition: Player.h:546
@ AT_LOGIN_CUSTOMIZE
Definition: Player.h:541
@ AT_LOGIN_RENAME
Definition: Player.h:538
@ AT_LOGIN_CHANGE_RACE
Definition: Player.h:545
@ AT_LOGIN_CHANGE_FACTION
Definition: Player.h:544

◆ BankBagSlots

Enumerator
BANK_SLOT_BAG_START 
BANK_SLOT_BAG_END 

Definition at line 697 of file Player.h.

698{
701};
@ BANK_SLOT_BAG_END
Definition: Player.h:700
@ BANK_SLOT_BAG_START
Definition: Player.h:699

◆ BankItemSlots

Enumerator
BANK_SLOT_ITEM_START 
BANK_SLOT_ITEM_END 

Definition at line 691 of file Player.h.

692{
695};
@ BANK_SLOT_ITEM_START
Definition: Player.h:693
@ BANK_SLOT_ITEM_END
Definition: Player.h:694

◆ BuyBackSlots

Enumerator
BUYBACK_SLOT_START 
BUYBACK_SLOT_END 

Definition at line 703 of file Player.h.

704{
705 // stored in m_buybackitems
707 BUYBACK_SLOT_END = 110
708};
@ BUYBACK_SLOT_END
Definition: Player.h:707
@ BUYBACK_SLOT_START
Definition: Player.h:706

◆ 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.

177{
182};
@ ERR_BANKSLOT_NOTBANKER
Definition: Player.h:180
@ ERR_BANKSLOT_FAILED_TOO_MANY
Definition: Player.h:178
@ ERR_BANKSLOT_OK
Definition: Player.h:181
@ ERR_BANKSLOT_INSUFFICIENT_FUNDS
Definition: Player.h:179

◆ CharDeleteMethod

Enumerator
CHAR_DELETE_REMOVE 
CHAR_DELETE_UNLINK 

Definition at line 919 of file Player.h.

920{
921 CHAR_DELETE_REMOVE = 0, // Completely remove from the database
922 CHAR_DELETE_UNLINK = 1 // The character gets unlinked from the account,
923 // the name gets freed up and appears as deleted ingame
924};
@ CHAR_DELETE_REMOVE
Definition: Player.h:921
@ CHAR_DELETE_UNLINK
Definition: Player.h:922

◆ ChildEquipmentSlots

Enumerator
CHILD_EQUIPMENT_SLOT_START 
CHILD_EQUIPMENT_SLOT_END 

Definition at line 716 of file Player.h.

717{
720};
@ CHILD_EQUIPMENT_SLOT_END
Definition: Player.h:719
@ CHILD_EQUIPMENT_SLOT_START
Definition: Player.h:718

◆ 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.

963{
964 NewItem = 0,
965 NewCurrency = 1,
966 Money = 2,
967 Honor = 3
968};

◆ DrunkenState

Enumerator
DRUNKEN_SOBER 
DRUNKEN_TIPSY 
DRUNKEN_DRUNK 
DRUNKEN_SMASHED 

Definition at line 416 of file Player.h.

417{
418 DRUNKEN_SOBER = 0,
419 DRUNKEN_TIPSY = 1,
420 DRUNKEN_DRUNK = 2,
422};
@ DRUNKEN_TIPSY
Definition: Player.h:419
@ DRUNKEN_DRUNK
Definition: Player.h:420
@ DRUNKEN_SOBER
Definition: Player.h:418
@ DRUNKEN_SMASHED
Definition: Player.h:421

◆ 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.

356{
361};
@ DUEL_STATE_CHALLENGED
Definition: Player.h:357
@ DUEL_STATE_COUNTDOWN
Definition: Player.h:358
@ DUEL_STATE_COMPLETED
Definition: Player.h:360
@ DUEL_STATE_IN_PROGRESS
Definition: Player.h:359

◆ 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.

816{
818 DAMAGE_DROWNING = 1,
819 DAMAGE_FALL = 2,
820 DAMAGE_LAVA = 3,
821 DAMAGE_SLIME = 4,
822 DAMAGE_FIRE = 5,
823 DAMAGE_FALL_TO_VOID = 6 // custom case for fall without durability loss
824};
@ DAMAGE_SLIME
Definition: Player.h:821
@ DAMAGE_FALL
Definition: Player.h:819
@ DAMAGE_LAVA
Definition: Player.h:820
@ DAMAGE_FALL_TO_VOID
Definition: Player.h:823
@ DAMAGE_DROWNING
Definition: Player.h:818
@ DAMAGE_FIRE
Definition: Player.h:822
@ DAMAGE_EXHAUSTED
Definition: Player.h:817

◆ 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.

724{
741};
@ EQUIPABLE_SPELL_OFFENSIVE_SLOT3
Definition: Player.h:727
@ EQUIPABLE_SPELL_DEFENSIVE_SLOT1
Definition: Player.h:733
@ EQUIPABLE_SPELL_UTILITY_SLOT3
Definition: Player.h:731
@ EQUIPABLE_SPELL_OFFENSIVE_SLOT1
Definition: Player.h:725
@ EQUIPABLE_SPELL_WEAPON_SLOT3
Definition: Player.h:739
@ EQUIPABLE_SPELL_WEAPON_SLOT4
Definition: Player.h:740
@ EQUIPABLE_SPELL_WEAPON_SLOT1
Definition: Player.h:737
@ EQUIPABLE_SPELL_DEFENSIVE_SLOT4
Definition: Player.h:736
@ EQUIPABLE_SPELL_WEAPON_SLOT2
Definition: Player.h:738
@ EQUIPABLE_SPELL_UTILITY_SLOT2
Definition: Player.h:730
@ EQUIPABLE_SPELL_DEFENSIVE_SLOT3
Definition: Player.h:735
@ EQUIPABLE_SPELL_UTILITY_SLOT1
Definition: Player.h:729
@ EQUIPABLE_SPELL_OFFENSIVE_SLOT2
Definition: Player.h:726
@ EQUIPABLE_SPELL_DEFENSIVE_SLOT2
Definition: Player.h:734
@ EQUIPABLE_SPELL_OFFENSIVE_SLOT4
Definition: Player.h:728
@ EQUIPABLE_SPELL_UTILITY_SLOT4
Definition: Player.h:732

◆ 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.

629{
651};
@ EQUIPMENT_SLOT_SHOULDERS
Definition: Player.h:633
@ EQUIPMENT_SLOT_BODY
Definition: Player.h:634
@ EQUIPMENT_SLOT_HANDS
Definition: Player.h:640
@ EQUIPMENT_SLOT_FINGER1
Definition: Player.h:641
@ EQUIPMENT_SLOT_NECK
Definition: Player.h:632
@ EQUIPMENT_SLOT_FINGER2
Definition: Player.h:642
@ EQUIPMENT_SLOT_MAINHAND
Definition: Player.h:646
@ EQUIPMENT_SLOT_TABARD
Definition: Player.h:649
@ EQUIPMENT_SLOT_TRINKET1
Definition: Player.h:643
@ EQUIPMENT_SLOT_END
Definition: Player.h:650
@ EQUIPMENT_SLOT_HEAD
Definition: Player.h:631
@ EQUIPMENT_SLOT_LEGS
Definition: Player.h:637
@ EQUIPMENT_SLOT_BACK
Definition: Player.h:645
@ EQUIPMENT_SLOT_OFFHAND
Definition: Player.h:647
@ EQUIPMENT_SLOT_WAIST
Definition: Player.h:636
@ EQUIPMENT_SLOT_FEET
Definition: Player.h:638
@ EQUIPMENT_SLOT_CHEST
Definition: Player.h:635
@ EQUIPMENT_SLOT_WRISTS
Definition: Player.h:639
@ EQUIPMENT_SLOT_TRINKET2
Definition: Player.h:644
@ EQUIPMENT_SLOT_START
Definition: Player.h:630
@ EQUIPMENT_SLOT_RANGED
Definition: Player.h:648

◆ 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.

778{
779 RAID_INSTANCE_WARNING_HOURS = 1, // WARNING! %s is scheduled to reset in %d hour(s).
780 RAID_INSTANCE_WARNING_MIN = 2, // WARNING! %s is scheduled to reset in %d minute(s)!
781 RAID_INSTANCE_WARNING_MIN_SOON = 3, // WARNING! %s is scheduled to reset in %d minute(s). Please exit the zone or you will be returned to your bind location!
782 RAID_INSTANCE_WELCOME = 4, // Welcome to %s. This raid instance is scheduled to reset in %s.
784};
@ RAID_INSTANCE_WARNING_MIN
Definition: Player.h:780
@ RAID_INSTANCE_EXPIRED
Definition: Player.h:783
@ RAID_INSTANCE_WARNING_MIN_SOON
Definition: Player.h:781
@ RAID_INSTANCE_WARNING_HOURS
Definition: Player.h:779
@ RAID_INSTANCE_WELCOME
Definition: Player.h:782

◆ InventoryPackSlots

Enumerator
INVENTORY_SLOT_ITEM_START 
INVENTORY_SLOT_ITEM_END 

Definition at line 685 of file Player.h.

686{
689};
@ INVENTORY_SLOT_ITEM_START
Definition: Player.h:687
@ INVENTORY_SLOT_ITEM_END
Definition: Player.h:688

◆ InventorySlots

Enumerator
INVENTORY_SLOT_BAG_START 
INVENTORY_SLOT_BAG_END 

Definition at line 673 of file Player.h.

674{
677};
@ INVENTORY_SLOT_BAG_START
Definition: Player.h:675
@ INVENTORY_SLOT_BAG_END
Definition: Player.h:676

◆ 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.

507{
508 FATIGUE_TIMER = 0,
509 BREATH_TIMER = 1,
510 FIRE_TIMER = 2 // feign death
511};
@ FIRE_TIMER
Definition: Player.h:510
@ FATIGUE_TIMER
Definition: Player.h:508
@ BREATH_TIMER
Definition: Player.h:509

◆ NewWorldReason

Enumerator
NEW_WORLD_NORMAL 
NEW_WORLD_SEAMLESS 

Definition at line 771 of file Player.h.

772{
773 NEW_WORLD_NORMAL = 16, // Normal map change
774 NEW_WORLD_SEAMLESS = 21, // Teleport to another map without a loading screen, used for outdoor scenarios
775};
@ NEW_WORLD_NORMAL
Definition: Player.h:773
@ NEW_WORLD_SEAMLESS
Definition: Player.h:774

◆ PlayedTimeIndex

Enumerator
PLAYED_TIME_TOTAL 
PLAYED_TIME_LEVEL 

Definition at line 826 of file Player.h.

827{
830};
@ PLAYED_TIME_TOTAL
Definition: Player.h:828
@ PLAYED_TIME_LEVEL
Definition: Player.h:829

◆ PlayerCommandStates

Enumerator
CHEAT_NONE 
CHEAT_GOD 
CHEAT_CASTTIME 
CHEAT_COOLDOWN 
CHEAT_POWER 
CHEAT_WATERWALK 

Definition at line 946 of file Player.h.

947{
948 CHEAT_NONE = 0x00,
949 CHEAT_GOD = 0x01,
950 CHEAT_CASTTIME = 0x02,
951 CHEAT_COOLDOWN = 0x04,
952 CHEAT_POWER = 0x08,
953 CHEAT_WATERWALK = 0x10
954};
@ CHEAT_COOLDOWN
Definition: Player.h:951
@ CHEAT_POWER
Definition: Player.h:952
@ CHEAT_GOD
Definition: Player.h:949
@ CHEAT_NONE
Definition: Player.h:948
@ CHEAT_WATERWALK
Definition: Player.h:953
@ CHEAT_CASTTIME
Definition: Player.h:950

◆ PlayerCurrencyState

Enumerator
PLAYERCURRENCY_UNCHANGED 
PLAYERCURRENCY_CHANGED 
PLAYERCURRENCY_NEW 
PLAYERCURRENCY_REMOVED 

Definition at line 255 of file Player.h.

256{
260 PLAYERCURRENCY_REMOVED = 3 //not removed just set count == 0
261};
@ PLAYERCURRENCY_CHANGED
Definition: Player.h:258
@ PLAYERCURRENCY_UNCHANGED
Definition: Player.h:257
@ PLAYERCURRENCY_NEW
Definition: Player.h:259
@ PLAYERCURRENCY_REMOVED
Definition: Player.h:260

◆ 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.

147{
148 PLAYER_EXPLORED_ZONES_BITS = UF::size_of_value_type<decltype(UF::ActivePlayerData::DataFlags)::value_type>() * 8,
149
153};
@ PLAYER_DATA_FLAG_ACCOUNT_INDEX
Definition: Player.h:152
@ PLAYER_EXPLORED_ZONES_BITS
Definition: Player.h:148
@ PLAYER_DATA_FLAG_EXPLORED_ZONES_INDEX
Definition: Player.h:150
@ PLAYER_DATA_FLAG_CHARACTER_INDEX
Definition: Player.h:151

◆ 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.

904{
905 DELAYED_SAVE_PLAYER = 0x01,
912};
@ DELAYED_BG_GROUP_RESTORE
Flag to restore group state after teleport from BG.
Definition: Player.h:910
@ DELAYED_END
Definition: Player.h:911
@ DELAYED_SAVE_PLAYER
Definition: Player.h:905
@ DELAYED_BG_MOUNT_RESTORE
Flag to restore mount state after teleport from BG.
Definition: Player.h:908
@ DELAYED_BG_TAXI_RESTORE
Flag to restore taxi state after teleport from BG.
Definition: Player.h:909
@ DELAYED_SPELL_CAST_DESERTER
Definition: Player.h:907
@ DELAYED_RESURRECT_PLAYER
Definition: Player.h:906

◆ 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.

517{
518 // gm abilities
519 PLAYER_EXTRA_GM_ON = 0x0001,
521 PLAYER_EXTRA_TAXICHEAT = 0x0008,
523 PLAYER_EXTRA_GM_CHAT = 0x0020, // Show GM badge in chat messages
524
525 // other states
526 PLAYER_EXTRA_PVP_DEATH = 0x0100, // store PvP death status until corpse creating.
527
528 // Character services markers
532};
@ PLAYER_EXTRA_GM_ON
Definition: Player.h:519
@ PLAYER_EXTRA_LEVEL_BOOSTED
Definition: Player.h:531
@ PLAYER_EXTRA_ACCEPT_WHISPERS
Definition: Player.h:520
@ PLAYER_EXTRA_GM_INVISIBLE
Definition: Player.h:522
@ PLAYER_EXTRA_TAXICHEAT
Definition: Player.h:521
@ PLAYER_EXTRA_GRANTED_LEVELS_FROM_RAF
Definition: Player.h:530
@ PLAYER_EXTRA_PVP_DEATH
Definition: Player.h:526
@ PLAYER_EXTRA_HAS_RACE_CHANGED
Definition: Player.h:529
@ PLAYER_EXTRA_GM_CHAT
Definition: Player.h:523

◆ PlayerFieldByte2Flags

Enumerator
PLAYER_FIELD_BYTE2_NONE 
PLAYER_FIELD_BYTE2_STEALTH 
PLAYER_FIELD_BYTE2_INVISIBILITY_GLOW 

Definition at line 499 of file Player.h.

500{
504};
@ PLAYER_FIELD_BYTE2_STEALTH
Definition: Player.h:502
@ PLAYER_FIELD_BYTE2_INVISIBILITY_GLOW
Definition: Player.h:503
@ PLAYER_FIELD_BYTE2_NONE
Definition: Player.h:501

◆ 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.

427{
428 PLAYER_FLAGS_GROUP_LEADER = 0x00000001,
429 PLAYER_FLAGS_AFK = 0x00000002,
430 PLAYER_FLAGS_DND = 0x00000004,
431 PLAYER_FLAGS_GM = 0x00000008,
432 PLAYER_FLAGS_GHOST = 0x00000010,
433 PLAYER_FLAGS_RESTING = 0x00000020,
434 PLAYER_FLAGS_VOICE_CHAT = 0x00000040,
435 PLAYER_FLAGS_UNK7 = 0x00000080, // pre-3.0.3 PLAYER_FLAGS_FFA_PVP flag for FFA PVP state
436 PLAYER_FLAGS_CONTESTED_PVP = 0x00000100, // Player has been involved in a PvP combat and will be attacked by contested guards
437 PLAYER_FLAGS_IN_PVP = 0x00000200,
438 PLAYER_FLAGS_WAR_MODE_ACTIVE = 0x00000400,
440 PLAYER_FLAGS_PLAYED_LONG_TIME = 0x00001000, // played long time
441 PLAYER_FLAGS_PLAYED_TOO_LONG = 0x00002000, // played too long time
443 PLAYER_FLAGS_DEVELOPER = 0x00008000, // <Dev> prefix for something?
444 PLAYER_FLAGS_LOW_LEVEL_RAID_ENABLED = 0x00010000, // pre-3.0.3 PLAYER_FLAGS_SANCTUARY flag for player entered sanctuary
445 PLAYER_FLAGS_TAXI_BENCHMARK = 0x00020000, // taxi benchmark mode (on/off) (2.0.1)
446 PLAYER_FLAGS_PVP_TIMER = 0x00040000, // 3.0.2, pvp timer active (after you disable pvp manually)
447 PLAYER_FLAGS_UBER = 0x00080000,
448 PLAYER_FLAGS_UNK20 = 0x00100000,
449 PLAYER_FLAGS_UNK21 = 0x00200000,
450 PLAYER_FLAGS_COMMENTATOR2 = 0x00400000,
451 PLAYER_FLAGS_HIDE_ACCOUNT_ACHIEVEMENTS = 0x00800000, // do not send account achievments in inspect packets
452 PLAYER_FLAGS_PET_BATTLES_UNLOCKED = 0x01000000, // enables pet battles
453 PLAYER_FLAGS_NO_XP_GAIN = 0x02000000,
454 PLAYER_FLAGS_UNK26 = 0x04000000,
455 PLAYER_FLAGS_AUTO_DECLINE_GUILD = 0x08000000, // Automatically declines guild invites
456 PLAYER_FLAGS_GUILD_LEVEL_ENABLED = 0x10000000, // Lua_GetGuildLevelEnabled() - enables guild leveling related UI
457 PLAYER_FLAGS_VOID_UNLOCKED = 0x20000000, // void storage
458 PLAYER_FLAGS_TIMEWALKING = 0x40000000,
460};
@ PLAYER_FLAGS_WAR_MODE_ACTIVE
Definition: Player.h:438
@ PLAYER_FLAGS_DND
Definition: Player.h:430
@ PLAYER_FLAGS_AUTO_DECLINE_GUILD
Definition: Player.h:455
@ PLAYER_FLAGS_HIDE_ACCOUNT_ACHIEVEMENTS
Definition: Player.h:451
@ PLAYER_FLAGS_VOID_UNLOCKED
Definition: Player.h:457
@ PLAYER_FLAGS_IN_PVP
Definition: Player.h:437
@ PLAYER_FLAGS_PLAYED_LONG_TIME
Definition: Player.h:440
@ PLAYER_FLAGS_CONTESTED_PVP
Definition: Player.h:436
@ PLAYER_FLAGS_NO_XP_GAIN
Definition: Player.h:453
@ PLAYER_FLAGS_UNK26
Definition: Player.h:454
@ PLAYER_FLAGS_GUILD_LEVEL_ENABLED
Definition: Player.h:456
@ PLAYER_FLAGS_GROUP_LEADER
Definition: Player.h:428
@ PLAYER_FLAGS_RESTING
Definition: Player.h:433
@ PLAYER_FLAGS_IS_OUT_OF_BOUNDS
Definition: Player.h:442
@ PLAYER_FLAGS_VOICE_CHAT
Definition: Player.h:434
@ PLAYER_FLAGS_WAR_MODE_DESIRED
Definition: Player.h:439
@ PLAYER_FLAGS_GHOST
Definition: Player.h:432
@ PLAYER_FLAGS_AFK
Definition: Player.h:429
@ PLAYER_FLAGS_UNK20
Definition: Player.h:448
@ PLAYER_FLAGS_GM
Definition: Player.h:431
@ PLAYER_FLAGS_TAXI_BENCHMARK
Definition: Player.h:445
@ PLAYER_FLAGS_LOW_LEVEL_RAID_ENABLED
Definition: Player.h:444
@ PLAYER_FLAGS_COMMENTATOR2
Definition: Player.h:450
@ PLAYER_FLAGS_TIMEWALKING
Definition: Player.h:458
@ PLAYER_FLAGS_UNK21
Definition: Player.h:449
@ PLAYER_FLAGS_UNK7
Definition: Player.h:435
@ PLAYER_FLAGS_DEVELOPER
Definition: Player.h:443
@ PLAYER_FLAGS_COMMENTATOR_CAMERA
Definition: Player.h:459
@ PLAYER_FLAGS_PET_BATTLES_UNLOCKED
Definition: Player.h:452
@ PLAYER_FLAGS_PVP_TIMER
Definition: Player.h:446
@ PLAYER_FLAGS_UBER
Definition: Player.h:447
@ PLAYER_FLAGS_PLAYED_TOO_LONG
Definition: Player.h:441

◆ 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.

465{
469 PLAYER_FLAGS_EX_IN_PVP_COMBAT = 0x0040, // Forbids /follow
470 PLAYER_FLAGS_EX_MENTOR = 0x0080,
473};
@ PLAYER_FLAGS_EX_IN_PVP_COMBAT
Definition: Player.h:469
@ PLAYER_FLAGS_EX_ARTIFACT_FORGE_CHEAT
Definition: Player.h:468
@ PLAYER_FLAGS_EX_MENTOR
Definition: Player.h:470
@ PLAYER_FLAGS_EX_REAGENT_BANK_UNLOCKED
Definition: Player.h:466
@ PLAYER_FLAGS_EX_UNLOCKED_AOE_LOOT
Definition: Player.h:472
@ PLAYER_FLAGS_EX_NEWCOMER
Definition: Player.h:471
@ PLAYER_FLAGS_EX_MERCENARY_MODE
Definition: Player.h:467

◆ 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.

478{
479 PLAYER_LOCAL_FLAG_CONTROLLING_PET = 0x00000001, // Displays "You have an active summon already" when trying to tame new pet
481 PLAYER_LOCAL_FLAG_RELEASE_TIMER = 0x00000008, // Display time till auto release spirit
482 PLAYER_LOCAL_FLAG_NO_RELEASE_WINDOW = 0x00000010, // Display no "release spirit" window at all
483 PLAYER_LOCAL_FLAG_NO_PET_BAR = 0x00000020, // CGPetInfo::IsPetBarUsed
489 PLAYER_LOCAL_FLAG_WAR_MODE = 0x00000800,
490 PLAYER_LOCAL_FLAG_ACCOUNT_SECURED = 0x00001000, // Script_IsAccountSecured
494};
@ PLAYER_LOCAL_FLAG_CAN_USE_OBJECTS_MOUNTED
Definition: Player.h:487
@ PLAYER_LOCAL_FLAG_USING_PARTY_GARRISON
Definition: Player.h:486
@ PLAYER_LOCAL_FLAG_TRACK_STEALTHED
Definition: Player.h:480
@ PLAYER_LOCAL_FLAG_WEEKLY_REWARD_AVAILABLE
Definition: Player.h:493
@ PLAYER_LOCAL_FLAG_NO_PET_BAR
Definition: Player.h:483
@ PLAYER_LOCAL_FLAG_WAR_MODE
Definition: Player.h:489
@ PLAYER_LOCAL_FLAG_ACCOUNT_SECURED
Definition: Player.h:490
@ PLAYER_LOCAL_FLAG_RELEASE_TIMER
Definition: Player.h:481
@ PLAYER_LOCAL_FLAG_NO_RELEASE_WINDOW
Definition: Player.h:482
@ PLAYER_LOCAL_FLAG_CONTROLLING_PET
Definition: Player.h:479
@ PLAYER_LOCAL_FLAG_MENTOR_RESTRICTED
Definition: Player.h:492
@ PLAYER_LOCAL_FLAG_NEWLY_BOOSTED_CHARACTER
Definition: Player.h:485
@ PLAYER_LOCAL_FLAG_OVERRIDE_TRANSPORT_SERVER_TIME
Definition: Player.h:491
@ PLAYER_LOCAL_FLAG_CAN_VISIT_PARTY_GARRISON
Definition: Player.h:488
@ PLAYER_LOCAL_FLAG_OVERRIDE_CAMERA_MIN_HEIGHT
Definition: Player.h:484

◆ 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.

836{
901};
@ PLAYER_LOGIN_QUERY_LOAD_SPELL_COOLDOWNS
Definition: Player.h:866
@ PLAYER_LOGIN_QUERY_LOAD_CUSTOMIZATIONS
Definition: Player.h:838
@ PLAYER_LOGIN_QUERY_LOAD_CURRENCY
Definition: Player.h:889
@ PLAYER_LOGIN_QUERY_LOAD_GLYPHS
Definition: Player.h:876
@ PLAYER_LOGIN_QUERY_LOAD_DECLINED_NAMES
Definition: Player.h:868
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_REW
Definition: Player.h:884
@ MAX_PLAYER_LOGIN_QUERY
Definition: Player.h:900
@ PLAYER_LOGIN_QUERY_LOAD_DAILY_QUEST_STATUS
Definition: Player.h:849
@ PLAYER_LOGIN_QUERY_LOAD_AURA_EFFECTS
Definition: Player.h:841
@ PLAYER_LOGIN_QUERY_LOAD_INSTANCE_LOCK_TIMES
Definition: Player.h:885
@ PLAYER_LOGIN_QUERY_LOAD_SEASONAL_QUEST_STATUS
Definition: Player.h:886
@ PLAYER_LOGIN_QUERY_LOAD_SOCIAL_LIST
Definition: Player.h:864
@ PLAYER_LOGIN_QUERY_LOAD_GARRISON_FOLLOWERS
Definition: Player.h:896
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_OBJECTIVES_CRITERIA
Definition: Player.h:847
@ PLAYER_LOGIN_QUERY_LOAD_TRAIT_CONFIGS
Definition: Player.h:899
@ PLAYER_LOGIN_QUERY_LOAD_SKILLS
Definition: Player.h:880
@ PLAYER_LOGIN_QUERY_LOAD_BG_DATA
Definition: Player.h:875
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_OBJECTIVES_CRITERIA_PROGRESS
Definition: Player.h:848
@ PLAYER_LOGIN_QUERY_LOAD_TRANSMOG_OUTFITS
Definition: Player.h:874
@ PLAYER_LOGIN_QUERY_LOAD_GARRISON_FOLLOWER_ABILITIES
Definition: Player.h:897
@ PLAYER_LOGIN_QUERY_LOAD_ACCOUNT_DATA
Definition: Player.h:879
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS
Definition: Player.h:858
@ PLAYER_LOGIN_QUERY_LOAD_VOID_STORAGE
Definition: Player.h:888
@ PLAYER_LOGIN_QUERY_LOAD_PET_SLOTS
Definition: Player.h:892
@ PLAYER_LOGIN_QUERY_LOAD_ARTIFACTS
Definition: Player.h:852
@ PLAYER_LOGIN_QUERY_LOAD_INVENTORY
Definition: Player.h:851
@ PLAYER_LOGIN_QUERY_LOAD_REPUTATION
Definition: Player.h:850
@ PLAYER_LOGIN_QUERY_LOAD_AZERITE_MILESTONE_POWERS
Definition: Player.h:854
@ PLAYER_LOGIN_QUERY_LOAD_GARRISON_BLUEPRINTS
Definition: Player.h:894
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE
Definition: Player.h:860
@ PLAYER_LOGIN_QUERY_LOAD_FROM
Definition: Player.h:837
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS
Definition: Player.h:845
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_OBJECTIVES
Definition: Player.h:846
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE_UNLOCKED_ESSENCE
Definition: Player.h:862
@ PLAYER_LOGIN_QUERY_LOAD_GARRISON_BUILDINGS
Definition: Player.h:895
@ PLAYER_LOGIN_QUERY_LOAD_WEEKLY_QUEST_STATUS
Definition: Player.h:881
@ PLAYER_LOGIN_QUERY_LOAD_SPELL_CHARGES
Definition: Player.h:867
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE_MILESTONE_POWER
Definition: Player.h:861
@ PLAYER_LOGIN_QUERY_LOAD_AZERITE
Definition: Player.h:853
@ PLAYER_LOGIN_QUERY_LOAD_MONTHLY_QUEST_STATUS
Definition: Player.h:887
@ PLAYER_LOGIN_QUERY_LOAD_GUILD
Definition: Player.h:869
@ PLAYER_LOGIN_QUERY_LOAD_EQUIPMENT_SETS
Definition: Player.h:873
@ PLAYER_LOGIN_QUERY_LOAD_MAILS
Definition: Player.h:857
@ PLAYER_LOGIN_QUERY_LOAD_AURAS
Definition: Player.h:840
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_AZERITE_EMPOWERED
Definition: Player.h:863
@ PLAYER_LOGIN_QUERY_LOAD_TALENTS
Definition: Player.h:877
@ PLAYER_LOGIN_QUERY_LOAD_AZERITE_UNLOCKED_ESSENCES
Definition: Player.h:855
@ PLAYER_LOGIN_QUERY_LOAD_GARRISON
Definition: Player.h:893
@ PLAYER_LOGIN_QUERY_LOAD_BANNED
Definition: Player.h:883
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_ITEMS_ARTIFACT
Definition: Player.h:859
@ PLAYER_LOGIN_QUERY_LOAD_ARENA_INFO
Definition: Player.h:870
@ PLAYER_LOGIN_QUERY_LOAD_GROUP
Definition: Player.h:839
@ PLAYER_LOGIN_QUERY_LOAD_CRITERIA_PROGRESS
Definition: Player.h:872
@ PLAYER_LOGIN_QUERY_LOAD_HOME_BIND
Definition: Player.h:865
@ PLAYER_LOGIN_QUERY_LOAD_CORPSE_LOCATION
Definition: Player.h:891
@ PLAYER_LOGIN_QUERY_LOAD_SPELLS
Definition: Player.h:843
@ PLAYER_LOGIN_QUERY_LOAD_SPELL_FAVORITES
Definition: Player.h:844
@ PLAYER_LOGIN_QUERY_LOAD_TRAIT_ENTRIES
Definition: Player.h:898
@ PLAYER_LOGIN_QUERY_LOAD_AZERITE_EMPOWERED
Definition: Player.h:856
@ PLAYER_LOGIN_QUERY_LOAD_PVP_TALENTS
Definition: Player.h:878
@ PLAYER_LOGIN_QUERY_LOAD_CUF_PROFILES
Definition: Player.h:890
@ PLAYER_LOGIN_QUERY_LOAD_RANDOM_BG
Definition: Player.h:882
@ PLAYER_LOGIN_QUERY_LOAD_AURA_STORED_LOCATIONS
Definition: Player.h:842
@ PLAYER_LOGIN_QUERY_LOAD_ACHIEVEMENTS
Definition: Player.h:871

◆ PlayerLogXPReason

Enumerator
LOG_XP_REASON_KILL 
LOG_XP_REASON_NO_KILL 

Definition at line 956 of file Player.h.

957{
960};
@ LOG_XP_REASON_NO_KILL
Definition: Player.h:959
@ LOG_XP_REASON_KILL
Definition: Player.h:958

◆ PlayerQuestCompletedConstants

Enumerator
QUESTS_COMPLETED_BITS_SIZE 
QUESTS_COMPLETED_BITS_PER_BLOCK 

Definition at line 572 of file Player.h.

573{
574 QUESTS_COMPLETED_BITS_SIZE = UF::size<decltype(UF::ActivePlayerData::QuestCompleted)>(),
575 QUESTS_COMPLETED_BITS_PER_BLOCK = UF::size_of_value_type<decltype(UF::ActivePlayerData::QuestCompleted)>() * 8
576};
@ QUESTS_COMPLETED_BITS_SIZE
Definition: Player.h:574
@ QUESTS_COMPLETED_BITS_PER_BLOCK
Definition: Player.h:575

◆ PlayerQuestLogConstants

Enumerator
MAX_QUEST_COUNTS 

Definition at line 578 of file Player.h.

579{
580 MAX_QUEST_COUNTS = UF::size<decltype(UF::QuestLog::ObjectiveProgress)>()
581};
@ MAX_QUEST_COUNTS
Definition: Player.h:580

◆ PlayerSkillsConstants

Enumerator
PLAYER_MAX_SKILLS 

Definition at line 141 of file Player.h.

142{
143 PLAYER_MAX_SKILLS = UF::size<decltype(UF::SkillInfo::SkillLineID)>()
144};
@ PLAYER_MAX_SKILLS
Definition: Player.h:143

◆ PlayerSlots

Enumerator
PLAYER_SLOT_START 
PLAYER_SLOT_END 
PLAYER_SLOTS_COUNT 

Definition at line 614 of file Player.h.

615{
616 // first slot for item stored (in any way in player m_items data)
618 // last+1 slot for item stored (in any way in player m_items data)
619 PLAYER_SLOT_END = 227,
621};
@ PLAYER_SLOTS_COUNT
Definition: Player.h:620
@ PLAYER_SLOT_START
Definition: Player.h:617
@ PLAYER_SLOT_END
Definition: Player.h:619

◆ PlayerSpellState

Enumerator
PLAYERSPELL_UNCHANGED 
PLAYERSPELL_CHANGED 
PLAYERSPELL_NEW 
PLAYERSPELL_REMOVED 
PLAYERSPELL_TEMPORARY 

Definition at line 184 of file Player.h.

185{
188 PLAYERSPELL_NEW = 2,
191};
@ PLAYERSPELL_REMOVED
Definition: Player.h:189
@ PLAYERSPELL_UNCHANGED
Definition: Player.h:186
@ PLAYERSPELL_CHANGED
Definition: Player.h:187
@ PLAYERSPELL_NEW
Definition: Player.h:188
@ PLAYERSPELL_TEMPORARY
Definition: Player.h:190

◆ PlayerUnderwaterState

Enumerator
UNDERWATER_NONE 
UNDERWATER_INWATER 
UNDERWATER_INLAVA 
UNDERWATER_INSLIME 
UNDERWATER_INDARKWATER 
UNDERWATER_EXIST_TIMERS 

Definition at line 165 of file Player.h.

166{
167 UNDERWATER_NONE = 0x00,
168 UNDERWATER_INWATER = 0x01, // terrain type is water and player is afflicted by it
169 UNDERWATER_INLAVA = 0x02, // terrain type is lava and player is afflicted by it
170 UNDERWATER_INSLIME = 0x04, // terrain type is lava and player is afflicted by it
171 UNDERWATER_INDARKWATER = 0x08, // terrain type is dark water and player is afflicted by it
172
174};
@ UNDERWATER_INDARKWATER
Definition: Player.h:171
@ UNDERWATER_NONE
Definition: Player.h:167
@ UNDERWATER_INSLIME
Definition: Player.h:170
@ UNDERWATER_EXIST_TIMERS
Definition: Player.h:173
@ UNDERWATER_INWATER
Definition: Player.h:168
@ UNDERWATER_INLAVA
Definition: Player.h:169

◆ 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.

654{
666
669
671};
@ PROFESSION_SLOT_MAX_COUNT
Definition: Player.h:670
@ PROFESSION_SLOT_FISHING_TOOL
Definition: Player.h:663
@ PROFESSION_SLOT_PROFESSION2_GEAR1
Definition: Player.h:659
@ PROFESSION_SLOT_FISHING_GEAR2
Definition: Player.h:665
@ PROFESSION_SLOT_PROFESSION1_GEAR1
Definition: Player.h:656
@ PROFESSION_SLOT_PROFESSION2_TOOL
Definition: Player.h:658
@ PROFESSION_SLOT_PROFESSION1_TOOL
Definition: Player.h:655
@ PROFESSION_SLOT_PROFESSION2_GEAR2
Definition: Player.h:660
@ PROFESSION_SLOT_START
Definition: Player.h:668
@ PROFESSION_SLOT_FISHING_GEAR1
Definition: Player.h:664
@ PROFESSION_SLOT_COOKING_GEAR1
Definition: Player.h:662
@ PROFESSION_SLOT_COOKING_TOOL
Definition: Player.h:661
@ PROFESSION_SLOT_END
Definition: Player.h:667
@ PROFESSION_SLOT_PROFESSION1_GEAR2
Definition: Player.h:657

◆ QuestSaveType

Enumerator
QUEST_DEFAULT_SAVE_TYPE 
QUEST_DELETE_SAVE_TYPE 
QUEST_FORCE_DELETE_SAVE_TYPE 

Definition at line 561 of file Player.h.

562{
566};
@ QUEST_DELETE_SAVE_TYPE
Definition: Player.h:564
@ QUEST_FORCE_DELETE_SAVE_TYPE
Definition: Player.h:565
@ QUEST_DEFAULT_SAVE_TYPE
Definition: Player.h:563

◆ QuestSlotStateMask

Enumerator
QUEST_STATE_NONE 
QUEST_STATE_COMPLETE 
QUEST_STATE_FAIL 

Definition at line 583 of file Player.h.

584{
585 QUEST_STATE_NONE = 0x0000,
586 QUEST_STATE_COMPLETE = 0x0001,
587 QUEST_STATE_FAIL = 0x0002
588};
@ QUEST_STATE_COMPLETE
Definition: Player.h:586
@ QUEST_STATE_FAIL
Definition: Player.h:587
@ QUEST_STATE_NONE
Definition: Player.h:585

◆ ReagentBagSlots

Enumerator
REAGENT_BAG_SLOT_START 
REAGENT_BAG_SLOT_END 

Definition at line 679 of file Player.h.

680{
683};
@ REAGENT_BAG_SLOT_END
Definition: Player.h:682
@ REAGENT_BAG_SLOT_START
Definition: Player.h:681

◆ ReagentSlots

Enumerator
REAGENT_SLOT_START 
REAGENT_SLOT_END 

Definition at line 710 of file Player.h.

711{
712 REAGENT_SLOT_START = 110,
713 REAGENT_SLOT_END = 208,
714};
@ REAGENT_SLOT_START
Definition: Player.h:712
@ REAGENT_SLOT_END
Definition: Player.h:713

◆ 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.

927{
944};
@ ERR_REFER_A_FRIEND_TARGET_TOO_HIGH
Definition: Player.h:930
@ ERR_REFER_A_FRIEND_SUMMON_OFFLINE_S
Definition: Player.h:941
@ ERR_REFER_A_FRIEND_DIFFERENT_FACTION
Definition: Player.h:933
@ ERR_REFER_A_FRIEND_NONE
Definition: Player.h:928
@ ERR_REFER_A_FRIEND_NO_TARGET
Definition: Player.h:936
@ ERR_REFER_A_FRIEND_NOT_NOW
Definition: Player.h:934
@ ERR_REFER_A_FRIEND_INSUF_EXPAN_LVL
Definition: Player.h:940
@ ERR_REFER_A_FRIEND_INSUFFICIENT_GRANTABLE_LEVELS
Definition: Player.h:931
@ ERR_REFER_A_FRIEND_NOT_REFERRED_BY
Definition: Player.h:929
@ ERR_REFER_A_FRIEND_TOO_FAR
Definition: Player.h:932
@ ERR_REFER_A_FRIEND_SUMMON_LEVEL_MAX_I
Definition: Player.h:938
@ ERR_REFER_A_FRIEND_NOT_IN_GROUP
Definition: Player.h:937
@ ERR_REFER_A_FRIEND_MAP_INCOMING_TRANSFER_NOT_ALLOWED
Definition: Player.h:943
@ ERR_REFER_A_FRIEND_GRANT_LEVEL_MAX_I
Definition: Player.h:935
@ ERR_REFER_A_FRIEND_SUMMON_COOLDOWN
Definition: Player.h:939
@ ERR_REFER_A_FRIEND_NO_XREALM
Definition: Player.h:942

◆ 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.

304{
312};
@ REPUTATION_SOURCE_KILL
Definition: Player.h:305
@ REPUTATION_SOURCE_SPELL
Definition: Player.h:311
@ REPUTATION_SOURCE_QUEST
Definition: Player.h:306
@ REPUTATION_SOURCE_MONTHLY_QUEST
Definition: Player.h:309
@ REPUTATION_SOURCE_REPEATABLE_QUEST
Definition: Player.h:310
@ REPUTATION_SOURCE_WEEKLY_QUEST
Definition: Player.h:308
@ REPUTATION_SOURCE_DAILY_QUEST
Definition: Player.h:307

◆ RuneCooldowns

Enumerator
RUNE_BASE_COOLDOWN 
RUNE_MISS_COOLDOWN 

Definition at line 387 of file Player.h.

388{
389 RUNE_BASE_COOLDOWN = 10000,
390 RUNE_MISS_COOLDOWN = 1500 // cooldown applied on runes when the spell misses
391};
@ RUNE_MISS_COOLDOWN
Definition: Player.h:390
@ RUNE_BASE_COOLDOWN
Definition: Player.h:389

◆ SkillUpdateState

Enumerator
SKILL_UNCHANGED 
SKILL_CHANGED 
SKILL_NEW 
SKILL_DELETED 

Definition at line 590 of file Player.h.

591{
592 SKILL_UNCHANGED = 0,
593 SKILL_CHANGED = 1,
594 SKILL_NEW = 2,
595 SKILL_DELETED = 3
596};
@ SKILL_DELETED
Definition: Player.h:595
@ SKILL_CHANGED
Definition: Player.h:593
@ SKILL_UNCHANGED
Definition: Player.h:592
@ SKILL_NEW
Definition: Player.h:594

◆ SpecResetType

Enumerator
SPEC_RESET_TALENTS 
SPEC_RESET_SPECIALIZATION 
SPEC_RESET_GLYPHS 
SPEC_RESET_PET_TALENTS 

Definition at line 215 of file Player.h.

216{
221};
@ SPEC_RESET_GLYPHS
Definition: Player.h:219
@ SPEC_RESET_TALENTS
Definition: Player.h:217
@ SPEC_RESET_SPECIALIZATION
Definition: Player.h:218
@ SPEC_RESET_PET_TALENTS
Definition: Player.h:220

◆ SpellModType

Enumerator
SPELLMOD_FLAT 
SPELLMOD_PCT 
SPELLMOD_LABEL_FLAT 
SPELLMOD_LABEL_PCT 
SPELLMOD_END 

Definition at line 155 of file Player.h.

156{
157 SPELLMOD_FLAT = 0, // SPELL_AURA_ADD_FLAT_MODIFIER
158 SPELLMOD_PCT = 1, // SPELL_AURA_ADD_PCT_MODIFIER
159 SPELLMOD_LABEL_FLAT = 2, // SPELL_AURA_ADD_FLAT_MODIFIER_BY_SPELL_LABEL
160 SPELLMOD_LABEL_PCT = 3, // SPELL_AURA_ADD_PCT_MODIFIER_BY_SPELL_LABEL
162};
@ SPELLMOD_LABEL_PCT
Definition: Player.h:160
@ SPELLMOD_FLAT
Definition: Player.h:157
@ SPELLMOD_PCT
Definition: Player.h:158
@ SPELLMOD_LABEL_FLAT
Definition: Player.h:159
@ SPELLMOD_END
Definition: Player.h:161

◆ 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.

1060{
1061 TALENT_LEARN_OK = 0,
1072};
@ TALENT_FAILED_UNKNOWN
Definition: Player.h:1062
@ TALENT_FAILED_AFFECTING_COMBAT
Definition: Player.h:1066
@ TALENT_FAILED_NOT_ENOUGH_TALENTS_IN_PRIMARY_TREE
Definition: Player.h:1063
@ TALENT_FAILED_NO_PRIMARY_TREE_SELECTED
Definition: Player.h:1064
@ TALENT_FAILED_CANT_DO_THAT_CHALLENGE_MODE_ACTIVE
Definition: Player.h:1068
@ TALENT_FAILED_REST_AREA
Definition: Player.h:1069
@ TALENT_LEARN_OK
Definition: Player.h:1061
@ TALENT_FAILED_UNSPENT_TALENT_POINTS
Definition: Player.h:1070
@ TALENT_FAILED_CANT_REMOVE_TALENT
Definition: Player.h:1067
@ TALENT_FAILED_IN_PVP_MATCH
Definition: Player.h:1071
@ TALENT_FAILED_CANT_DO_THAT_RIGHT_NOW
Definition: Player.h:1065

◆ 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.

800{
801 TELE_TO_NONE = 0x00,
802 TELE_TO_GM_MODE = 0x01,
806 TELE_TO_SPELL = 0x10,
807 TELE_TO_TRANSPORT_TELEPORT = 0x20, // 3.3.5 only
809 TELE_TO_SEAMLESS = 0x80
810};
@ TELE_TO_SEAMLESS
Definition: Player.h:809
@ TELE_TO_TRANSPORT_TELEPORT
Definition: Player.h:807
@ TELE_TO_SPELL
Definition: Player.h:806
@ TELE_TO_NOT_LEAVE_COMBAT
Definition: Player.h:804
@ TELE_TO_NOT_UNSUMMON_PET
Definition: Player.h:805
@ TELE_TO_GM_MODE
Definition: Player.h:802
@ TELE_REVIVE_AT_TELEPORT
Definition: Player.h:808
@ TELE_TO_NONE
Definition: Player.h:801
@ TELE_TO_NOT_LEAVE_TRANSPORT
Definition: Player.h:803

◆ ZonePVPTypeOverride

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

Definition at line 1099 of file Player.h.

1100{
1101 None = 0,
1102 Friendly = 1,
1103 Hostile = 2,
1104 Contested = 3,
1105 Combat = 4
1106};

Function Documentation

◆ AddItemsSetItem()

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

Definition at line 66 of file Item.cpp.

67{
68 ItemTemplate const* proto = item->GetTemplate();
69 uint32 setid = proto->GetItemSet();
70
71 ItemSetEntry const* set = sItemSetStore.LookupEntry(setid);
72
73 if (!set)
74 {
75 TC_LOG_ERROR("sql.sql", "Item set {} for item (id {}) not found, mods not applied.", setid, proto->GetId());
76 return;
77 }
78
79 if (set->RequiredSkill && player->GetSkillValue(set->RequiredSkill) < set->RequiredSkillRank)
80 return;
81
83 return;
84
85 // Check player level for heirlooms
86 if (sDB2Manager.GetHeirloomByItemId(item->GetEntry()))
87 {
88 if (item->GetBonus()->PlayerLevelToItemLevelCurveId)
89 {
90 uint32 maxLevel = sDB2Manager.GetCurveXAxisRange(item->GetBonus()->PlayerLevelToItemLevelCurveId).second;
91
92 if (Optional<ContentTuningLevels> contentTuning = sDB2Manager.GetContentTuningData(item->GetBonus()->ContentTuningId, player->m_playerData->CtrOptions->ContentTuningConditionMask, true))
93 maxLevel = std::min<uint32>(maxLevel, contentTuning->MaxLevel);
94
95 if (player->GetLevel() > maxLevel)
96 return;
97 }
98 }
99
100 ItemSetEffect* eff = nullptr;
101
102 for (size_t x = 0; x < player->ItemSetEff.size(); ++x)
103 {
104 if (player->ItemSetEff[x] && player->ItemSetEff[x]->ItemSetID == setid)
105 {
106 eff = player->ItemSetEff[x];
107 break;
108 }
109 }
110
111 if (!eff)
112 {
113 eff = new ItemSetEffect();
114 eff->ItemSetID = setid;
115
116 size_t x = 0;
117 for (; x < player->ItemSetEff.size(); ++x)
118 if (!player->ItemSetEff[x])
119 break;
120
121 if (x < player->ItemSetEff.size())
122 player->ItemSetEff[x] = eff;
123 else
124 player->ItemSetEff.push_back(eff);
125 }
126
127 eff->EquippedItems.insert(item);
128
129 if (std::vector<ItemSetSpellEntry const*> const* itemSetSpells = sDB2Manager.GetItemSetSpells(setid))
130 {
131 for (ItemSetSpellEntry const* itemSetSpell : *itemSetSpells)
132 {
133 //not enough for spell
134 if (itemSetSpell->Threshold > eff->EquippedItems.size())
135 continue;
136
137 if (eff->SetBonuses.count(itemSetSpell))
138 continue;
139
140 SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(itemSetSpell->SpellID, DIFFICULTY_NONE);
141 if (!spellInfo)
142 {
143 TC_LOG_ERROR("entities.player.items", "WORLD: unknown spell id {} in items set {} effects", itemSetSpell->SpellID, setid);
144 continue;
145 }
146
147 eff->SetBonuses.insert(itemSetSpell);
148 // spell cast only if fit form requirement, in other case will cast at form change
149 if (!itemSetSpell->ChrSpecID || ChrSpecialization(itemSetSpell->ChrSpecID) == player->GetPrimarySpecialization())
150 player->ApplyEquipSpell(spellInfo, nullptr, true);
151 }
152 }
153}
DB2Storage< ItemSetEntry > sItemSetStore("ItemSet.db2", &ItemSetLoadInfo::Instance)
#define sDB2Manager
Definition: DB2Stores.h:537
@ DIFFICULTY_NONE
Definition: DBCEnums.h:874
ChrSpecialization
Definition: DBCEnums.h:357
@ ITEM_SET_FLAG_LEGACY_INACTIVE
Definition: DBCEnums.h:1177
uint32_t uint32
Definition: Define.h:143
#define TC_LOG_ERROR(filterType__,...)
Definition: Log.h:165
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition: Optional.h:25
#define sSpellMgr
Definition: SpellMgr.h:849
ChrSpecialization GetPrimarySpecialization() const
Definition: Player.h:1842
UF::UpdateField< UF::PlayerData, 0, TYPEID_PLAYER > m_playerData
Definition: Player.h:2861
uint16 GetSkillValue(uint32 skill) const
Definition: Player.cpp:6046
std::vector< ItemSetEffect * > ItemSetEff
Definition: Player.h:2382
void ApplyEquipSpell(SpellInfo const *spellInfo, Item *item, bool apply, bool formChange=false)
Definition: Player.cpp:8333
uint8 GetLevel() const
Definition: Unit.h:741
std::unordered_set< ItemSetSpellEntry const * > SetBonuses
Definition: Item.h:45
std::unordered_set< Item const * > EquippedItems
Definition: Item.h:44
uint32 ItemSetID
Definition: Item.h:43
uint16 RequiredSkillRank
uint32 RequiredSkill
uint32 GetId() const
Definition: ItemTemplate.h:776
uint32 GetItemSet() const
Definition: ItemTemplate.h:811
+ 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.

304{
305 return bag->GetBagSize();
306}
+ 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.

309{
310 return bag->GetItemByPos(slot);
311}
+ 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 3244 of file Player.h.

3245{
3246 static_assert(std::is_same<typename Container::value_type, UF::ChrCustomizationChoice>::value,
3247 "MakeChrCustomizationChoiceRange must be used with containers of UF::ChrCustomizationChoice");
3248
3249 return { container.data(), container.data() + container.size() };
3250}
+ 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.

156{
157 uint32 setid = item->GetTemplate()->GetItemSet();
158
159 ItemSetEntry const* set = sItemSetStore.LookupEntry(setid);
160
161 if (!set)
162 {
163 TC_LOG_ERROR("sql.sql", "Item set #{} for item #{} not found, mods not removed.", setid, item->GetEntry());
164 return;
165 }
166
167 ItemSetEffect* eff = nullptr;
168 size_t setindex = 0;
169 for (; setindex < player->ItemSetEff.size(); setindex++)
170 {
171 if (player->ItemSetEff[setindex] && player->ItemSetEff[setindex]->ItemSetID == setid)
172 {
173 eff = player->ItemSetEff[setindex];
174 break;
175 }
176 }
177
178 // can be in case now enough skill requirement for set appling but set has been appliend when skill requirement not enough
179 if (!eff)
180 return;
181
182 eff->EquippedItems.erase(item);
183
184 if (std::vector<ItemSetSpellEntry const*> const* itemSetSpells = sDB2Manager.GetItemSetSpells(setid))
185 {
186 for (ItemSetSpellEntry const* itemSetSpell : *itemSetSpells)
187 {
188 // enough for spell
189 if (itemSetSpell->Threshold <= eff->EquippedItems.size())
190 continue;
191
192 if (!eff->SetBonuses.count(itemSetSpell))
193 continue;
194
195 player->ApplyEquipSpell(sSpellMgr->AssertSpellInfo(itemSetSpell->SpellID, DIFFICULTY_NONE), nullptr, false);
196 eff->SetBonuses.erase(itemSetSpell);
197 }
198 }
199
200 if (eff->EquippedItems.empty()) //all items of a set were removed
201 {
202 ASSERT(eff == player->ItemSetEff[setindex]);
203 delete eff;
204 player->ItemSetEff[setindex] = nullptr;
205 }
206}
#define ASSERT
Definition: Errors.h:68
+ 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 156 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.