Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
Player.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef SF_PLAYER_H
7#define SF_PLAYER_H
8
9#include "CinematicPathMgr.h"
10#include "DBCStores.h"
11#include "GroupReference.h"
12#include "MapReference.h"
13
14#include "Item.h"
15#include "ObjectMgr.h"
16#include "Opcodes.h"
17#include "PetDefines.h"
18#include "PlayerTaxi.h"
19#include "QuestDef.h"
20#include "SpellMgr.h"
21#include "Unit.h"
22#include "WorldSession.h"
23
24#include <string>
25#include <set>
26#include <vector>
27
28struct CreatureTemplate;
29struct Mail;
31struct TrainerSpell;
32struct VendorItem;
33
34template<class T> class AchievementMgr;
35class ReputationMgr;
36class Channel;
38class Creature;
39class DynamicObject;
40class Group;
41class Guild;
42class OutdoorPvP;
43class Pet;
44class PlayerMenu;
45class PlayerSocial;
47class UpdateMask;
48class BattlePetMgr;
50
51typedef std::deque<Mail*> PlayerMails;
52
53#define PLAYER_MAX_SKILLS 128
54#define PLAYER_MAX_DAILY_QUESTS 750
55#define PLAYER_EXPLORED_ZONES_SIZE 200
56
58{
60 uint32 unk; // default 1 (maybe)
61};
62
63// Note: SPELLMOD_* values is aura types in fact
65{
66 SPELLMOD_FLAT = 107, // SPELL_AURA_ADD_FLAT_MODIFIER
67 SPELLMOD_PCT = 108 // SPELL_AURA_ADD_PCT_MODIFIER
68};
69
70// 2^n values, Player::m_isunderwater is a bitmask. These are Skyfire internal values, they are never send to any client
72{
74 UNDERWATER_INWATER = 0x01, // terrain type is water and player is afflicted by it
75 UNDERWATER_INLAVA = 0x02, // terrain type is lava and player is afflicted by it
76 UNDERWATER_INSLIME = 0x04, // terrain type is lava and player is afflicted by it
77 UNDERWARER_INDARKWATER = 0x08, // terrain type is dark water and player is afflicted by it
78
80};
81
89
98
100{
102 bool active : 1; // show in spellbook
103 bool dependent : 1; // learned as result another spell learn, skill grow, quest reward, etc
104 bool disabled : 1; // first rank has been learned in result talent learn but currently talent unlearned, save max learned ranks
105};
106
112
114{
115 668, // Common
116 143368, // Pandaren, Common
117 108130 // Pandaren Alliance
118};
119
121{
122 669, // Orcish
123 143369, // Pandaren, Orcish.
124 108131 // Pandaren Horde
125};
126
127#define PANDAREN_FACTION_LANGUAGE_COUNT 3
128
165
166// Spell modifier (used for modify other spells)
179
187
197
200typedef std::list<SpellModifier*> SpellModList;
202
203typedef std::list<uint64> WhisperListContainer;
204
206#define MAX_CUF_PROFILES 5
207
243
246{
247 CUFProfile() : ProfileName(), BoolOptions() // might want to change default value for options
248 {
249 FrameHeight = 0;
250 FrameWidth = 0;
251 SortBy = 0;
252 HealthText = 0;
253 Unk146 = 0;
254 Unk147 = 0;
255 Unk148 = 0;
256 Unk150 = 0;
257 Unk152 = 0;
258 Unk154 = 0;
259 }
260
261 CUFProfile(const std::string& name, uint16 frameHeight, uint16 frameWidth, uint8 sortBy, uint8 healthText, uint32 boolOptions,
262 uint8 unk146, uint8 unk147, uint8 unk148, uint16 unk150, uint16 unk152, uint16 unk154)
263 : ProfileName(name), BoolOptions((int)boolOptions)
264 {
265 FrameHeight = frameHeight;
266 FrameWidth = frameWidth;
267 SortBy = sortBy;
268 HealthText = healthText;
269 Unk146 = unk146;
270 Unk147 = unk147;
271 Unk148 = unk148;
272 Unk150 = unk150;
273 Unk152 = unk152;
274 Unk154 = unk154;
275 }
276
277 std::string ProfileName;
282
283 // LeftAlign, TopAlight, BottomAllign (unk order)
287
288 // LeftOffset, TopOffset and BottomOffset (unk order)
292
293 std::bitset<CUF_BOOL_OPTIONS_COUNT> BoolOptions;
294
295 // More fields can be added to BoolOptions without changing DB schema (up to 32, currently 27)
296};
297
299{
300 SpellCooldown() : end(time(NULL)), itemid(0) { }
301 time_t end;
303};
304
305typedef std::map<uint32, SpellCooldown> SpellCooldowns;
306typedef UNORDERED_MAP<uint32 /*instanceId*/, time_t/*releaseTime*/> InstanceTimeMap;
307
309{
313 TRAINER_SPELL_GREEN_DISABLED = 10 // custom value, not send to client: formally green but learn not allowed
314};
315
323
335
346
347#define ACTION_BUTTON_ACTION(X) (uint64(X) & 0x00000000FFFFFFFF)
348#define ACTION_BUTTON_TYPE(X) ((uint64(X) & 0xFFFFFFFF00000000) >> 56)
349#define MAX_ACTION_BUTTON_ACTION_VALUE (0xFFFFFFFF)
350
383
384#define MAX_ACTION_BUTTONS 132
385
386typedef std::map<uint8, ActionButton> ActionButtonList;
387
395
396typedef std::list<PlayerCreateInfoItem> PlayerCreateInfoItems;
397
404
405typedef std::list<uint32> PlayerCreateInfoSpells;
406
408{
410 PlayerCreateInfoAction(uint8 _button, uint32 _action, uint8 _type) : button(_button), type(_type), action(_action) { }
411
415};
416
417typedef std::list<PlayerCreateInfoAction> PlayerCreateInfoActions;
418
440
442{
444 { }
445
450 time_t EndTimer;
451};
452
454{
456 { }
457
461 time_t startTime;
464};
465
466struct Areas
467{
470 float x1;
471 float x2;
472 float y1;
473 float y2;
474};
475
476#define MAX_RUNES 6
477
479{
481 RUNE_MISS_COOLDOWN = 1500 // cooldown applied on runes when the spell misses
482};
483
492
500
501struct Runes
502{
504 uint8 runeState; // mask of available runes
506
507 void SetRuneState(uint8 index, bool set = true)
508 {
509 if (set)
510 runeState |= (1 << index); // usable
511 else
512 runeState &= ~(1 << index); // on cooldown
513 }
514};
515
517{
520 EnchantDuration(Item* _item, EnchantmentSlot _slot, uint32 _leftduration) : item(_item), slot(_slot),
521 leftduration(_leftduration)
522 {
523 ASSERT(item);
524 };
525
529};
530
531typedef std::list<EnchantDuration> EnchantDurationList;
532typedef std::list<Item*> ItemDurationList;
533
534
536{
538 PLAYER_FLAGS_AFK = 0x00000002,
539 PLAYER_FLAGS_DND = 0x00000004,
540 PLAYER_FLAGS_GM = 0x00000008,
541 PLAYER_FLAGS_GHOST = 0x00000010,
543 PLAYER_FLAGS_UNK6 = 0x00000040,
544 PLAYER_FLAGS_UNK7 = 0x00000080, // pre-3.0.3 PLAYER_FLAGS_FFA_PVP flag for FFA PVP state
545 PLAYER_FLAGS_CONTESTED_PVP = 0x00000100, // Player has been involved in a PvP combat and will be attacked by contested guards
549 PLAYER_FLAGS_PLAYED_LONG_TIME = 0x00001000, // played long time
550 PLAYER_FLAGS_PLAYED_TOO_LONG = 0x00002000, // played too long time
552 PLAYER_FLAGS_DEVELOPER = 0x00008000, // <Dev> prefix for something?
553 PLAYER_FLAGS_UNK16 = 0x00010000, // pre-3.0.3 PLAYER_FLAGS_SANCTUARY flag for player entered sanctuary
554 PLAYER_FLAGS_TAXI_BENCHMARK = 0x00020000, // taxi benchmark mode (on/off) (2.0.1)
555 PLAYER_FLAGS_PVP_TIMER = 0x00040000, // 3.0.2, pvp timer active (after you disable pvp manually)
556 PLAYER_FLAGS_UBER = 0x00080000,
557 PLAYER_FLAGS_UNK20 = 0x00100000,
558 PLAYER_FLAGS_UNK21 = 0x00200000,
560 PLAYER_FLAGS_ALLOW_ONLY_ABILITY = 0x00800000, // used by bladestorm and killing spree, allowed only spells with SPELL_ATTR0_REQ_AMMO, SPELL_EFFECT_ATTACK, checked only for active player
563 PLAYER_FLAGS_UNK26 = 0x04000000,
564 PLAYER_FLAGS_AUTO_DECLINE_GUILD = 0x08000000, // Automatically declines guild invites
565 PLAYER_FLAGS_GUILD_LEVEL_ENABLED = 0x10000000, // Lua_GetGuildLevelEnabled() - enables guild leveling related UI
566 PLAYER_FLAGS_VOID_UNLOCKED = 0x20000000, // void storage
567 PLAYER_FLAGS_UNK30 = 0x40000000,
569};
570
571#define KNOWN_TITLES_SIZE 4
572#define MAX_TITLE_INDEX (KNOWN_TITLES_SIZE * 64) // 4 uint64 fields
573
574// used in PLAYER_FIELD_LIFETIME_MAX_RANK values
576{
578 PLAYER_FIELD_BYTE_RELEASE_TIMER = 0x00000008, // Display time till auto release spirit
579 PLAYER_FIELD_BYTE_NO_RELEASE_WINDOW = 0x00000010 // Display no "release spirit" window at all
580};
581
582// used in UNIT_FIELD_SHAPESHIFT_FORM values
589
591{
594 FIRE_TIMER = 2 // feign death
595};
596#define MAX_TIMERS 3
597#define DISABLED_MIRROR_TIMER -1
598
599// 2^n values
601{
602 // gm abilities
607 PLAYER_EXTRA_GM_CHAT = 0x0020, // Show GM badge in chat messages
608
609 // other states
610 PLAYER_EXTRA_PVP_DEATH = 0x0100 // store PvP death status until corpse creating.
611};
612
613// 2^n values
626
627typedef std::map<uint32, QuestStatusData> QuestStatusMap;
628typedef std::map<uint32, uint32> QuestObjectiveStatusMap;
629typedef std::set<uint32> RewardedQuestSet;
630
631// quest, keep
632typedef std::map<uint32, bool> QuestStatusSaveMap;
633typedef std::map<uint32, bool> QuestObjectiveStatusSaveMap;
634
642
643#define MAX_QUEST_OFFSET 15
644
651
659
661{
662 SkillStatusData(uint8 _pos, SkillUpdateState _uState) : pos(_pos), uState(_uState)
663 { }
666};
667
669
670class Quest;
671class Spell;
672class Item;
673class WorldSession;
674
676{
677 // first slot for item stored (in any way in player m_items data)
679 // last+1 slot for item stored (in any way in player m_items data)
682};
683
684#define INVENTORY_SLOT_BAG_0 255
685
710
716
722
723enum BankItemSlots // 28 slots
724{
727};
728
729enum BankBagSlots // 7 slots
730{
733};
734
735enum BuyBackSlots // 12 slots
736{
737 // stored in m_buybackitems
740};
741
749
765
766#define MAX_EQUIPMENT_SET_INDEX 10 // client limit
767
768typedef std::map<uint32, EquipmentSet> EquipmentSets;
769
771{
772 ItemPosCount(uint16 _pos, uint32 _count) : pos(_pos), count(_count) { }
773 bool isContainedIn(std::vector<ItemPosCount> const& vec) const;
776};
777typedef std::vector<ItemPosCount> ItemPosCountVec;
778
786
788{
791 TRANSFER_ABORT_MAX_PLAYERS = 0x02, // Transfer Aborted: instance is full
792 TRANSFER_ABORT_NOT_FOUND = 0x03, // Transfer Aborted: instance not found
793 TRANSFER_ABORT_TOO_MANY_INSTANCES = 0x04, // You have entered too many instances recently.
794 TRANSFER_ABORT_ZONE_IN_COMBAT = 0x06, // Unable to zone in while an encounter is in progress.
795 TRANSFER_ABORT_INSUF_EXPAN_LVL = 0x07, // You must have <TBC, WotLK> expansion installed to access this area.
796 TRANSFER_ABORT_DIFFICULTY = 0x08, // <Normal, Heroic, Epic> difficulty mode is not available for %s.
797 TRANSFER_ABORT_UNIQUE_MESSAGE = 0x09, // Until you've escaped TLK's grasp, you cannot leave this place!
798 TRANSFER_ABORT_TOO_MANY_REALM_INSTANCES = 0x0A, // Additional instances cannot be launched, please try again later.
803 TRANSFER_ABORT_REALM_ONLY = 0x0F, // All players on party must be from the same realm.
804 TRANSFER_ABORT_MAP_NOT_ALLOWED = 0x10, // Map can't be entered at this time.
807};
808
810{
811 RAID_INSTANCE_WARNING_HOURS = 1, // WARNING! %s is scheduled to reset in %d hour(s).
812 RAID_INSTANCE_WARNING_MIN = 2, // WARNING! %s is scheduled to reset in %d minute(s)!
813 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!
814 RAID_INSTANCE_WELCOME = 4, // Welcome to %s. This raid instance is scheduled to reset in %s.
816};
817
818class InstanceSave;
819
826
835
838{
845 DAMAGE_FALL_TO_VOID = 6 // custom case for fall without durability loss
846};
847
849{
854 CHAT_TAG_COM = 0x08, // Commentator
856};
857
863
864#define MAX_PLAYED_TIME_INDEX 2
865
866// used at player loading query list preparing, and later result selection
868{
886 // 17 free
912};
913
924
925// Player summoning auto-decline time (in secs)
926#define MAX_PLAYER_SUMMON_DELAY (2*MINUTE)
927#define MAX_MONEY_AMOUNT (UI64LIT(9999999999)) // TODO: Move this restriction to worldserver.conf, default to this value, hardcap at uint64.max
928
930{
932 bool perm;
933 /* permanent PlayerInstanceBinds are created in Raid/Heroic instances for players
934 that aren't already permanently bound when they are inside when a boss is killed
935 or when they enter an instance that the group leader is permanently bound to. */
936 InstancePlayerBind() : save(NULL), perm(false)
937 { }
938};
939
952
954{
955 CHAR_DELETE_REMOVE = 0, // Completely remove from the database
956 CHAR_DELETE_UNLINK = 1 // The character gets unlinked from the account,
957 // the name gets freed up and appears as deleted ingame
958};
959
977
984
994
995class Player;
996
998struct BGData
999{
1005
1009
1010 std::map<uint32, uint32> bgQueuesJoinedTime;
1011
1012 std::set<uint32> bgAfkReporter;
1015
1017
1020
1022
1024 {
1025 taxiPath[0] = taxiPath[1] = 0;
1026 }
1027 bool HasTaxiPath() const
1028 {
1029 return taxiPath[0] && taxiPath[1];
1030 }
1031};
1032
1034{
1036 {
1037 ItemId = 0;
1038 ItemEntry = 0;
1039 CreatorGuid = 0;
1041 ItemSuffixFactor = 0;
1042 }
1043
1044 VoidStorageItem(uint64 id, uint32 entry, uint32 creator, uint32 randomPropertyId, uint32 suffixFactor)
1045 {
1046 ItemId = id;
1047 ItemEntry = entry;
1048 CreatorGuid = creator;
1049 ItemRandomPropertyId = randomPropertyId;
1050 ItemSuffixFactor = suffixFactor;
1051 }
1052
1058};
1059
1061{
1062public: // constructors
1063 TradeData(Player* player, Player* trader) :
1064 m_player(player), m_trader(trader), m_accepted(false), m_acceptProccess(false),
1066 {
1067 memset(m_items, 0, TRADE_SLOT_COUNT * sizeof(uint64));
1068 }
1069
1071 {
1072 return m_trader;
1073 }
1074 TradeData* GetTraderData() const;
1075
1076 Item* GetItem(TradeSlots slot) const;
1077 bool HasItem(uint64 itemGuid) const;
1078 TradeSlots GetTradeSlotForItem(uint64 itemGuid) const;
1079 void SetItem(TradeSlots slot, Item* item);
1080
1082 {
1083 return m_spell;
1084 }
1085 void SetSpell(uint32 spell_id, Item* castItem = NULL);
1086
1087 Item* GetSpellCastItem() const;
1088 bool HasSpellCastItem() const
1089 {
1090 return m_spellCastItem != 0;
1091 }
1092
1094 {
1095 return m_money;
1096 }
1097 void SetMoney(uint64 money);
1098
1099 bool IsAccepted() const
1100 {
1101 return m_accepted;
1102 }
1103 void SetAccepted(bool state, bool crosssend = false);
1104
1106 {
1107 return m_acceptProccess;
1108 }
1109 void SetInAcceptProcess(bool state)
1110 {
1111 m_acceptProccess = state;
1112 }
1113
1114private: // internal functions
1115 void Update(bool for_trader = true);
1116
1117private: // fields
1118 Player* m_player; // Player who own of this TradeData
1119 Player* m_trader; // Player who trade with m_player
1120
1121 bool m_accepted; // m_player press accept for trade list
1122 bool m_acceptProccess; // one from player/trader press accept and this processed
1123
1124 uint64 m_money; // m_player place money to trade
1125
1126 uint32 m_spell; // m_player apply spell to non-traded slot item
1127 uint64 m_spellCastItem; // applied spell casted by item use
1128
1129 uint64 m_items[TRADE_SLOT_COUNT]; // traded items from m_player side including non-traded slot
1130};
1131
1141
1143{
1144public:
1145 KillRewarder(Player* killer, Unit* victim, bool isBattleGround);
1146
1147 void Reward();
1148
1149private:
1150 void _InitXP(Player* player);
1151 void _InitGroupData();
1152
1153 void _RewardHonor(Player* player);
1154 void _RewardXP(Player* player, float rate);
1155 void _RewardReputation(Player* player, float rate);
1156 void _RewardKillCredit(Player* player);
1157 void _RewardPlayer(Player* player, bool isDungeon);
1158 void _RewardGroup();
1159
1172};
1173
1175{
1178 {
1179 for (uint8 i = 0; i < MAX_TALENT_SPECS; ++i)
1180 {
1181 SpecInfo[i].Talents = new PlayerTalentMap();
1182 SpecInfo[i].TalentTree = 0;
1183 }
1184 }
1185
1187 {
1188 for (uint8 i = 0; i < MAX_TALENT_SPECS; ++i)
1189 {
1190 for (PlayerTalentMap::const_iterator itr = SpecInfo[i].Talents->begin(); itr != SpecInfo[i].Talents->end(); ++itr)
1191 delete itr->second;
1192 delete SpecInfo[i].Talents;
1193 }
1194 }
1195
1197 {
1199 {
1200 for (uint8 i = 0; i < MAX_GLYPH_SLOT_INDEX; ++i)
1201 {
1202 Glyphs[i] = 0;
1203 }
1204 }
1205
1207
1212
1220
1221private:
1223};
1224
1225#define RESEARCH_CONTINENT_COUNT 5
1226#define RESEARCH_BRANCH_COUNT 12
1227#define MAX_DIGSITES_PER_CONTINENT 4
1228#define MAX_FINDS_PER_DIGSITE 6
1229
1230const uint32 ResearchContinents[RESEARCH_CONTINENT_COUNT] = { 0, 1, 530, 571, 870 }; // Eastern Kingdoms, Kalimdor, Outland, Northrend, Pandaria
1231
1233{
1234 ResearchDigsite(ResearchDigsiteInfo const* digsiteInfo, uint8 remainingFindCount)
1235 : _digsiteInfo(digsiteInfo), _archaeologyFind(NULL), _remainingFindCount(remainingFindCount)
1236 { }
1237
1238 void SelectNewArchaeologyFind(bool onInit);
1240 {
1241 _archaeologyFind = find;
1242 }
1244 {
1245 return _archaeologyFind;
1246 }
1247 bool IsEmptyDigsite() const
1248 {
1249 return !_remainingFindCount;
1250 }
1251
1253 {
1254 return _digsiteInfo->digsiteId;
1255 }
1257 {
1258 return _digsiteInfo;
1259 }
1261 {
1262 return _remainingFindCount;
1263 }
1264
1265private:
1269};
1270
1276
1278typedef UNORDERED_MAP<uint32 /*branchId*/, uint32 /*projectId*/> ResearchProjectMap;
1279
1287
1288class Player : public Unit, public GridObject<Player>
1289{
1290 friend class WorldSession;
1291 friend void Item::AddToUpdateQueueOf(Player* player);
1293public:
1294 explicit Player(WorldSession* session);
1295 ~Player();
1296
1297 void CleanupsBeforeDelete(bool finalCleanup = true) override;
1298
1299 void AddToWorld() override;
1300 void RemoveFromWorld() override;
1301
1302 void SetObjectScale(float scale) override;
1303
1304 bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, uint32 options = 0);
1305 bool TeleportTo(WorldLocation const& loc, uint32 options = 0);
1307
1308 void SetSummonPoint(uint32 mapid, float x, float y, float z);
1309 void SummonIfPossible(bool agree);
1310
1311 bool Create(uint32 guidlow, CharacterCreateInfo* createInfo);
1312
1313 void Update(uint32 time) override;
1314
1315 static bool BuildEnumData(PreparedQueryResult result, ByteBuffer* dataBuffer, ByteBuffer* bitBuffer, bool boosted = false);
1316
1317 void SetInWater(bool apply);
1318
1319 bool IsInWater() const override { return m_isInWater; }
1320 bool IsUnderWater() const override;
1321
1324 void SendTransferAborted(uint32 mapid, TransferAbortReason reason, uint8 arg = 0);
1325 void SendInstanceResetWarning(uint32 mapid, DifficultyID difficulty, uint32 time);
1326
1327 bool CanInteractWithQuestGiver(Object* questGiver);
1328 Creature* GetNPCIfCanInteractWith(uint64 guid, uint32 npcflagmask);
1330
1331 void ToggleAFK();
1332 void ToggleDND();
1333 bool isAFK() const
1334 {
1336 }
1337 bool isDND() const
1338 {
1340 }
1341 uint8 GetChatTag() const;
1342 std::string autoReplyMsg;
1343
1344 uint32 GetBarberShopCost(uint8 newhairstyle, uint8 newhaircolor, uint8 newfacialhair, BarberShopStyleEntry const* newSkin = NULL);
1345
1347 {
1348 return m_social;
1349 }
1350
1353 {
1354 m_taxi.InitTaxiNodes(getRace(), getClass(), getLevel());
1355 }
1356 bool ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc = NULL, uint32 spellid = 0);
1357 bool ActivateTaxiPathTo(uint32 taxi_path_id, uint32 spellid = 0);
1359 void ContinueTaxiFlight();
1360 // mount_id can be used in scripting calls
1361 bool isAcceptWhispers() const
1362 {
1364 }
1369 bool IsGameMaster() const
1370 {
1372 }
1373 void SetGameMaster(bool on);
1374 bool isGMChat() const
1375 {
1377 }
1378 void SetGMChat(bool on)
1379 {
1381 }
1382 bool isTaxiCheater() const
1383 {
1385 }
1386 void SetTaxiCheater(bool on)
1387 {
1389 }
1390 bool isGMVisible() const
1391 {
1393 }
1394 void SetGMVisible(bool on);
1395 void SetPvPDeath(bool on)
1396 {
1398 }
1399
1400 void GiveXP(uint32 xp, Unit* victim, float group_rate = 1.0f);
1401 void GiveLevel(uint8 level);
1402
1403 void InitStatsForLevel(bool reapplyMods = false);
1404 //void RemoveSpecializationSpells();
1405
1406 // .cheat command related
1407 bool GetCommandStatus(uint32 command) const
1408 {
1409 return _activeCheats & command;
1410 }
1412 {
1413 _activeCheats |= command;
1414 }
1416 {
1417 _activeCheats &= ~command;
1418 }
1419
1420 // Played Time Stuff
1426
1427 void setDeathState(DeathState s) override; // overwrite Unit::setDeathState
1428
1429 void InnEnter(time_t time, uint32 mapid, float x, float y, float z,
1430 float radius = 0.0f, float boxX = 0.0f, float boxY = 0.0f, float boxZ = 0.0f, float boxOrientation = 0.0f);
1431 bool IsInCurrentInnArea(float padding = 0.0f) const;
1432 void UpdateRestAreaState();
1433
1434 float GetRestBonus() const
1435 {
1436 return m_rest_bonus;
1437 }
1438 void SetRestBonus(float rest_bonus_new);
1439
1441 {
1442 return rest_type;
1443 }
1444 void SetRestType(RestType n_r_type)
1445 {
1446 rest_type = n_r_type;
1447 }
1448
1450 {
1451 return inn_pos_mapid;
1452 }
1453 float GetInnPosX() const
1454 {
1455 return inn_pos_x;
1456 }
1457 float GetInnPosY() const
1458 {
1459 return inn_pos_y;
1460 }
1461 float GetInnPosZ() const
1462 {
1463 return inn_pos_z;
1464 }
1465 float GetInnAreaRadius() const
1466 {
1467 return inn_area_radius;
1468 }
1469 float GetInnAreaBoxX() const
1470 {
1471 return inn_area_box_x;
1472 }
1473 float GetInnAreaBoxY() const
1474 {
1475 return inn_area_box_y;
1476 }
1477 float GetInnAreaBoxZ() const
1478 {
1479 return inn_area_box_z;
1480 }
1482 {
1484 }
1485
1486 time_t GetTimeInnEnter() const
1487 {
1488 return time_inn_enter;
1489 }
1490 void UpdateInnerTime(time_t time)
1491 {
1492 time_inn_enter = time;
1493 }
1494
1495 Pet* GetPet() const;
1496 Pet* SummonPet(uint32 entry, float x, float y, float z, float ang, PetType petType, uint32 despwtime);
1497 void RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent = false);
1498
1500 void Say(std::string const& text, const Language language);
1502 void Yell(std::string const& text, const Language language);
1504 void TextEmote(std::string const& text);
1506 void Whisper(std::string const& text, const Language language, uint64 receiver);
1507 void WhisperAddon(std::string const& text, std::string const& prefix, Player* receiver);
1508
1509 /*********************************************************/
1510 /*** STORAGE SYSTEM ***/
1511 /*********************************************************/
1512
1513 void SetVirtualItemSlot(uint8 i, Item* item);
1514 void SetSheath(SheathState sheathed) override; // overwrite Unit version
1515 uint8 FindEquipSlot(ItemTemplate const* proto, uint32 slot, bool swap) const;
1516 uint32 GetItemCount(uint32 item, bool inBankAlso = false, Item* skipItem = NULL) const;
1517 uint32 GetItemCountWithLimitCategory(uint32 limitCategory, Item* skipItem = NULL) const;
1518 Item* GetItemByGuid(uint64 guid) const;
1519 Item* GetItemByEntry(uint32 entry) const;
1520 Item* GetItemByPos(uint16 pos) const;
1521 Item* GetItemByPos(uint8 bag, uint8 slot) const;
1522 Item* GetUseableItemByPos(uint8 bag, uint8 slot) const;
1523 Bag* GetBagByPos(uint8 slot) const;
1524 Item* GetWeaponForAttack(WeaponAttackType attackType, bool useable = false) const;
1525 Item* GetShield(bool useable = false) const;
1526 static WeaponAttackType GetAttackBySlot(uint8 slot); // MAX_ATTACK if not weapon slot
1527 std::vector<Item*>& GetItemUpdateQueue()
1528 {
1529 return m_itemUpdateQueue;
1530 }
1531 static bool IsInventoryPos(uint16 pos)
1532 {
1533 return IsInventoryPos(pos >> 8, pos & 255);
1534 }
1535 static bool IsInventoryPos(uint8 bag, uint8 slot);
1536 static bool IsEquipmentPos(uint16 pos)
1537 {
1538 return IsEquipmentPos(pos >> 8, pos & 255);
1539 }
1540 static bool IsEquipmentPos(uint8 bag, uint8 slot);
1541 static bool IsBagPos(uint16 pos);
1542 static bool IsBankPos(uint16 pos)
1543 {
1544 return IsBankPos(pos >> 8, pos & 255);
1545 }
1546 static bool IsBankPos(uint8 bag, uint8 slot);
1547 bool IsValidPos(uint16 pos, bool explicit_pos)
1548 {
1549 return IsValidPos(pos >> 8, pos & 255, explicit_pos);
1550 }
1551 bool IsValidPos(uint8 bag, uint8 slot, bool explicit_pos);
1553 {
1555 }
1557 {
1559 }
1560 bool HasItemCount(uint32 item, uint32 count = 1, bool inBankAlso = false) const;
1561 bool HasItemFitToSpellRequirements(SpellInfo const* spellInfo, Item const* ignoreItem = NULL) const;
1562 bool CanNoReagentCast(SpellInfo const* spellInfo) const;
1563 bool HasItemOrGemWithIdEquipped(uint32 item, uint32 count, uint8 except_slot = NULL_SLOT) const;
1564 bool HasItemOrGemWithLimitCategoryEquipped(uint32 limitCategory, uint32 count, uint8 except_slot = NULL_SLOT) const;
1566 {
1567 return CanTakeMoreSimilarItems(pItem->GetEntry(), pItem->GetCount(), pItem);
1568 }
1570 {
1571 return CanTakeMoreSimilarItems(entry, count, NULL);
1572 }
1573 InventoryResult CanStoreNewItem(uint8 bag, uint8 slot, ItemPosCountVec& dest, uint32 item, uint32 count, uint32* no_space_count = NULL) const;
1574 InventoryResult CanStoreItem(uint8 bag, uint8 slot, ItemPosCountVec& dest, Item* pItem, bool swap = false) const;
1575 InventoryResult CanStoreItems(Item** pItem, int count) const;
1576 InventoryResult CanEquipNewItem(uint8 slot, uint16& dest, uint32 item, bool swap) const;
1577 InventoryResult CanEquipItem(uint8 slot, uint16& dest, Item* pItem, bool swap, bool not_loading = true) const;
1578
1579 InventoryResult CanEquipUniqueItem(Item* pItem, uint8 except_slot = NULL_SLOT, uint32 limit_count = 1) const;
1580 InventoryResult CanEquipUniqueItem(ItemTemplate const* itemProto, uint8 except_slot = NULL_SLOT, uint32 limit_count = 1) const;
1581 InventoryResult CanUnequipItems(uint32 item, uint32 count) const;
1582 InventoryResult CanUnequipItem(uint16 src, bool swap) const;
1583 InventoryResult CanBankItem(uint8 bag, uint8 slot, ItemPosCountVec& dest, Item* pItem, bool swap, bool not_loading = true) const;
1584 InventoryResult CanUseItem(Item* pItem, bool not_loading = true) const;
1585 InventoryResult CanUseItem(ItemTemplate const* pItem) const;
1586 InventoryResult CanRollForItemInLFG(ItemTemplate const* item, WorldObject const* lootedObject) const;
1587 Item* StoreNewItem(ItemPosCountVec const& pos, uint32 item, bool update, int32 randomPropertyId = 0, AllowedLooterSet const& allowedLooters = AllowedLooterSet());
1588 Item* StoreItem(ItemPosCountVec const& pos, Item* pItem, bool update);
1589 Item* EquipNewItem(uint16 pos, uint32 item, bool update);
1590 Item* EquipItem(uint16 pos, Item* pItem, bool update);
1591 void AutoUnequipOffhandIfNeed(bool force = false);
1592 bool StoreNewItemInBestSlots(uint32 item_id, uint32 item_count);
1593 void AutoStoreLoot(uint8 bag, uint8 slot, uint32 loot_id, LootStore const& store, bool broadcast = false);
1594 void AutoStoreLoot(uint32 loot_id, LootStore const& store, bool broadcast = false)
1595 {
1596 AutoStoreLoot(NULL_BAG, NULL_SLOT, loot_id, store, broadcast);
1597 }
1598 void StoreLootItem(uint8 lootSlot, Loot* loot, uint64 lootGuid = 0);
1599
1600 InventoryResult CanTakeMoreSimilarItems(uint32 entry, uint32 count, Item* pItem, uint32* no_space_count = NULL) const;
1601 InventoryResult CanStoreItem(uint8 bag, uint8 slot, ItemPosCountVec& dest, uint32 entry, uint32 count, Item* pItem = NULL, bool swap = false, uint32* no_space_count = NULL) const;
1602
1603 void AddRefundReference(uint32 it);
1605
1606 void SetLootSpecialization(uint32 specialization);
1609
1611 void SendNewCurrency(uint32 id) const;
1613 void SendCurrencies() const;
1615 void SendPvpRewards() const;
1617 uint32 GetCurrency(uint32 id, bool usePrecision) const;
1619 uint32 GetCurrencyOnWeek(uint32 id, bool usePrecision) const;
1621 uint32 GetCurrencyWeekCap(uint32 id, bool usePrecision) const;
1623 bool HasCurrency(uint32 id, uint32 count) const;
1625 void SetCurrency(uint32 id, uint32 count, bool printLog = true);
1626 void ResetCurrencyWeekCap();
1627 void ModifyCurrencyFlag(uint32 id, uint8 flag);
1628
1638 void ModifyCurrency(uint32 id, int32 count, bool printLog = true, bool ignoreMultipliers = false);
1639
1640 void ApplyEquipCooldown(Item* pItem);
1641 void QuickEquipItem(uint16 pos, Item* pItem);
1642 void VisualizeItem(uint8 slot, Item* pItem);
1643 void SetVisibleItemSlot(uint8 slot, Item* pItem);
1644 Item* BankItem(ItemPosCountVec const& dest, Item* pItem, bool update);
1645 void RemoveItem(uint8 bag, uint8 slot, bool update);
1646 void MoveItemFromInventory(uint8 bag, uint8 slot, bool update);
1647 // in trade, auction, guild bank, mail....
1648 void MoveItemToInventory(ItemPosCountVec const& dest, Item* pItem, bool update, bool in_characterInventoryDB = false);
1649 // in trade, guild bank, mail....
1651 void DestroyItem(uint8 bag, uint8 slot, bool update);
1652 void DestroyItemCount(uint32 item, uint32 count, bool update, bool unequip_check = false);
1653 void DestroyItemCount(Item* item, uint32& count, bool update);
1654 void DestroyConjuredItems(bool update);
1655 void DestroyZoneLimitedItem(bool update, uint32 new_zone);
1656 void SplitItem(uint16 src, uint16 dst, uint32 count);
1657 void SwapItem(uint16 src, uint16 dst);
1658 void AddItemToBuyBackSlot(Item* pItem);
1660 void RemoveItemFromBuyBackSlot(uint32 slot, bool del);
1661 void SendEquipError(InventoryResult msg, Item* pItem, Item* pItem2 = NULL, uint32 itemid = 0);
1662 void SendGameError(GameError error, uint32 arg1 = 0, uint32 arg2 = 0);
1663 void SendBuyFailed(BuyResult msg, ObjectGuid VendorGUID, uint32 item);
1664 void SendSellResponse(SellResult msg, ObjectGuid VendorGUID, ObjectGuid ItemGUID);
1666 {
1667 m_WeaponProficiency |= newflag;
1668 }
1670 {
1671 m_ArmorProficiency |= newflag;
1672 }
1674 {
1675 return m_WeaponProficiency;
1676 }
1678 {
1679 return m_ArmorProficiency;
1680 }
1681 bool IsUseEquipedWeapon(bool mainhand) const;
1682 bool IsTwoHandUsed() const;
1683 void SendNewItem(Item* item, uint32 count, bool received, bool created, bool broadcast = false);
1684 bool BuyItemFromVendorSlot(uint64 vendorguid, uint32 vendorslot, uint32 item, uint8 count, uint8 bag, uint8 slot);
1685 bool BuyCurrencyFromVendorSlot(ObjectGuid VendorGUID, uint32 vendorSlot, uint32 currency, uint32 count);
1686 bool _StoreOrEquipNewItem(uint32 vendorslot, uint32 item, uint8 count, uint8 bag, uint8 slot, int32 price, ItemTemplate const* pProto, Creature* pVendor, VendorItem const* crItem, bool bStore);
1687
1688 float GetReputationPriceDiscount(Creature const* creature) const;
1689
1691 {
1692 return m_trade ? m_trade->GetTrader() : NULL;
1693 }
1695 {
1696 return m_trade;
1697 }
1698 void TradeCancel(bool sendback, TradeStatus status = TRADE_STATUS_CANCELLED);
1699
1700 void UpdateEnchantTime(uint32 time);
1702 void AddTradeableItem(Item* item);
1703 void RemoveTradeableItem(Item* item);
1704 void UpdateItemDuration(uint32 time, bool realtimeonly = false);
1705 void AddEnchantmentDurations(Item* item);
1706 void RemoveEnchantmentDurations(Item* item);
1708 void AddEnchantmentDuration(Item* item, EnchantmentSlot slot, uint32 duration);
1709 void ApplyEnchantment(Item* item, EnchantmentSlot slot, bool apply, bool apply_dur = true, bool ignore_condition = false);
1710 void ApplyEnchantment(Item* item, bool apply);
1711 void ApplyReforgeEnchantment(Item* item, bool apply);
1712 void UpdateSkillEnchantments(uint16 skill_id, uint16 curr_value, uint16 new_value);
1715 void AddItemDurations(Item* item);
1716 void RemoveItemDurations(Item* item);
1717 void SendItemDurations();
1718 void LoadCorpse();
1719 void LoadPet();
1720
1721 bool AddItem(uint32 itemId, uint32 count);
1722
1724
1725 /*********************************************************/
1726 /*** GOSSIP SYSTEM ***/
1727 /*********************************************************/
1728
1729 void PrepareGossipMenu(WorldObject* source, uint32 menuId = 0, bool showQuests = false);
1730 void SendPreparedGossip(WorldObject* source);
1731 void OnGossipSelect(WorldObject* source, uint32 gossipListId, uint32 menuId);
1732
1733 uint32 GetGossipTextId(uint32 menuId, WorldObject* source);
1736
1737 /*********************************************************/
1738 /*** QUEST SYSTEM ***/
1739 /*********************************************************/
1740
1741 int32 GetQuestLevel(Quest const* quest) const
1742 {
1743 return quest && (quest->GetQuestLevel() > 0) ? quest->GetQuestLevel() : getLevel();
1744 }
1745
1746 void PrepareQuestMenu(uint64 guid);
1747 void SendPreparedQuest(uint64 guid);
1748 bool IsActiveQuest(uint32 quest_id) const;
1749 Quest const* GetNextQuest(uint64 guid, Quest const* quest);
1750 bool CanSeeStartQuest(Quest const* quest);
1751 bool CanTakeQuest(Quest const* quest, bool msg);
1752 bool CanAddQuest(Quest const* quest, bool msg);
1753 bool CanCompleteQuest(uint32 quest_id);
1754 bool CanCompleteRepeatableQuest(Quest const* quest);
1755 bool CanRewardQuest(Quest const* quest, bool msg);
1756 bool CanRewardQuest(Quest const* quest, uint32 reward, bool msg);
1757 void AddQuest(Quest const* quest, Object* questGiver);
1758 void CompleteQuest(uint32 quest_id);
1759 void IncompleteQuest(uint32 quest_id);
1760 void RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, bool announce = true);
1761 void FailQuest(uint32 quest_id);
1762 bool SatisfyQuestSkill(Quest const* qInfo, bool msg) const;
1763 bool SatisfyQuestLevel(Quest const* qInfo, bool msg);
1764 bool SatisfyQuestLog(bool msg);
1765 bool SatisfyQuestPreviousQuest(Quest const* qInfo, bool msg);
1766 bool SatisfyQuestClass(Quest const* qInfo, bool msg) const;
1767 bool SatisfyQuestRace(Quest const* qInfo, bool msg);
1768 bool SatisfyQuestReputation(Quest const* qInfo, bool msg);
1769 bool SatisfyQuestStatus(Quest const* qInfo, bool msg);
1770 bool SatisfyQuestConditions(Quest const* qInfo, bool msg);
1771 bool SatisfyQuestTimed(Quest const* qInfo, bool msg);
1772 bool SatisfyQuestExclusiveGroup(Quest const* qInfo, bool msg);
1773 bool SatisfyQuestNextChain(Quest const* qInfo, bool msg);
1774 bool SatisfyQuestPrevChain(Quest const* qInfo, bool msg);
1775 bool SatisfyQuestDay(Quest const* qInfo, bool msg);
1776 bool SatisfyQuestWeek(Quest const* qInfo, bool msg);
1777 bool SatisfyQuestMonth(Quest const* qInfo, bool msg);
1778 bool SatisfyQuestSeasonal(Quest const* qInfo, bool msg);
1779 bool GiveQuestSourceItem(Quest const* quest);
1780 bool TakeQuestSourceItem(uint32 questId, bool msg);
1781 bool GetQuestRewardStatus(uint32 quest_id) const;
1782 QuestStatus GetQuestStatus(uint32 quest_id) const;
1783 void SetQuestStatus(uint32 quest_id, QuestStatus status);
1784 void RemoveActiveQuest(uint32 quest_id);
1785 void RemoveRewardedQuest(uint32 quest_id);
1786
1787 void SetDailyQuestStatus(uint32 quest_id);
1788 void SetWeeklyQuestStatus(uint32 quest_id);
1789 void SetMonthlyQuestStatus(uint32 quest_id);
1790 void SetSeasonalQuestStatus(uint32 quest_id);
1791 void ResetDailyQuestStatus();
1794 void ResetSeasonalQuestStatus(uint16 event_id);
1795
1796 uint16 FindQuestSlot(uint32 quest_id) const;
1797 uint32 GetQuestSlotQuestId(uint16 slot) const;
1798 uint32 GetQuestSlotState(uint16 slot) const;
1799 uint16 GetQuestSlotCounter(uint16 slot, uint8 counter) const;
1800 uint32 GetQuestSlotTime(uint16 slot) const;
1801 void SetQuestSlot(uint16 slot, uint32 quest_id, uint32 timer = 0);
1802 void SetQuestSlotCounter(uint16 slot, uint8 counter, uint16 count);
1803 void SetQuestSlotState(uint16 slot, uint32 state);
1804 void RemoveQuestSlotState(uint16 slot, uint32 state);
1805 void SetQuestSlotTimer(uint16 slot, uint32 timer);
1806 void SwapQuestSlot(uint16 slot1, uint16 slot2);
1807
1809 void AreaExploredOrEventHappens(uint32 questId);
1810 void GroupEventHappens(uint32 questId, WorldObject const* pEventObject);
1811 void ItemAddedQuestCheck(uint32 entry, uint32 count);
1812 void ItemRemovedQuestCheck(uint32 entry, uint32 count);
1813 void KilledMonster(CreatureTemplate const* cInfo, uint64 guid);
1814 void KilledMonsterCredit(uint32 entry, uint64 guid = 0);
1815 void KilledPlayerCredit();
1816 void KillCreditGO(uint32 entry, uint64 guid = 0);
1817 void TalkedToCreature(uint32 entry, uint64 guid);
1818 void MoneyChanged(uint32 value);
1819 void ReputationChanged(FactionEntry const* factionEntry);
1820 void ReputationChanged2(FactionEntry const* factionEntry);
1821 void ReputationChangedQuestCheck(FactionEntry const* factionEntry);
1822 bool HasQuestForItem(uint32 itemId) const;
1823 bool HasQuestForGO(int32 goId) const;
1825 bool CanShareQuest(uint32 questId) const;
1826 void QuestObjectiveSatisfy(uint32 objectId, uint32 amount, uint8 type = 0u, uint64 guid = 0u);
1827
1828 void SendQuestComplete(Quest const* quest);
1829 void SendQuestReward(Quest const* quest, uint32 XP);
1830 void SendQuestFailed(uint32 questId, InventoryResult reason = EQUIP_ERR_OK);
1831 void SendQuestTimerFailed(uint32 questId);
1833 void SendQuestConfirmAccept(Quest const* quest, Player* pReceiver);
1834 void SendPushToPartyResponse(Player* player, uint8 msg);
1835 void SendQuestUpdateAddCredit(Quest const* quest, QuestObjective const* objective, ObjectGuid guid, uint16 oldCount, uint16 addCount);
1836 void SendQuestUpdateAddPlayer(Quest const* quest, QuestObjective const* objective, uint16 oldCount, uint16 addCount);
1837
1839 {
1840 return m_divider;
1841 }
1843 {
1844 m_divider = guid;
1845 }
1846
1848 {
1849 return m_ingametime;
1850 }
1852 {
1853 m_ingametime = time;
1854 }
1855
1856 void AddTimedQuest(uint32 questId)
1857 {
1858 m_timedquests.insert(questId);
1859 }
1861 {
1862 m_timedquests.erase(questId);
1863 }
1864
1866 {
1867 delete _CUFProfiles[id]; _CUFProfiles[id] = profile;
1868 }
1870 {
1871 return _CUFProfiles[id];
1872 }
1874 {
1875 uint8 count = 0;
1876 for (uint8 i = 0; i < MAX_CUF_PROFILES; ++i)
1877 if (_CUFProfiles[i])
1878 ++count;
1879 return count;
1880 }
1881
1882 bool HasPvPForcingQuest() const;
1883
1884 /*********************************************************/
1885 /*** LOAD SYSTEM ***/
1886 /*********************************************************/
1887
1888 bool LoadFromDB(uint32 guid, SQLQueryHolder* holder);
1889 bool isBeingLoaded() const override;
1890
1891 void Initialize(uint32 guid);
1892 static uint32 GetUInt32ValueFromArray(Tokenizer const& data, uint16 index);
1893 static float GetFloatValueFromArray(Tokenizer const& data, uint16 index);
1894 static uint32 GetZoneIdFromDB(uint64 guid);
1895 static uint32 GetLevelFromDB(uint64 guid);
1896 static bool LoadPositionFromDB(uint32& mapid, float& x, float& y, float& z, float& o, bool& in_flight, uint64 guid);
1897
1899 {
1900 return Gender <= GENDER_FEMALE;
1901 }
1902 static bool IsValidClass(uint8 Class)
1903 {
1904 return (1 << (Class - 1)) & CLASSMASK_ALL_PLAYABLE;
1905 }
1906 static bool IsValidRace(uint8 Race)
1907 {
1908 return (1 << (Race - 1)) & RACEMASK_ALL_PLAYABLE;
1909 }
1910
1911 /*********************************************************/
1912 /*** SAVE SYSTEM ***/
1913 /*********************************************************/
1914
1915 void SaveToDB(bool create = false);
1916 void SaveInventoryAndGoldToDB(SQLTransaction& trans); // fast save function for item/money cheating preventing
1917 void SaveGoldToDB(SQLTransaction& trans);
1918
1919 static void SetUInt32ValueInArray(Tokenizer& data, uint16 index, uint32 value);
1920 static void Customize(uint64 guid, uint8 gender, uint8 skin, uint8 face, uint8 hairStyle, uint8 hairColor, uint8 facialHair);
1921 static void SavePositionInDB(uint32 mapid, float x, float y, float z, float o, uint32 zone, uint64 guid);
1922
1923 static void DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmChars = true, bool deleteFinally = false);
1924 static void DeleteOldCharacters();
1925 static void DeleteOldCharacters(uint32 keepDays);
1926
1929
1930 void SetBindPoint(uint64 guid);
1931 void SendTalentWipeConfirm(ObjectGuid guid, bool resetType);
1932 void ResetPetTalents();
1933 void RegenerateAll();
1934 void Regenerate(Powers power);
1935 void RegenerateHealth();
1937 {
1938 m_regenTimerCount = time;
1939 }
1941 {
1942 m_weaponChangeTimer = time;
1943 }
1944
1946 {
1948 }
1949 bool ModifyMoney(int64 amount, bool sendError = true);
1950 bool HasEnoughMoney(uint64 amount) const
1951 {
1952 return (GetMoney() >= amount);
1953 }
1954 bool HasEnoughMoney(int64 amount) const;
1955 void SetMoney(uint64 value);
1956
1958 {
1959 return m_RewardedQuests;
1960 }
1962 {
1963 return m_QuestStatus;
1964 }
1965
1967 {
1968 return m_RewardedQuests.size();
1969 }
1970 bool IsQuestRewarded(uint32 quest_id) const;
1971
1972 Unit* GetSelectedUnit() const;
1973 Player* GetSelectedPlayer() const;
1974
1975 void SetTarget(uint64 /*guid*/) OVERRIDE { }
1977 {
1979 }
1980
1984
1985 void AddComboPoints(Unit* target, int8 count, Spell* spell = NULL);
1986 void GainSpellComboPoints(int8 count);
1987 void ClearComboPoints();
1988 void SendComboPoints();
1989
1990 void SendMailResult(uint32 mailId, MailResponseType mailAction, MailResponseResult mailError, uint32 equipError = 0, uint32 item_guid = 0, uint32 item_count = 0);
1991 void SendNewMail();
1993 void AddNewMailDeliverTime(time_t deliver_time);
1994 bool IsMailsLoaded() const
1995 {
1996 return m_mailsLoaded;
1997 }
1998
1999 void RemoveMail(uint32 id);
2000
2001 void AddMail(Mail* mail)
2002 {
2003 m_mail.push_front(mail);
2004 }// for call from WorldSession::SendMailTo
2006 {
2007 return m_mail.size();
2008 }
2009 Mail* GetMail(uint32 id);
2010
2011 PlayerMails::iterator GetMailBegin()
2012 {
2013 return m_mail.begin();
2014 }
2015 PlayerMails::iterator GetMailEnd()
2016 {
2017 return m_mail.end();
2018 }
2019
2020 /*********************************************************/
2021 /*** MAILED ITEMS SYSTEM ***/
2022 /*********************************************************/
2023
2026
2028
2029 ItemMap mMitems; //template defined in objectmgr.cpp
2030
2031 Item* GetMItem(uint32 id);
2032 void AddMItem(Item* it);
2033 bool RemoveMItem(uint32 id);
2034
2036 void PetSpellInitialize();
2037 void CharmSpellInitialize();
2040 void SendRemoveControlBar();
2041 bool HasSpell(uint32 spell) const override;
2042 bool HasActiveSpell(uint32 spell) const; // show in spellbook
2043 TrainerSpellState GetTrainerSpellState(TrainerSpell const* trainer_spell) const;
2044 bool IsSpellFitByClassAndRace(uint32 spell_id) const;
2045 bool IsNeedCastPassiveSpellAtLearn(SpellInfo const* spellInfo) const;
2046 bool IsCurrentSpecMasterySpell(SpellInfo const* spellInfo) const;
2047
2048 void SendProficiency(ItemClass itemClass, uint32 itemSubclassMask);
2049 void SendInitialSpells();
2050 bool addSpell(uint32 spellId, bool active, bool learning, bool dependent, bool disabled, bool loading = false);
2051 void learnSpell(uint32 spell_id, bool dependent);
2052 void removeSpell(uint32 spell_id, bool disabled = false, bool learn_low_rank = true);
2053 void resetSpells(bool myClassOnly = false);
2054 void learnDefaultSpells();
2056 void learnQuestRewardedSpells(Quest const* quest);
2057 void learnSpellHighRank(uint32 spellid);
2058 void AddTemporarySpell(uint32 spellId);
2059 void RemoveTemporarySpell(uint32 spellId);
2060 void SetReputation(uint32 factionentry, uint32 value);
2061 uint32 GetReputation(uint32 factionentry) const;
2062 std::string GetGuildName();
2063
2064 // Talents
2065 uint32 GetUsedTalentCount() const { return _talentMgr->UsedTalentCount; }
2066 void SetUsedTalentCount(uint32 talents) { _talentMgr->UsedTalentCount = talents; }
2067 uint32 GetTalentResetCost() const { return _talentMgr->ResetTalentsCost; }
2068 void SetTalentResetCost(uint32 cost) { _talentMgr->ResetTalentsCost = cost; }
2069 uint32 GetSpecializationResetCost() const { return _talentMgr->ResetSpecializationCost; }
2070 void SetSpecializationResetCost(uint32 cost) { _talentMgr->ResetSpecializationCost = cost; }
2071 uint32 GetSpecializationResetTime() const { return _talentMgr->ResetSpecializationTime; }
2072 void SetSpecializationResetTime(time_t time_) { _talentMgr->ResetSpecializationTime = time_; }
2073 uint32 GetTalentResetTime() const { return _talentMgr->ResetTalentsTime; }
2074 void SetTalentResetTime(time_t time_) { _talentMgr->ResetTalentsTime = time_; }
2075 uint32 GetTalentSpecialization(uint8 spec) const { return _talentMgr->SpecInfo[spec].TalentTree; }
2076 void SetTalentSpecialization(uint8 spec, uint32 tree) { _talentMgr->SpecInfo[spec].TalentTree = tree; }
2077 uint8 GetActiveSpec() const { return _talentMgr->ActiveSpec; }
2078 void SetActiveSpec(uint8 spec) { _talentMgr->ActiveSpec = spec; }
2079 uint8 GetSpecsCount() const { return _talentMgr->SpecsCount; }
2080 void SetSpecsCount(uint8 count) { _talentMgr->SpecsCount = count; }
2081
2082 void SendInspectResult(Player const* player);
2083
2084 bool ResetTalents(bool noCost = false, bool resetTalents = true, bool resetSpecialization = true);
2085 bool RemoveTalent(uint32 talentId);
2086
2089 void InitTalentForLevel();
2092 void SendTalentsInfoData();
2093 bool LearnTalent(uint16 talentId);
2094 bool AddTalent(uint32 spellId, uint8 spec, bool learning);
2095 bool HasTalent(uint32 spell_id, uint8 spec) const;
2097
2098 // Dual Spec
2099 void UpdateSpecCount(uint8 count);
2100 void ActivateSpec(uint8 spec);
2101
2102 void InitGlyphsForLevel();
2103 void SetGlyphSlot(uint8 slot, uint32 slottype)
2104 {
2105 SetUInt32Value(PLAYER_FIELD_GLYPH_SLOTS + slot, slottype);
2106 }
2107
2109 {
2111 }
2112 void SetGlyph(uint8 slot, uint32 glyph);
2113 uint32 GetGlyph(uint8 spec, uint8 slot) const
2114 {
2115 return _talentMgr->SpecInfo[spec].Glyphs[slot];
2116 }
2117
2119 {
2120 return _talentMgr->SpecInfo[spec].Talents;
2121 }
2123 {
2124 return _talentMgr->SpecInfo[spec].Talents;
2125 }
2127 {
2128 return m_actionButtons;
2129 }
2130
2140
2142 {
2143 return m_spells;
2144 }
2146 {
2147 return m_spells;
2148 }
2149
2151 {
2152 return m_spellCooldowns;
2153 }
2154
2155 void AddSpellMod(SpellModifier* mod, bool apply);
2156 bool IsAffectedBySpellmod(SpellInfo const* spellInfo, SpellModifier* mod, Spell* spell = NULL);
2157 template <class T> T ApplySpellMod(uint32 spellId, SpellModOp op, T& basevalue, Spell* spell = NULL);
2158 void RemoveSpellMods(Spell* spell);
2159 void RestoreSpellMods(Spell* spell, uint32 ownerAuraId = 0, Aura* aura = NULL);
2160 void RestoreAllSpellMods(uint32 ownerAuraId = 0, Aura* aura = NULL);
2161 void DropModCharge(SpellModifier* mod, Spell* spell);
2162 void SetSpellModTakingSpell(Spell* spell, bool apply);
2163
2164 static uint32 const infinityCooldownDelay = MONTH; // used for set "infinity cooldowns" for spells and check
2166 bool HasSpellCooldown(uint32 spell_id) const;
2167 uint32 GetSpellCooldownDelay(uint32 spell_id) const;
2168 void AddSpellAndCategoryCooldowns(SpellInfo const* spellInfo, uint32 itemId, Spell* spell = NULL, bool infinityCooldown = false);
2169 void AddSpellCooldown(uint32 spell_id, uint32 itemid, time_t end_time);
2170 void ModifySpellCooldown(uint32 spellId, int32 cooldown);
2171 void SendSpellCooldown(uint32 spellId, uint32 cooldown);
2172 void SendSpellCooldowns();
2173 void SendCooldownEvent(SpellInfo const* spellInfo, uint32 itemId = 0, Spell* spell = NULL, bool setCooldown = true);
2174 void ProhibitSpellSchool(SpellSchoolMask idSchoolMask, uint32 unTimeMs) override;
2175 void RemoveSpellCooldown(uint32 spell_id, bool update = false);
2176 void RemoveSpellCategoryCooldown(uint32 cat, bool update = false);
2177 void SendClearCooldown(uint32 spell_id, Unit* target);
2178 void SendClearAllCooldowns(Unit* target);
2179
2184
2186 void RemoveArenaSpellCooldowns(bool removeActivePetCooldowns = false);
2191 {
2192 m_lastPotionId = item_id;
2193 }
2194 void UpdatePotionCooldown(Spell* spell = NULL);
2195
2196 void SetResurrectRequestData(Unit* caster, uint32 health, uint32 mana, uint32 appliedAura);
2198 {
2199 delete _resurrectionData;
2200 _resurrectionData = NULL;
2201 }
2202
2204 {
2205 if (!IsRessurectRequested())
2206 return false;
2207
2208 return _resurrectionData->GUID == guid;
2209 }
2210
2212 {
2213 return _resurrectionData != NULL;
2214 }
2216
2217 uint8 getCinematic() const { return m_cinematic; }
2219 {
2220 m_cinematic = cine;
2221 }
2222
2224 void removeActionButton(uint8 button);
2225 ActionButton const* GetActionButton(uint8 button);
2227 {
2229 }
2230 void SendActionButtons(uint32 state) const;
2231 bool IsActionButtonDataValid(uint8 button, uint32 action, ActionButtonType type);
2232
2234 void UpdatePvPState(bool onlyFFA = false);
2235 void SetPvP(bool state);
2236 void UpdatePvP(bool state, bool override = false);
2237 void UpdateZone(uint32 newZone, uint32 newArea);
2238 void UpdateArea(uint32 newArea);
2239
2240 void UpdateZoneDependentAuras(uint32 zone_id); // zones
2241 void UpdateAreaDependentAuras(uint32 area_id); // subzones
2242
2243 void UpdateAfkReport(time_t currTime);
2244 void UpdatePvPFlag(time_t currTime);
2245 void UpdateContestedPvP(uint32 currTime);
2247 {
2248 m_contestedPvPTimer = newTime;
2249 }
2250 void ResetContestedPvP();
2251
2254 void UpdateDuelFlag(time_t currTime);
2255 void CheckDuelDistance(time_t currTime);
2256 void DuelComplete(DuelCompleteType type);
2257 void SendDuelCountdown(uint32 counter);
2258
2259 bool IsGroupVisibleFor(Player const* p) const;
2260 bool IsInSameGroupWith(Player const* p) const;
2261 bool IsInSameRaidWith(Player const* p) const;
2262 void UninviteFromGroup();
2263 static void RemoveFromGroup(Group* group, uint64 guid, RemoveMethod method = GROUP_REMOVEMETHOD_DEFAULT, uint64 kicker = 0, const char* reason = NULL);
2269
2270 void SetInGuild(uint32 guildId);
2271 void SetRank(uint8 rankId)
2272 {
2274 }
2276 {
2278 }
2280 {
2282 }
2288 {
2289 m_GuildIdInvited = GuildId;
2290 }
2292 {
2293 return GetUInt32Value(OBJECT_FIELD_DATA); /* return only lower part */
2294 }
2295 Guild* GetGuild();
2296 static uint32 GetGuildIdFromDB(uint64 guid);
2297 static uint8 GetRankFromDB(uint64 guid);
2298 int GetGuildIdInvited() const { return m_GuildIdInvited; }
2301 void SendDeclineGuildInvitation(std::string declinerName, bool autoDecline = false);
2302 static void RemovePetitionsAndSigns(uint64 guid, uint32 type);
2303
2305 {
2306 return 0;
2307 }
2308
2310 {
2311 return 0;
2312 }
2313
2314 DifficultyID GetDifficulty(MapEntry const* mapEntry) const;
2317 void SetDungeonDifficulty(DifficultyID dungeon_difficulty) { m_dungeonDifficulty = dungeon_difficulty; }
2318 void SetRaidDifficulty(DifficultyID raid_difficulty) { m_raidDifficulty = raid_difficulty; }
2321
2322 bool UpdateSkill(uint32 skill_id, uint32 step);
2323 bool UpdateSkillPro(uint16 skillId, int32 chance, uint32 step);
2324
2325 bool UpdateCraftSkill(uint32 spellid);
2326 bool UpdateGatherSkill(uint32 SkillId, uint32 SkillValue, uint32 RedLevel, uint32 Multiplicator = 1);
2327 bool UpdateFishingSkill();
2328
2332
2333 bool UpdateStats(Stats stat) override;
2334 bool UpdateAllStats() override;
2335 void ApplySpellPenetrationBonus(int32 amount, bool apply);
2336 void UpdateResistances(uint32 school) override;
2337 void UpdateArmor() override;
2338 void UpdateMaxHealth() override;
2339 void UpdateMaxPower(Powers power) override;
2340 void UpdateAttackPowerAndDamage(bool ranged = false) override;
2341 void UpdateDamagePhysical(WeaponAttackType attType) override;
2342 void ApplySpellPowerBonus(int32 amount, bool apply);
2344 void ApplyRatingMod(CombatRating cr, int32 value, bool apply);
2345 void UpdateRating(CombatRating cr);
2346 void UpdateAllRatings();
2347 void UpdateMastery();
2348 void UpdatePvpPower();
2349
2350 void CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, bool addTotalPct, float& min_damage, float& max_damage);
2351
2353 {
2354 ApplyRatingMod(cr, 0, true);
2355 }
2357 void GetDodgeFromAgility(float& diminishing, float& nondiminishing);
2359 float OCTRegenMPPerSpirit();
2360 float GetRatingMultiplier(CombatRating cr) const;
2361 float GetRatingBonusValue(CombatRating cr) const;
2362
2365 {
2366 return m_baseSpellPower;
2367 }
2372
2374 void UpdateBlockPercentage();
2377 void UpdateParryPercentage();
2378 void UpdateDodgePercentage();
2379 void UpdateMeleeHitChances();
2381 void UpdateSpellHitChances();
2382
2384 void UpdateSpellCritChance(uint32 school);
2385 void UpdateArmorPenetration(int32 amount);
2386 void UpdateExpertise(WeaponAttackType attType);
2387 void ApplyManaRegenBonus(int32 amount, bool apply);
2388 void ApplyHealthRegenBonus(int32 amount, bool apply);
2389 void UpdateManaRegen();
2390 void UpdateRuneRegen(RuneType rune);
2391 void UpdateAllRunesRegen();
2392
2394 {
2395 return m_lootGuid;
2396 }
2398 {
2399 m_lootGuid = guid;
2400 }
2401 std::set<uint64> const& GetLootView() const
2402 {
2403 return m_lootView;
2404 }
2405 bool IsLootingObject(uint64 guid) const
2406 {
2407 return m_lootView.find(guid) != m_lootView.end();
2408 }
2410 {
2411 m_lootView.insert(guid);
2412 }
2413 void RemoveLootedObject(uint64 guid);
2414
2415 void RemovedInsignia(Player* looterPlr);
2416
2418 {
2419 return m_session;
2420 }
2421
2422 void BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) const override;
2423 void DestroyForPlayer(Player* target, bool onDeath = false) const override;
2424 void SendLogXPGain(uint32 GivenXP, Unit* victim, uint32 BonusXP, bool recruitAFriend = false, float group_rate = 1.0f);
2425
2426 // notifiers
2429 void SendAutoRepeatCancel(Unit* target);
2430 void SendExplorationExperience(uint32 Area, uint32 Experience);
2431
2432 void SendDungeonDifficulty(/*bool IsInGroup*/);
2433 void SendRaidDifficulty(/*bool IsInGroup,*/ int32 forcedDifficulty = -1);
2434 void ResetInstances(InstanceResetMethod method, bool isRaid);
2435 void SendResetInstanceSuccess(uint32 MapId);
2436 void SendResetInstanceFailed(uint32 reason, uint32 MapId);
2437 void SendResetFailedNotify(uint32 mapid);
2438
2439 bool UpdatePosition(float x, float y, float z, float orientation, bool teleport = false) override;
2440 bool UpdatePosition(const Position& pos, bool teleport = false) { return UpdatePosition(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), pos.GetOrientation(), teleport); }
2441 void UpdateUnderwaterState(Map* m, float x, float y, float z) override;
2442
2443 void SendMessageToSet(WorldPacket* data, bool self) override { SendMessageToSetInRange(data, GetVisibilityRange(), self); };// overwrite Object::SendMessageToSet
2444 void SendMessageToSetInRange(WorldPacket* data, float fist, bool self) override;// overwrite Object::SendMessageToSetInRange
2445 void SendMessageToSetInRange(WorldPacket* data, float dist, bool self, bool own_team_only);
2446 void SendMessageToSet(WorldPacket* data, Player const* skipped_rcvr) override;
2447
2448 Corpse* GetCorpse() const;
2449 void SpawnCorpseBones();
2450 void CreateCorpse();
2451 void KillPlayer();
2453 void ResurrectPlayer(float restore_percent, bool applySickness = false);
2454 void BuildPlayerRepop();
2455 void RepopAtGraveyard();
2456
2457 void DurabilityLossAll(double percent, bool inventory);
2458 void DurabilityLoss(Item* item, double percent);
2459 void DurabilityPointsLossAll(int32 points, bool inventory);
2460 void DurabilityPointsLoss(Item* item, int32 points);
2462 uint32 DurabilityRepairAll(bool cost, float discountMod, bool guildBank);
2463 uint32 DurabilityRepair(uint16 pos, bool cost, float discountMod, bool guildBank);
2464
2465 void UpdateMirrorTimers();
2466 void StopMirrorTimers();
2468
2469 bool CanJoinConstantChannelInZone(ChatChannelsEntry const* channel, AreaTableEntry const* zone);
2470
2471 void JoinedChannel(Channel* c);
2472 void LeftChannel(Channel* c);
2473 void CleanupChannels();
2474 void UpdateLocalChannels(uint32 newZone);
2475 void LeaveLFGChannel();
2476
2477 void SetSkill(uint16 id, uint16 step, uint16 currVal, uint16 maxVal);
2478 uint16 GetMaxSkillValue(uint32 skill) const; // max + perm. bonus + temp bonus
2479 uint16 GetPureMaxSkillValue(uint32 skill) const; // max
2480 uint16 GetSkillValue(uint32 skill) const; // skill value + perm. bonus + temp bonus
2481 uint16 GetBaseSkillValue(uint32 skill) const; // skill value + perm. bonus
2482 uint16 GetPureSkillValue(uint32 skill) const; // skill value
2483 int16 GetSkillPermBonusValue(uint32 skill) const;
2484 int16 GetSkillTempBonusValue(uint32 skill) const;
2485 uint16 GetSkillStep(uint16 skill) const; // 0...6
2486 bool HasSkill(uint32 skill) const;
2487 void learnSkillRewardedSpells(uint32 id, uint32 value);
2488
2490 {
2491 return m_teleport_dest;
2492 }
2494 {
2496 }
2498 {
2500 }
2502 {
2504 }
2505 void SetSemaphoreTeleportNear(bool semphsetting)
2506 {
2507 mSemaphoreTeleport_Near = semphsetting;
2508 }
2509 void SetSemaphoreTeleportFar(bool semphsetting)
2510 {
2511 mSemaphoreTeleport_Far = semphsetting;
2512 }
2514 void SetForcedTeleportFar(bool forced)
2515 {
2516 m_forcedTeleportFar = forced;
2517 if (forced)
2519 }
2521 void SetSemaphoreTeleportForcedFar(bool semphsetting) { m_forcedTeleportFarSemaphore = semphsetting; }
2523
2524 void CheckAreaExploreAndOutdoor(void);
2525
2526 static uint32 TeamForRace(uint8 race);
2528 {
2529 return m_team;
2530 }
2532 {
2534 }
2535 void setFactionForRace(uint8 race);
2536
2537 void InitDisplayIds();
2538
2539 bool IsAtGroupRewardDistance(WorldObject const* pRewardSource) const;
2540 bool IsAtRecruitAFriendDistance(WorldObject const* pOther) const;
2541 void RewardPlayerAndGroupAtKill(Unit* victim, bool isBattleGround);
2542 void RewardPlayerAndGroupAtEvent(uint32 creature_id, WorldObject* pRewardSource);
2543 bool isHonorOrXPTarget(Unit const* victim);
2544
2545 bool GetsRecruitAFriendBonus(bool forXP);
2547 {
2548 return m_grantableLevels;
2549 }
2551 {
2552 m_grantableLevels = val;
2553 }
2554
2556 {
2557 return *m_reputationMgr;
2558 }
2560 {
2561 return *m_reputationMgr;
2562 }
2563 ReputationRank GetReputationRank(uint32 faction_id) const;
2564 void RewardReputation(Unit* victim, float rate);
2565 void RewardReputation(Quest const* quest);
2566
2567 int32 CalculateReputationGain(ReputationSource source, uint32 creatureOrQuestLevel, int32 rep, int32 faction, bool noQuestBonus = false);
2568
2569 void UpdateSkillsForLevel();
2570 void UpdateSkillsToMaxSkillsForLevel(); // for .levelup
2571 void ModifySkillBonus(uint32 skillid, int32 val, bool talent);
2572
2574 {
2575 return m_battlePetMgr;
2576 }
2577
2578 /*********************************************************/
2579 /*** PVP SYSTEM ***/
2580 /*********************************************************/
2581 // TODO: Properly implement correncies as of Cataclysm
2582 void UpdateHonorFields();
2583 bool RewardHonor(Unit* victim, uint32 groupsize, int32 honor = -1, bool pvptoken = false);
2585
2586 //End of PvP System
2587
2589 {
2590 return m_spellCooldowns;
2591 }
2592
2593 void SetDrunkValue(uint8 newDrunkValue, uint32 itemId = 0);
2595 {
2597 }
2599
2601 {
2602 return m_deathTimer;
2603 }
2604 uint32 GetCorpseReclaimDelay(bool pvp) const;
2606 void SendCorpseReclaimDelay(bool load = false);
2607
2609 bool CanDodge() const { return m_canDodge; }
2610 void SetCanDodge(bool value);
2611 bool CanParry() const { return m_canParry; }
2612 void SetCanParry(bool value);
2613 bool CanBlock() const { return m_canBlock; }
2614 void SetCanBlock(bool value);
2615
2616 bool CanTitanGrip() const
2617 {
2618 return m_canTitanGrip;
2619 }
2620 void SetCanTitanGrip(bool value)
2621 {
2622 m_canTitanGrip = value;
2623 }
2625 {
2627 }
2628
2629 void SetRegularAttackTime();
2630 void SetBaseModValue(BaseModGroup modGroup, BaseModType modType, float value)
2631 {
2632 m_auraBaseMod[modGroup][modType] = value;
2633 }
2634 void HandleBaseModValue(BaseModGroup modGroup, BaseModType modType, float amount, bool apply);
2635 float GetBaseModValue(BaseModGroup modGroup, BaseModType modType) const;
2636 float GetTotalBaseModValue(BaseModGroup modGroup) const;
2638 {
2639 return m_auraBaseMod[modGroup][FLAT_MOD] + m_auraBaseMod[modGroup][PCT_MOD];
2640 }
2641 void _ApplyAllStatBonuses();
2642 void _RemoveAllStatBonuses();
2643
2644 void ResetAllPowers();
2645
2646 void _ApplyWeaponDependentAuraMods(Item* item, WeaponAttackType attackType, bool apply);
2647 void _ApplyWeaponDependentAuraCritMod(Item* item, WeaponAttackType attackType, AuraEffect const* aura, bool apply);
2648 void _ApplyWeaponDependentAuraDamageMod(Item* item, WeaponAttackType attackType, AuraEffect const* aura, bool apply);
2649
2650 void _ApplyItemMods(Item* item, uint8 slot, bool apply);
2651 void _RemoveAllItemMods();
2652 void _ApplyAllItemMods();
2653 void _ApplyAllLevelScaleItemMods(bool apply);
2654 void _ApplyItemBonuses(ItemTemplate const* proto, uint8 slot, bool apply, bool only_level_scale = false);
2655 void _ApplyWeaponDamage(uint8 slot, ItemTemplate const* proto, ScalingStatValuesEntry const* ssv, bool apply);
2656 bool EnchantmentFitsRequirements(uint32 enchantmentcondition, int8 slot);
2657 void ToggleMetaGemsActive(uint8 exceptslot, bool apply);
2658 void CorrectMetaGemEnchants(uint8 slot, bool apply);
2659 void InitDataForForm(bool reapplyMods = false);
2660
2661 void ApplyItemEquipSpell(Item* item, bool apply, bool form_change = false);
2662 void ApplyEquipSpell(SpellInfo const* spellInfo, Item* item, bool apply, bool form_change = false);
2664 void CastItemCombatSpell(Unit* target, WeaponAttackType attType, uint32 procVictim, uint32 procEx);
2665 void CastItemUseSpell(Item* item, SpellCastTargets const& targets, uint8 cast_count, uint32 glyphIndex, SpellResearchData const* researchData = NULL);
2666 void CastItemCombatSpell(Unit* target, WeaponAttackType attType, uint32 procVictim, uint32 procEx, Item* item, ItemTemplate const* proto);
2667
2668 void SendEquipmentSetList();
2669 void SetEquipmentSet(uint32 index, EquipmentSet const& eqset);
2670 void DeleteEquipmentSet(uint64 setGuid);
2671
2672 void SendInitWorldStates(uint32 zone, uint32 area);
2674 void SendDirectMessage(WorldPacket* data);
2677
2678 void SendAurasForTarget(Unit* target);
2679
2681 std::vector<ItemSetEffect*> ItemSetEff;
2682
2683 void SendLoot(uint64 guid, LootType loot_type, bool isAoE = false);
2684 void SendLootRelease(ObjectGuid guid);
2685 void SendNotifyLootItemRemoved(uint8 lootSlot, ObjectGuid guid);
2687
2688 /*********************************************************/
2689 /*** BATTLEGROUND SYSTEM ***/
2690 /*********************************************************/
2691
2692 bool InBattleground() const
2693 {
2694 return m_bgData.bgInstanceID != 0;
2695 }
2696 bool InArena() const;
2698 {
2699 return m_bgData.bgInstanceID;
2700 }
2702 {
2703 return m_bgData.bgTypeID;
2704 }
2706
2708 {
2709 return m_bgData.bgQueuesJoinedTime.find(uint32(bgTypeId))->second;
2710 }
2712 {
2713 m_bgData.bgQueuesJoinedTime[uint32(bgTypeId)] = joinTime;
2714 }
2716 {
2717 m_bgData.bgQueuesJoinedTime.erase(m_bgData.bgQueuesJoinedTime.find(uint32(bgTypeId))->second);
2718 }
2719
2720 bool InBattlegroundQueue() const;
2721
2726
2727 void SetBattlegroundId(uint32 val, BattlegroundTypeId bgTypeId);
2732 bool IsInvitedForBattlegroundInstance(uint32 instanceId) const;
2734 {
2735 return m_bgData.joinPos;
2736 }
2738
2739 void SetBGTeam(uint32 team);
2740 uint32 GetBGTeam() const;
2741
2742 void LeaveBattleground(bool teleportToEntryPoint = true);
2743 bool CanJoinToBattleground(Battleground const* bg) const;
2745 void ReportedAfkBy(Player* reporter);
2747 {
2748 m_bgData.bgAfkReporter.clear();
2749 }
2750
2751 bool GetBGAccessByLevel(BattlegroundTypeId bgTypeId) const;
2752 bool isTotalImmunity();
2753 bool CanUseBattlegroundObject(GameObject* gameobject);
2754 bool isTotalImmune();
2755 bool CanCaptureTowerPoint();
2756
2757 bool GetRandomWinner() const
2758 {
2759 return m_IsBGRandomWinner;
2760 }
2761 void SetRandomWinner(bool isWinner);
2762
2763 /*********************************************************/
2764 /*** OUTDOOR PVP SYSTEM ***/
2765 /*********************************************************/
2766
2767 OutdoorPvP* GetOutdoorPvP() const;
2768 // returns true if the player is in active state for outdoor pvp objective capturing, false otherwise
2769 bool IsOutdoorPvPActive();
2770
2771 /*********************************************************/
2772 /*** REST SYSTEM ***/
2773 /*********************************************************/
2774
2775 bool isRested() const
2776 {
2777 return GetRestTime() >= 10 * IN_MILLISECONDS;
2778 }
2781 {
2782 return m_restTime;
2783 }
2785 {
2786 m_restTime = v;
2787 }
2788
2789 /*********************************************************/
2790 /*** ENVIROMENTAL SYSTEM ***/
2791 /*********************************************************/
2792
2795
2796 /*********************************************************/
2797 /*** FLOOD FILTER SYSTEM ***/
2798 /*********************************************************/
2799
2800 void UpdateSpeakTime();
2801 bool CanSpeak() const;
2802
2803 /*********************************************************/
2804 /*** VARIOUS SYSTEMS ***/
2805 /*********************************************************/
2806 void UpdateFallInformationIfNeed(MovementInfo const& minfo, uint16 opcode);
2809 void SetFallInformation(uint32 time, float z);
2810 void HandleFall(MovementInfo const& movementInfo);
2811
2812 bool IsKnowHowFlyIn(uint32 mapid, uint32 zone) const;
2813
2814 void SetClientControl(Unit* target, uint8 allowMove);
2815
2816 void SetMover(Unit* target);
2817
2818 void SetSeer(WorldObject* target)
2819 {
2820 m_seer = target;
2821 }
2822 void SetViewpoint(WorldObject* target, bool apply);
2823 WorldObject* GetViewpoint() const;
2824 void StopCastingCharm();
2825 void StopCastingBindSight();
2826
2828 {
2829 return m_nextSave;
2830 }
2832 {
2833 m_nextSave = timer;
2834 }
2835
2836 // Recall position
2842 void SaveRecallPosition();
2843
2844 void SetHomebind(WorldLocation const& loc, uint32 areaId);
2845
2846 // Homebind coordinates
2852
2854
2855 // currently visible objects at player client
2856 typedef std::set<uint64> ClientGUIDs;
2858
2859 bool HaveAtClient(WorldObject const* u) const;
2860
2861 bool IsNeverVisible() const override;
2862
2863 bool IsVisibleGloballyFor(Player const* player) const;
2864
2865 void SendInitialVisiblePackets(Unit* target);
2866 void UpdateObjectVisibility(bool forced = true) override;
2868 void UpdateVisibilityOf(WorldObject* target);
2870
2871 template<class T>
2872 void UpdateVisibilityOf(T* target, UpdateData& data, std::set<Unit*>& visibleNow);
2873 void UpdatePhasing();
2875
2877 {
2878 return m_atLoginFlags & f;
2879 }
2881 {
2882 m_atLoginFlags |= f;
2883 }
2884 void RemoveAtLoginFlag(AtLoginFlags flags, bool persist = false);
2885
2886 bool isUsingLfg();
2887 bool inRandomLfgDungeon();
2888
2889 typedef std::set<uint32> DFQuestsDoneList;
2891
2892 // Temporarily removed pet cache
2898 {
2900 }
2903 bool IsPetNeedBeTemporaryUnsummoned() const;
2904
2905 void StopCinematic();
2906 void SendCinematicStart(uint32 CinematicSequenceId);
2907 bool IsInCinematic() const { return inCinematic && cinematicSequence; }
2908 bool GetCinematicPosition(float& x, float& y, float& z) const;
2910
2911 void SendMovieStart(uint32 MovieId);
2912
2913 /*********************************************************/
2914 /*** INSTANCE SYSTEM ***/
2915 /*********************************************************/
2916
2918
2919 void UpdateHomebindTime(uint32 time);
2920
2925 // permanent binds and solo binds by difficulty
2929 {
2930 return m_boundInstances[difficulty];
2931 }
2933 void UnbindInstance(uint32 mapid, DifficultyID difficulty, bool unload = false);
2934 void UnbindInstance(BoundInstancesMap::iterator& itr, DifficultyID difficulty, bool unload = false);
2935 InstancePlayerBind* BindToInstance(InstanceSave* save, bool permanent, bool load = false);
2936 void BindToInstance();
2937 void SetPendingBind(uint32 instanceId, uint32 bindTimer);
2938 bool HasPendingBind() const
2939 {
2940 return _pendingBindId > 0;
2941 }
2942 void SendRaidInfo();
2943 void SendSavedInstances();
2944 static void ConvertInstancesToGroup(Player* player, Group* group, bool switchLeader);
2945 bool Satisfy(AccessRequirement const* ar, uint32 target_map, bool report = false);
2947 bool CheckInstanceCount(uint32 instanceId) const;
2948 void AddInstanceEnterTime(uint32 instanceId, time_t enterTime);
2949
2950 // last used pet number (for BG's)
2952 {
2953 return m_lastpetnumber;
2954 }
2955 void SetLastPetNumber(uint32 petnumber)
2956 {
2957 m_lastpetnumber = petnumber;
2958 }
2959
2960 /*********************************************************/
2961 /*** GROUP SYSTEM ***/
2962 /*********************************************************/
2963
2965 {
2966 return m_groupInvite;
2967 }
2969 {
2970 m_groupInvite = group;
2971 }
2973 {
2974 return m_group.getTarget();
2975 }
2976 const Group* GetGroup() const
2977 {
2978 return (const Group*)m_group.getTarget();
2979 }
2981 {
2982 return m_group;
2983 }
2984 void SetGroup(Group* group, int8 subgroup = -1);
2986 {
2987 return m_group.getSubGroup();
2988 }
2990 {
2991 return m_groupUpdateMask;
2992 }
2994 {
2995 m_groupUpdateMask |= flag;
2996 }
2998 {
2999 return m_auraRaidUpdateMask;
3000 }
3002 {
3003 m_auraRaidUpdateMask |= (uint64(1) << slot);
3004 }
3005 Player* GetNextRandomRaidMember(float radius);
3008 {
3009 _readyCheckTimer = timer;
3010 }
3011
3012 // Battleground / Battlefield Group System
3013 void SetBattlegroundOrBattlefieldRaid(Group* group, int8 subgroup = -1);
3016 {
3017 return m_originalGroup.getTarget();
3018 }
3024 {
3025 return m_originalGroup.getSubGroup();
3026 }
3027 void SetOriginalGroup(Group* group, int8 subgroup = -1);
3028
3029 void SetPassOnGroupLoot(bool bPassOnGroupLoot)
3030 {
3031 m_bPassOnGroupLoot = bPassOnGroupLoot;
3032 }
3034 {
3035 return m_bPassOnGroupLoot;
3036 }
3037
3039 {
3040 return m_mapRef;
3041 }
3042
3043 // Set map to player and add reference
3044 void SetMap(Map* map) override;
3045 void ResetMap() override;
3046
3047 bool isAllowedToLoot(const Creature* creature);
3048
3050 {
3051 return m_declinedname;
3052 }
3054 {
3055 return m_runes->runeState;
3056 }
3058 {
3059 return RuneType(m_runes->runes[index].BaseRune);
3060 }
3062 {
3063 return RuneType(m_runes->runes[index].CurrentRune);
3064 }
3066 {
3067 return m_runes->runes[index].Cooldown;
3068 }
3070 {
3071 return GetRuneTypeBaseCooldown(GetBaseRune(index));
3072 }
3073 uint32 GetRuneTypeBaseCooldown(RuneType runeType) const;
3074 bool IsBaseRuneSlotsOnCooldown(RuneType runeType) const;
3076 {
3077 return m_runes->lastUsedRune;
3078 }
3080 {
3081 m_runes->lastUsedRune = type;
3082 }
3083 void SetBaseRune(uint8 index, RuneType baseRune)
3084 {
3085 m_runes->runes[index].BaseRune = baseRune;
3086 }
3087 void SetCurrentRune(uint8 index, RuneType currentRune)
3088 {
3089 m_runes->runes[index].CurrentRune = currentRune;
3090 }
3091 void SetRuneCooldown(uint8 index, uint32 cooldown);
3092 void SetRuneConvertAura(uint8 index, AuraEffect const* aura);
3093 void AddRuneByAuraEffect(uint8 index, RuneType newType, AuraEffect const* aura);
3094 void RemoveRunesByAuraEffect(AuraEffect const* aura);
3095 void RestoreBaseRune(uint8 index);
3096 void ConvertRune(uint8 index, RuneType newType);
3097 void ResyncRunes(uint8 count);
3098 void AddRunePower(uint8 index);
3099 void InitRunes();
3100
3101 void SendRespondInspectAchievements(Player* player) const;
3103 bool HasAchieved(uint32 achievementId) const;
3104 void ResetAchievements();
3105
3106 void ResetAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1 = 0, uint64 miscValue2 = 0, bool evenIfCriteriaComplete = false);
3107 void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1 = 0, uint64 miscValue2 = 0, uint64 miscValue3 = 0, Unit* unit = NULL);
3108 void StartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry, uint32 timeLost = 0);
3110 void CompletedAchievement(AchievementEntry const* entry);
3111
3112 bool HasTitle(uint32 bitIndex);
3113 bool HasTitle(CharTitlesEntry const* title)
3114 {
3115 return HasTitle(title->bit_index);
3116 }
3117 void SetTitle(CharTitlesEntry const* title, bool lost = false);
3118
3119 //bool isActiveObject() const { return true; }
3120 bool CanSeeSpellClickOn(Creature const* creature) const;
3121
3123 {
3124 return m_ChampioningFaction;
3125 }
3127 {
3128 m_ChampioningFaction = faction;
3129 }
3131 {
3132 return m_ChampioningType;
3133 }
3135 {
3136 m_ChampioningType = type;
3137 }
3138
3140
3141 float GetAverageItemLevel();
3143
3145 {
3146 WhisperList.clear();
3147 }
3149 {
3150 WhisperList.push_back(guid);
3151 }
3152 bool IsInWhisperWhiteList(uint64 guid);
3154 {
3155 WhisperList.remove(guid);
3156 }
3157
3159
3164 void SendMovementSetCollisionHeight(float height);
3165
3166 bool CanFly() const override { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_CAN_FLY); }
3167
3169 float GetCollisionHeight(bool mounted) const;
3170
3171 std::string GetMapAreaAndZoneString();
3172 std::string GetCoordsMapAreaAndZoneString();
3173
3174 // Void Storage
3190 void AddVoidStorageItemAtSlot(uint8 slot, const VoidStorageItem& item);
3191 void DeleteVoidStorageItem(uint8 slot);
3192 bool SwapVoidStorageItem(uint8 oldSlot, uint8 newSlot);
3195
3196 void ReadyCheckComplete();
3197
3199
3200 uint32 GetQuestObjectiveCounter(uint32 objectiveId) const;
3201
3202 // Archaeology
3206 bool IsWithinResearchDigsite(ResearchDigsite* digsite) const;
3211 bool IsResearchDigsiteAvailable(ResearchDigsiteInfo const* digsiteInfo) const;
3212 void SendResearchHistory();
3213 void SolveResearchProject(Spell* spell);
3214 bool HasCompletedResearchProject(uint32 projectId) const { return _researchHistory.find(projectId) != _researchHistory.end(); }
3215 bool HasResearchingProject(uint32 projectId) const
3216 {
3217 for (ResearchProjectMap::const_iterator itr = _researchProjects.begin(); itr != _researchProjects.end(); ++itr)
3218 if (itr->second == projectId)
3219 return true;
3220 return false;
3221 }
3222 bool HasCompletedAllRareProjectsForRace(uint32 researchBranchId) const;
3223 bool HasCompletedAllCommonProjectsForRace(uint32 researchBranchId, bool onlyAvailable) const;
3224 bool IsResearchBranchUnlocked(uint32 researchBranchId) const;
3227 void SendSurveyCastInfo(ResearchDigsite* digsite, bool success);
3229
3230protected:
3231 // Gamemaster whisper whitelist
3239
3240 /*********************************************************/
3241 /*** BATTLEGROUND SYSTEM ***/
3242 /*********************************************************/
3243
3244 /*
3245 this is an array of BG queues (BgTypeIDs) in which is player
3246 */
3252
3255
3257
3258 /*********************************************************/
3259 /*** QUEST SYSTEM ***/
3260 /*********************************************************/
3261
3262 //We allow only one timed quest active at the same time. Below can then be simple value instead of set.
3263 typedef std::set<uint32> QuestSet;
3264 typedef std::set<uint32> SeasonalQuestSet;
3270
3273
3274 /*********************************************************/
3275 /*** LOAD SYSTEM ***/
3276 /*********************************************************/
3277
3278 void _LoadActions(PreparedQueryResult result);
3279 void _LoadAuras(PreparedQueryResult result, uint32 timediff);
3280 void _LoadGlyphAuras();
3282 void _LoadInventory(PreparedQueryResult result, uint32 timeDiff);
3284 void _LoadMailInit(PreparedQueryResult resultUnread, PreparedQueryResult resultDelivery);
3285 void _LoadMail();
3286 void _LoadMailedItems(Mail* mail);
3295 void _LoadGroup(PreparedQueryResult result);
3296 void _LoadSkills(PreparedQueryResult result);
3297 void _LoadSpells(PreparedQueryResult result);
3301 void _LoadBGData(PreparedQueryResult result);
3302 void _LoadGlyphs(PreparedQueryResult result);
3303 void _LoadTalents(PreparedQueryResult result);
3310
3311 /*********************************************************/
3312 /*** SAVE SYSTEM ***/
3313 /*********************************************************/
3314
3315 void _SaveActions(SQLTransaction& trans);
3316 void _SaveAuras(SQLTransaction& trans);
3317 void _SaveInventory(SQLTransaction& trans);
3318 void _SaveVoidStorage(SQLTransaction& trans);
3319 void _SaveMail(SQLTransaction& trans);
3320 void _SaveQuestStatus(SQLTransaction& trans);
3326 void _SaveSkills(SQLTransaction& trans);
3327 void _SaveSpells(SQLTransaction& trans);
3329 void _SaveBGData(SQLTransaction& trans);
3330 void _SaveGlyphs(SQLTransaction& trans);
3331 void _SaveTalents(SQLTransaction& trans);
3332 void _SaveStats(SQLTransaction& trans);
3334 void _SaveCurrency(SQLTransaction& trans);
3335 void _SaveCUFProfiles(SQLTransaction& trans);
3338
3339 /*********************************************************/
3340 /*** ENVIRONMENTAL SYSTEM ***/
3341 /*********************************************************/
3342 void HandleSobering();
3343 void SendMirrorTimer(MirrorTimerType Type, uint32 MaxValue, uint32 CurrentValue, int32 Regen);
3345 void HandleDrowning(uint32 time_diff);
3347
3348 /*********************************************************/
3349 /*** HONOR SYSTEM ***/
3350 /*********************************************************/
3352
3353 void outDebugValues() const;
3355 std::set<uint64> m_lootView;
3356
3364
3366
3369
3371
3372 uint32 _GetCurrencyWeekCap(const CurrencyTypesEntry* currency) const;
3373
3374 uint32 GetCurrencyWeekCap(CurrencyTypesEntry const* currency) const;
3375 uint32 GetCurrencyTotalCap(CurrencyTypesEntry const* currency) const;
3376
3378 void UpdateConquestCurrencyCap(uint32 currency);
3379
3381
3382 std::vector<Item*> m_itemUpdateQueue;
3384
3386
3389
3394
3397
3399
3401
3404 uint32 m_lastPotionId; // last used health/mana potion in combat, that block next potion use
3405
3407
3409
3411
3418
3420
3424
3425 void ResetTimeSync();
3426 void SendTimeSync();
3427
3429
3431
3432 typedef std::list<Channel*> JoinedChannelsList;
3434
3436
3438
3444
3448
3452
3455
3457
3465
3480
3481 // Social
3483
3484 // Groups
3491
3492 // last used pet number (for BG's)
3494
3495 // Player summoning
3501
3505
3506 bool CanAlwaysSee(WorldObject const* obj) const override;
3507
3508 bool IsAlwaysDetectableFor(WorldObject const* seer) const override;
3509
3511
3513
3514 // Archaeology
3518
3519private:
3520 // internal common parts for CanStore/StoreItem functions
3521 InventoryResult CanStoreItem_InSpecificSlot(uint8 bag, uint8 slot, ItemPosCountVec& dest, ItemTemplate const* pProto, uint32& count, bool swap, Item* pSrcItem) const;
3522 InventoryResult CanStoreItem_InBag(uint8 bag, ItemPosCountVec& dest, ItemTemplate const* pProto, uint32& count, bool merge, bool non_specialized, Item* pSrcItem, uint8 skip_bag, uint8 skip_slot) const;
3523 InventoryResult CanStoreItem_InInventorySlots(uint8 slot_begin, uint8 slot_end, ItemPosCountVec& dest, ItemTemplate const* pProto, uint32& count, bool merge, Item* pSrcItem, uint8 skip_bag, uint8 skip_slot) const;
3524 Item* _StoreItem(uint16 pos, Item* pItem, uint32 count, bool clone, bool update);
3525 Item* _LoadItem(SQLTransaction& trans, uint32 zoneId, uint32 timeDiff, Field* fields);
3526
3527 std::set<uint32> m_refundableItems;
3528 void SendRefundInfo(Item* item);
3529 void RefundItem(Item* item);
3530 void SendItemRefundResult(Item* item, ItemExtendedCostEntry const* iece, uint8 error);
3531
3532 // know currencies are not removed at any point (0 displayed)
3533 void AddKnownCurrency(uint32 itemId);
3534
3535 void AdjustQuestReqItemCount(Quest const* quest, QuestStatusData& questStatusData);
3536
3538 {
3539 return m_bCanDelayTeleport;
3540 }
3541 void SetCanDelayTeleport(bool setting)
3542 {
3543 m_bCanDelayTeleport = setting;
3544 }
3546 {
3547 return m_bHasDelayedTeleport;
3548 }
3549 void SetDelayedTeleportFlag(bool setting)
3550 {
3551 m_bHasDelayedTeleport = setting;
3552 }
3554 {
3555 if (operation < DELAYED_END) m_DelayedOperations |= operation;
3556 }
3557
3559
3560 void UpdateCharmedAI();
3561
3564
3569
3570 // Guid of player who invited player to guild as last
3572
3573 // Current teleport data
3578
3582
3583 // Temporary removed pet cache
3586
3589
3591
3594
3595 std::queue<uint32> m_timeSyncQueue;
3599
3603
3606
3608
3615
3617};
3618
3619void AddItemsSetItem(Player* player, Item* item);
3620void RemoveItemsSetItem(Player* player, ItemTemplate const* proto);
3621
3622// "the bodies of template functions must be made available in a header file"
3623template <class T> T Player::ApplySpellMod(uint32 spellId, SpellModOp op, T& basevalue, Spell* spell)
3624{
3625 SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId);
3626 if (!spellInfo)
3627 return 0;
3628 float totalmul = 1.0f;
3629 float totalflat = 0;
3630
3631 // Drop charges for triggering spells instead of triggered ones
3633 spell = m_spellModTakingSpell;
3634
3635 for (SpellModList::iterator itr = m_spellMods[op].begin(); itr != m_spellMods[op].end(); ++itr)
3636 {
3637 SpellModifier* mod = *itr;
3638
3639 // Charges can be set only for mods with auras
3640 if (!mod->ownerAura)
3641 ASSERT(mod->charges == 0);
3642
3643 if (!IsAffectedBySpellmod(spellInfo, mod, spell))
3644 continue;
3645
3646 if (mod->type == SPELLMOD_FLAT)
3647 totalflat += mod->value;
3648 else if (mod->type == SPELLMOD_PCT)
3649 {
3650 // skip percent mods for null basevalue (most important for spell mods with charges)
3651 if (basevalue == T(0))
3652 continue;
3653
3654 // special case (skip > 10sec spell casts for instant cast setting)
3655 if (mod->op == SPELLMOD_CASTING_TIME && basevalue >= T(10000) && mod->value <= -100)
3656 continue;
3657
3658 totalmul += CalculatePct(1.0f, mod->value);
3659 }
3660
3661 DropModCharge(mod, spell);
3662 }
3663 float diff = (float)basevalue * (totalmul - 1.0f) + (float)totalflat;
3664 basevalue = T((float)basevalue + diff);
3665 return T(diff);
3666}
3667
3668#endif
@ IN_MILLISECONDS
Definition Common.h:125
@ MONTH
Definition Common.h:123
AchievementCriteriaTimedTypes
Definition DBCEnums.h:157
AchievementCriteriaTypes
Definition DBCEnums.h:170
DifficultyID
Definition DBCEnums.h:330
std::int32_t int32
Definition Define.h:73
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
std::int8_t int8
Definition Define.h:75
#define OVERRIDE
Definition Define.h:60
std::uint64_t uint64
Definition Define.h:76
std::int64_t int64
Definition Define.h:72
std::uint16_t uint16
Definition Define.h:78
std::int16_t int16
Definition Define.h:74
#define ASSERT
Definition Errors.h:29
BuyResult
Definition Item.h:125
EnchantmentSlot
Definition Item.h:149
@ MAX_ENCHANTMENT_SLOT
Definition Item.h:165
InventoryResult
Definition Item.h:27
@ EQUIP_ERR_OK
Definition Item.h:28
SellResult
Definition Item.h:138
ItemClass
std::set< uint32 > AllowedLooterSet
Definition LootMgr.h:116
LootType
Definition LootMgr.h:66
InstanceResetMethod
Definition Map.h:627
PetSaveMode
Definition PetDefines.h:20
PetType
Definition PetDefines.h:10
UNORDERED_MAP< uint32, PlayerTalent * > PlayerTalentMap
Definition Player.h:198
void AddItemsSetItem(Player *player, Item *item)
Definition Item.cpp:20
std::deque< Mail * > PlayerMails
Definition Player.h:51
std::vector< ItemPosCount > ItemPosCountVec
Definition Player.h:777
const uint32 ResearchContinents[RESEARCH_CONTINENT_COUNT]
Definition Player.h:1230
TrainerSpellState
Definition Player.h:309
@ TRAINER_SPELL_GREEN
Definition Player.h:311
@ TRAINER_SPELL_GRAY
Definition Player.h:310
@ TRAINER_SPELL_GREEN_DISABLED
Definition Player.h:313
@ TRAINER_SPELL_RED
Definition Player.h:312
ReferAFriendError
Definition Player.h:961
@ ERR_REFER_A_FRIEND_TARGET_TOO_HIGH
Definition Player.h:964
@ ERR_REFER_A_FRIEND_SUMMON_OFFLINE_S
Definition Player.h:975
@ ERR_REFER_A_FRIEND_DIFFERENT_FACTION
Definition Player.h:967
@ ERR_REFER_A_FRIEND_NONE
Definition Player.h:962
@ ERR_REFER_A_FRIEND_NO_TARGET
Definition Player.h:970
@ ERR_REFER_A_FRIEND_NOT_NOW
Definition Player.h:968
@ ERR_REFER_A_FRIEND_INSUF_EXPAN_LVL
Definition Player.h:974
@ ERR_REFER_A_FRIEND_INSUFFICIENT_GRANTABLE_LEVELS
Definition Player.h:965
@ ERR_REFER_A_FRIEND_NOT_REFERRED_BY
Definition Player.h:963
@ ERR_REFER_A_FRIEND_TOO_FAR
Definition Player.h:966
@ ERR_REFER_A_FRIEND_SUMMON_LEVEL_MAX_I
Definition Player.h:972
@ ERR_REFER_A_FRIEND_NOT_IN_GROUP
Definition Player.h:971
@ ERR_REFER_A_FRIEND_GRANT_LEVEL_MAX_I
Definition Player.h:969
@ ERR_REFER_A_FRIEND_SUMMON_COOLDOWN
Definition Player.h:973
TeleportToOptions
Definition Player.h:828
@ TELE_TO_SPELL
Definition Player.h:833
@ TELE_TO_NOT_LEAVE_COMBAT
Definition Player.h:831
@ TELE_TO_NOT_UNSUMMON_PET
Definition Player.h:832
@ TELE_TO_GM_MODE
Definition Player.h:829
@ TELE_TO_NOT_LEAVE_TRANSPORT
Definition Player.h:830
EnviromentalDamage
Type of environmental damages.
Definition Player.h:838
@ DAMAGE_SLIME
Definition Player.h:843
@ DAMAGE_FALL
Definition Player.h:841
@ DAMAGE_LAVA
Definition Player.h:842
@ DAMAGE_FALL_TO_VOID
Definition Player.h:845
@ DAMAGE_DROWNING
Definition Player.h:840
@ DAMAGE_FIRE
Definition Player.h:844
@ DAMAGE_EXHAUSTED
Definition Player.h:839
std::list< SpellModifier * > SpellModList
Definition Player.h:200
uint32 const pandarenLanguageSpellsAlliance[]
Definition Player.h:113
UNORDERED_MAP< uint32, PlayerSpell * > PlayerSpellMap
Definition Player.h:199
RuneType
Definition Player.h:485
@ RUNE_FROST
Definition Player.h:488
@ NUM_RUNE_TYPES
Definition Player.h:490
@ RUNE_DEATH
Definition Player.h:489
@ RUNE_UNHOLY
Definition Player.h:487
@ RUNE_BLOOD
Definition Player.h:486
UNORDERED_MAP< uint32, SkillStatusData > SkillStatusMap
Definition Player.h:668
PlayerCurrencyState
Definition Player.h:181
@ PLAYERCURRENCY_CHANGED
Definition Player.h:183
@ PLAYERCURRENCY_UNCHANGED
Definition Player.h:182
@ PLAYERCURRENCY_NEW
Definition Player.h:184
@ PLAYERCURRENCY_REMOVED
Definition Player.h:185
PlayerFieldByte2Flags
Definition Player.h:584
@ PLAYER_FIELD_BYTE2_STEALTH
Definition Player.h:586
@ PLAYER_FIELD_BYTE2_INVISIBILITY_GLOW
Definition Player.h:587
@ PLAYER_FIELD_BYTE2_NONE
Definition Player.h:585
UNORDERED_MAP< uint32, uint32 > ResearchProjectMap
Definition Player.h:1278
#define MAX_RUNES
Definition Player.h:476
QuestSlotStateMask
Definition Player.h:646
@ QUEST_STATE_COMPLETE
Definition Player.h:648
@ QUEST_STATE_FAIL
Definition Player.h:649
@ QUEST_STATE_NONE
Definition Player.h:647
UNORDERED_MAP< uint32, time_t > InstanceTimeMap
Definition Player.h:306
PlayerFieldByteFlags
Definition Player.h:576
@ PLAYER_FIELD_BYTE_NO_RELEASE_WINDOW
Definition Player.h:579
@ PLAYER_FIELD_BYTE_TRACK_STEALTHED
Definition Player.h:577
@ PLAYER_FIELD_BYTE_RELEASE_TIMER
Definition Player.h:578
TransferAbortReason
Definition Player.h:788
@ TRANSFER_ABORT_ZONE_IN_COMBAT
Definition Player.h:794
@ TRANSFER_ABORT_UNIQUE_MESSAGE
Definition Player.h:797
@ TRANSFER_ABORT_ALREADY_COMPLETED_ENCOUNTER
Definition Player.h:806
@ TRANSFER_ABORT_MAP_NOT_ALLOWED
Definition Player.h:804
@ TRANSFER_ABORT_LOCKED_TO_DIFFERENT_INSTANCE
Definition Player.h:805
@ TRANSFER_ABORT_INSUF_EXPAN_LVL
Definition Player.h:795
@ TRANSFER_ABORT_TOO_MANY_INSTANCES
Definition Player.h:793
@ TRANSFER_ABORT_TOO_MANY_REALM_INSTANCES
Definition Player.h:798
PlayerExtraFlags
Definition Player.h:601
@ PLAYER_EXTRA_GM_ON
Definition Player.h:603
@ PLAYER_EXTRA_ACCEPT_WHISPERS
Definition Player.h:604
@ PLAYER_EXTRA_GM_INVISIBLE
Definition Player.h:606
@ PLAYER_EXTRA_TAXICHEAT
Definition Player.h:605
@ PLAYER_EXTRA_PVP_DEATH
Definition Player.h:610
@ PLAYER_EXTRA_GM_CHAT
Definition Player.h:607
InventoryPackSlots
Definition Player.h:718
@ INVENTORY_SLOT_ITEM_START
Definition Player.h:719
@ INVENTORY_SLOT_ITEM_END
Definition Player.h:720
void RemoveItemsSetItem(Player *player, ItemTemplate const *proto)
Definition Item.cpp:102
PlayerFlags
Definition Player.h:536
@ PLAYER_FLAGS_DND
Definition Player.h:539
@ PLAYER_FLAGS_AUTO_DECLINE_GUILD
Definition Player.h:564
@ PLAYER_FLAGS_VOID_UNLOCKED
Definition Player.h:566
@ PLAYER_FLAGS_IN_PVP
Definition Player.h:546
@ PLAYER_FLAGS_HIDE_CLOAK
Definition Player.h:548
@ PLAYER_FLAGS_PLAYED_LONG_TIME
Definition Player.h:549
@ PLAYER_FLAGS_CONTESTED_PVP
Definition Player.h:545
@ PLAYER_FLAGS_NO_XP_GAIN
Definition Player.h:562
@ PLAYER_FLAGS_UNK26
Definition Player.h:563
@ PLAYER_FLAGS_GUILD_LEVEL_ENABLED
Definition Player.h:565
@ PLAYER_FLAGS_GROUP_LEADER
Definition Player.h:537
@ PLAYER_FLAGS_RESTING
Definition Player.h:542
@ PLAYER_FLAGS_IS_OUT_OF_BOUNDS
Definition Player.h:551
@ PLAYER_FLAGS_ALLOW_ONLY_ABILITY
Definition Player.h:560
@ PLAYER_FLAGS_GHOST
Definition Player.h:541
@ PLAYER_FLAGS_AFK
Definition Player.h:538
@ PLAYER_FLAGS_UNK16
Definition Player.h:553
@ PLAYER_FLAGS_UNK20
Definition Player.h:557
@ PLAYER_FLAGS_BATTLE_PET_ENABLED
Definition Player.h:561
@ PLAYER_FLAGS_GM
Definition Player.h:540
@ PLAYER_FLAGS_TAXI_BENCHMARK
Definition Player.h:554
@ PLAYER_FLAGS_HIDE_HELM
Definition Player.h:547
@ PLAYER_FLAGS_COMMENTATOR2
Definition Player.h:559
@ PLAYER_FLAGS_UNK6
Definition Player.h:543
@ PLAYER_FLAGS_UNK31
Definition Player.h:568
@ PLAYER_FLAGS_UNK21
Definition Player.h:558
@ PLAYER_FLAGS_UNK7
Definition Player.h:544
@ PLAYER_FLAGS_DEVELOPER
Definition Player.h:552
@ PLAYER_FLAGS_PVP_TIMER
Definition Player.h:555
@ PLAYER_FLAGS_UBER
Definition Player.h:556
@ PLAYER_FLAGS_UNK30
Definition Player.h:567
@ PLAYER_FLAGS_PLAYED_TOO_LONG
Definition Player.h:550
ActionButtonUpdateState
Definition Player.h:317
uint32 const pandarenLanguageSpellsHorde[]
Definition Player.h:120
std::map< uint32, SpellCooldown > SpellCooldowns
Definition Player.h:305
ActionButtonType
Definition Player.h:325
@ ACTION_BUTTON_DROPDOWN
Definition Player.h:329
std::list< uint32 > PlayerCreateInfoSpells
Definition Player.h:405
EquipmentSetUpdateState
Definition Player.h:743
std::map< uint32, bool > QuestStatusSaveMap
Definition Player.h:632
RuneCooldowns
Definition Player.h:479
@ RUNE_MISS_COOLDOWN
Definition Player.h:481
@ RUNE_BASE_COOLDOWN
Definition Player.h:480
std::list< PlayerCreateInfoItem > PlayerCreateInfoItems
Definition Player.h:396
PlayerCommandStates
Definition Player.h:986
@ CHEAT_COOLDOWN
Definition Player.h:990
@ CHEAT_POWER
Definition Player.h:991
@ CHEAT_GOD
Definition Player.h:988
@ CHEAT_NONE
Definition Player.h:987
@ CHEAT_WATERWALK
Definition Player.h:992
@ CHEAT_CASTTIME
Definition Player.h:989
PlayerDelayedOperations
Definition Player.h:915
@ DELAYED_BG_GROUP_RESTORE
Flag to restore group state after teleport from BG.
Definition Player.h:921
@ DELAYED_END
Definition Player.h:922
@ DELAYED_SAVE_PLAYER
Definition Player.h:916
@ DELAYED_BG_MOUNT_RESTORE
Flag to restore mount state after teleport from BG.
Definition Player.h:919
@ DELAYED_BG_TAXI_RESTORE
Flag to restore taxi state after teleport from BG.
Definition Player.h:920
@ DELAYED_SPELL_CAST_DESERTER
Definition Player.h:918
@ DELAYED_RESURRECT_PLAYER
Definition Player.h:917
std::map< uint32, uint32 > QuestObjectiveStatusMap
Definition Player.h:628
BuyBackSlots
Definition Player.h:736
@ BUYBACK_SLOT_END
Definition Player.h:739
@ BUYBACK_SLOT_START
Definition Player.h:738
std::map< uint8, ActionButton > ActionButtonList
Definition Player.h:386
#define MAX_DIGSITES_PER_CONTINENT
Definition Player.h:1227
#define MAX_TIMERS
Definition Player.h:596
InventorySlots
Definition Player.h:712
@ INVENTORY_SLOT_BAG_START
Definition Player.h:713
@ INVENTORY_SLOT_BAG_END
Definition Player.h:714
UNORDERED_MAP< uint32, PlayerCurrency > PlayerCurrenciesMap
Definition Player.h:201
QuestSlotOffsets
Definition Player.h:636
@ QUEST_TIME_OFFSET
Definition Player.h:640
@ QUEST_ID_OFFSET
Definition Player.h:637
@ QUEST_COUNTS_OFFSET
Definition Player.h:639
@ QUEST_STATE_OFFSET
Definition Player.h:638
#define ACTION_BUTTON_TYPE(X)
Definition Player.h:348
BankBagSlots
Definition Player.h:730
@ BANK_SLOT_BAG_END
Definition Player.h:732
@ BANK_SLOT_BAG_START
Definition Player.h:731
std::list< PlayerCreateInfoAction > PlayerCreateInfoActions
Definition Player.h:417
BuyBankSlotResult
Definition Player.h:83
@ ERR_BANKSLOT_NOTBANKER
Definition Player.h:86
@ ERR_BANKSLOT_FAILED_TOO_MANY
Definition Player.h:84
@ ERR_BANKSLOT_OK
Definition Player.h:87
@ ERR_BANKSLOT_INSUFFICIENT_FUNDS
Definition Player.h:85
BankItemSlots
Definition Player.h:724
@ BANK_SLOT_ITEM_START
Definition Player.h:725
@ BANK_SLOT_ITEM_END
Definition Player.h:726
PlayedTimeIndex
Definition Player.h:859
@ PLAYED_TIME_TOTAL
Definition Player.h:860
@ PLAYED_TIME_LEVEL
Definition Player.h:861
EquipmentSlots
Definition Player.h:687
@ EQUIPMENT_SLOT_SHOULDERS
Definition Player.h:691
@ EQUIPMENT_SLOT_BODY
Definition Player.h:692
@ EQUIPMENT_SLOT_HANDS
Definition Player.h:698
@ EQUIPMENT_SLOT_FINGER1
Definition Player.h:699
@ EQUIPMENT_SLOT_NECK
Definition Player.h:690
@ EQUIPMENT_SLOT_FINGER2
Definition Player.h:700
@ EQUIPMENT_SLOT_MAINHAND
Definition Player.h:704
@ EQUIPMENT_SLOT_TABARD
Definition Player.h:707
@ EQUIPMENT_SLOT_TRINKET1
Definition Player.h:701
@ EQUIPMENT_SLOT_END
Definition Player.h:708
@ EQUIPMENT_SLOT_HEAD
Definition Player.h:689
@ EQUIPMENT_SLOT_LEGS
Definition Player.h:695
@ EQUIPMENT_SLOT_BACK
Definition Player.h:703
@ EQUIPMENT_SLOT_OFFHAND
Definition Player.h:705
@ EQUIPMENT_SLOT_WAIST
Definition Player.h:694
@ EQUIPMENT_SLOT_FEET
Definition Player.h:696
@ EQUIPMENT_SLOT_CHEST
Definition Player.h:693
@ EQUIPMENT_SLOT_WRISTS
Definition Player.h:697
@ EQUIPMENT_SLOT_TRINKET2
Definition Player.h:702
@ EQUIPMENT_SLOT_START
Definition Player.h:688
std::map< uint32, bool > QuestObjectiveStatusSaveMap
Definition Player.h:633
SpellModType
Definition Player.h:65
@ SPELLMOD_FLAT
Definition Player.h:66
@ SPELLMOD_PCT
Definition Player.h:67
#define MAX_PLAYED_TIME_INDEX
Definition Player.h:864
PlayerUnderwaterState
Definition Player.h:72
@ UNDERWATER_NONE
Definition Player.h:73
@ UNDERWATER_INSLIME
Definition Player.h:76
@ UNDERWATER_EXIST_TIMERS
Definition Player.h:79
@ UNDERWATER_INWATER
Definition Player.h:74
@ UNDERWATER_INLAVA
Definition Player.h:75
@ UNDERWARER_INDARKWATER
Definition Player.h:77
InstanceResetWarningType
Definition Player.h:810
@ RAID_INSTANCE_WARNING_MIN
Definition Player.h:812
@ RAID_INSTANCE_EXPIRED
Definition Player.h:815
@ RAID_INSTANCE_WARNING_MIN_SOON
Definition Player.h:813
@ RAID_INSTANCE_WARNING_HOURS
Definition Player.h:811
@ RAID_INSTANCE_WELCOME
Definition Player.h:814
std::map< uint32, EquipmentSet > EquipmentSets
Definition Player.h:768
CUFBoolOptions
Bit index used in the many bool options of CompactUnitFrames.
Definition Player.h:210
@ CUF_DISPLAY_NON_BOSS_DEBUFFS
Definition Player.h:220
@ CUF_AUTO_ACTIVATE_40_PLAYERS
Definition Player.h:230
@ CUF_DISPLAY_HEAL_PREDICTION
Definition Player.h:214
@ CUF_UNK_157
Definition Player.h:237
@ CUF_AUTO_ACTIVATE_5_PLAYERS
Definition Player.h:226
@ CUF_AUTO_ACTIVATE_3_PLAYERS
Definition Player.h:225
@ CUF_DISPLAY_HORIZONTAL_GROUPS
Definition Player.h:221
@ CUF_AUTO_ACTIVATE_PVE
Definition Player.h:234
@ CUF_AUTO_ACTIVATE_SPEC_1
Definition Player.h:231
@ CUF_UNK_145
Definition Player.h:235
@ CUF_USE_CLASS_COLORS
Definition Player.h:219
@ CUF_AUTO_ACTIVATE_PVP
Definition Player.h:233
@ CUF_DISPLAY_MAIN_TANK_AND_ASSIST
Definition Player.h:213
@ CUF_DISPLAY_ONLY_DISPELLABLE_DEBUFFS
Definition Player.h:216
@ CUF_AUTO_ACTIVATE_SPEC_2
Definition Player.h:232
@ CUF_UNK_156
Definition Player.h:236
@ CUF_LOCKED
Definition Player.h:222
@ CUF_AUTO_ACTIVATE_2_PLAYERS
Definition Player.h:224
@ CUF_SHOWN
Definition Player.h:223
@ CUF_DISPLAY_POWER_BAR
Definition Player.h:217
@ CUF_DISPLAY_AGGRO_HIGHLIGHT
Definition Player.h:215
@ CUF_AUTO_ACTIVATE_25_PLAYERS
Definition Player.h:229
@ CUF_KEEP_GROUPS_TOGETHER
Definition Player.h:211
@ CUF_BOOL_OPTIONS_COUNT
Definition Player.h:241
@ CUF_DISPLAY_BORDER
Definition Player.h:218
@ CUF_DISPLAY_PETS
Definition Player.h:212
@ CUF_AUTO_ACTIVATE_10_PLAYERS
Definition Player.h:227
@ CUF_AUTO_ACTIVATE_15_PLAYERS
Definition Player.h:228
AtLoginFlags
Definition Player.h:615
@ AT_LOGIN_RESET_TALENTS
Definition Player.h:619
@ AT_LOGIN_RESET_SPELLS
Definition Player.h:618
@ AT_LOGIN_NONE
Definition Player.h:616
@ AT_LOGIN_RESET_PET_TALENTS
Definition Player.h:621
@ AT_LOGIN_FIRST
Definition Player.h:622
@ AT_LOGIN_CUSTOMIZE
Definition Player.h:620
@ AT_LOGIN_RENAME
Definition Player.h:617
@ AT_LOGIN_CHANGE_RACE
Definition Player.h:624
@ AT_LOGIN_CHANGE_FACTION
Definition Player.h:623
CharDeleteMethod
Definition Player.h:954
@ CHAR_DELETE_REMOVE
Definition Player.h:955
@ CHAR_DELETE_UNLINK
Definition Player.h:956
TalentTree
Definition Player.h:130
@ TALENT_TREE_HUNTER_SURVIVAL
Definition Player.h:139
@ TALENT_TREE_DEATH_KNIGHT_FROST
Definition Player.h:147
@ TALENT_TREE_MAGE_FIRE
Definition Player.h:153
@ TALENT_TREE_PRIEST_SHADOW
Definition Player.h:145
@ TALENT_TREE_DEATH_KNIGHT_BLOOD
Definition Player.h:146
@ TALENT_TREE_DRUID_RESTORATION
Definition Player.h:160
@ TALENT_TREE_SHAMAN_ELEMENTAL
Definition Player.h:149
@ TALENT_TREE_SHAMAN_RESTORATION
Definition Player.h:151
@ TALENT_TREE_PALADIN_PROTECTION
Definition Player.h:135
@ TALENT_TREE_HUNTER_BEAST_MASTERY
Definition Player.h:137
@ TALENT_TREE_DRUID_FERAL_COMBAT
Definition Player.h:159
@ TALENT_TREE_WARLOCK_DEMONOLOGY
Definition Player.h:156
@ TALENT_TREE_WARRIOR_FURY
Definition Player.h:132
@ TALENT_TREE_WARLOCK_DESTRUCTION
Definition Player.h:157
@ TALENT_TREE_ROGUE_ASSASSINATION
Definition Player.h:140
@ TALENT_TREE_DEATH_KNIGHT_UNHOLY
Definition Player.h:148
@ TALENT_TREE_WARLOCK_AFFLICTION
Definition Player.h:155
@ TALENT_TREE_PRIEST_HOLY
Definition Player.h:144
@ TALENT_TREE_MONK_WINDWALKER
Definition Player.h:163
@ TALENT_TREE_SHAMAN_ENHANCEMENT
Definition Player.h:150
@ TALENT_TREE_MAGE_ARCANE
Definition Player.h:152
@ TALENT_TREE_PALADIN_HOLY
Definition Player.h:134
@ TALENT_TREE_MAGE_FROST
Definition Player.h:154
@ TALENT_TREE_WARRIOR_ARMS
Definition Player.h:131
@ TALENT_TREE_DRUID_BALANCE
Definition Player.h:158
@ TALENT_TREE_ROGUE_COMBAT
Definition Player.h:141
@ TALENT_TREE_HUNTER_MARKSMANSHIP
Definition Player.h:138
@ TALENT_TREE_MONK_MISTWEAVER
Definition Player.h:162
@ TALENT_TREE_PALADIN_RETRIBUTION
Definition Player.h:136
@ TALENT_TREE_MONK_BREWMASTER
Definition Player.h:161
@ TALENT_TREE_ROGUE_SUBTLETY
Definition Player.h:142
@ TALENT_TREE_WARRIOR_PROTECTION
Definition Player.h:133
@ TALENT_TREE_PRIEST_DISCIPLINE
Definition Player.h:143
PlayerRestState
Definition Player.h:979
@ REST_STATE_RESTED
Definition Player.h:980
@ REST_STATE_RAF_LINKED
Definition Player.h:982
@ REST_STATE_NOT_RAF_LINKED
Definition Player.h:981
#define ACTION_BUTTON_ACTION(X)
Definition Player.h:347
std::list< EnchantDuration > EnchantDurationList
Definition Player.h:531
MirrorTimerType
Definition Player.h:591
@ FIRE_TIMER
Definition Player.h:594
@ FATIGUE_TIMER
Definition Player.h:592
@ BREATH_TIMER
Definition Player.h:593
SkillUpdateState
Definition Player.h:653
TradeSlots
Definition Player.h:780
@ TRADE_SLOT_COUNT
Definition Player.h:781
@ TRADE_SLOT_TRADED_COUNT
Definition Player.h:782
@ TRADE_SLOT_INVALID
Definition Player.h:784
@ TRADE_SLOT_NONTRADED
Definition Player.h:783
ReputationSource
Definition Player.h:337
@ REPUTATION_SOURCE_KILL
Definition Player.h:338
@ REPUTATION_SOURCE_SPELL
Definition Player.h:344
@ REPUTATION_SOURCE_QUEST
Definition Player.h:339
@ REPUTATION_SOURCE_MONTHLY_QUEST
Definition Player.h:342
@ REPUTATION_SOURCE_REPEATABLE_QUEST
Definition Player.h:343
@ REPUTATION_SOURCE_WEEKLY_QUEST
Definition Player.h:341
@ REPUTATION_SOURCE_DAILY_QUEST
Definition Player.h:340
PlayerChatTag
Definition Player.h:849
@ CHAT_TAG_COM
Definition Player.h:854
@ CHAT_TAG_DND
Definition Player.h:852
@ CHAT_TAG_DEV
Definition Player.h:855
@ CHAT_TAG_AFK
Definition Player.h:851
@ CHAT_TAG_GM
Definition Player.h:853
@ CHAT_TAG_NONE
Definition Player.h:850
std::list< uint64 > WhisperListContainer
Definition Player.h:203
std::map< uint32, QuestStatusData > QuestStatusMap
Definition Player.h:627
std::set< uint32 > RewardedQuestSet
Definition Player.h:629
PlayerSpellState
Definition Player.h:91
@ PLAYERSPELL_REMOVED
Definition Player.h:95
@ PLAYERSPELL_UNCHANGED
Definition Player.h:92
@ PLAYERSPELL_CHANGED
Definition Player.h:93
@ PLAYERSPELL_NEW
Definition Player.h:94
@ PLAYERSPELL_TEMPORARY
Definition Player.h:96
#define RESEARCH_CONTINENT_COUNT
Definition Player.h:1225
AttackSwingError
Definition Player.h:1281
@ ATTACKSWINGERR_CANT_ATTACK
Definition Player.h:1285
@ ATTACKSWINGERR_BADFACING
Definition Player.h:1283
@ ATTACKSWINGERR_DEADTARGET
Definition Player.h:1284
@ ATTACKSWINGERR_NOTINRANGE
Definition Player.h:1282
PlayerSlots
Definition Player.h:676
@ PLAYER_SLOTS_COUNT
Definition Player.h:681
@ PLAYER_SLOT_START
Definition Player.h:678
@ PLAYER_SLOT_END
Definition Player.h:680
#define MAX_CUF_PROFILES
Maximum number of CompactUnitFrames profiles.
Definition Player.h:206
PlayerLoginQueryIndex
Definition Player.h:868
@ PLAYER_LOGIN_QUERY_LOAD_SPELL_COOLDOWNS
Definition Player.h:883
@ PLAYER_LOGIN_QUERY_LOAD_CURRENCY
Definition Player.h:903
@ PLAYER_LOGIN_QUERY_LOAD_RESEARCH_HISTORY
Definition Player.h:909
@ PLAYER_LOGIN_QUERY_LOAD_GLYPHS
Definition Player.h:891
@ PLAYER_LOGIN_QUERY_LOAD_DECLINED_NAMES
Definition Player.h:884
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS_REW
Definition Player.h:898
@ MAX_PLAYER_LOGIN_QUERY
Definition Player.h:911
@ PLAYER_LOGIN_QUERY_LOAD_DAILY_QUEST_STATUS
Definition Player.h:875
@ PLAYER_LOGIN_QUERY_LOAD_INSTANCE_LOCK_TIMES
Definition Player.h:899
@ PLAYER_LOGIN_QUERY_LOAD_SEASONAL_QUEST_STATUS
Definition Player.h:900
@ PLAYER_LOGIN_QUERY_LOAD_SOCIAL_LIST
Definition Player.h:881
@ PLAYER_LOGIN_QUERY_LOAD_ACTIONS
Definition Player.h:878
@ PLAYER_LOGIN_QUERY_LOAD_SKILLS
Definition Player.h:894
@ PLAYER_LOGIN_QUERY_LOAD_BG_DATA
Definition Player.h:890
@ PLAYER_LOGIN_QUERY_LOAD_ACCOUNT_DATA
Definition Player.h:893
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_DATE
Definition Player.h:880
@ PLAYER_LOGIN_QUERY_LOAD_VOID_STORAGE
Definition Player.h:902
@ PLAYER_LOGIN_QUERY_LOAD_INVENTORY
Definition Player.h:877
@ PLAYER_LOGIN_QUERY_LOAD_REPUTATION
Definition Player.h:876
@ PLAYER_LOGIN_QUERY_LOAD_RESEARCH_PROJECTS
Definition Player.h:910
@ PLAYER_LOGIN_QUERY_LOAD_MAIL_COUNT
Definition Player.h:879
@ PLAYER_LOGIN_QUERY_LOAD_FROM
Definition Player.h:869
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_STATUS
Definition Player.h:874
@ PLAYER_LOGIN_QUERY_LOAD_BATTLE_PET_SLOTS
Definition Player.h:906
@ PLAYER_LOGIN_QUERY_LOAD_BATTLE_PETS
Definition Player.h:905
@ PLAYER_LOGIN_QUERY_LOAD_RESEARCH_DIGSITES
Definition Player.h:908
@ PLAYER_LOGIN_QUERY_LOAD_WEEKLY_QUEST_STATUS
Definition Player.h:895
@ PLAYER_LOGIN_QUERY_LOAD_MONTHLY_QUEST_STATUS
Definition Player.h:901
@ PLAYER_LOGIN_QUERY_LOAD_GUILD
Definition Player.h:885
@ PLAYER_LOGIN_QUERY_LOAD_EQUIPMENT_SETS
Definition Player.h:889
@ PLAYER_LOGIN_QUERY_LOAD_AURAS
Definition Player.h:872
@ PLAYER_LOGIN_QUERY_LOAD_TALENTS
Definition Player.h:892
@ PLAYER_LOGIN_QUERY_LOAD_BANNED
Definition Player.h:897
@ PLAYER_LOGIN_QUERY_LOAD_QUEST_OBJECTIVE_STATUS
Definition Player.h:907
@ PLAYER_LOGIN_QUERY_LOAD_GROUP
Definition Player.h:870
@ PLAYER_LOGIN_QUERY_LOAD_CRITERIA_PROGRESS
Definition Player.h:888
@ PLAYER_LOGIN_QUERY_LOAD_HOME_BIND
Definition Player.h:882
@ PLAYER_LOGIN_QUERY_LOAD_SPELLS
Definition Player.h:873
@ PLAYER_LOGIN_QUERY_LOAD_BOUND_INSTANCES
Definition Player.h:871
@ PLAYER_LOGIN_QUERY_LOAD_CUF_PROFILES
Definition Player.h:904
@ PLAYER_LOGIN_QUERY_LOAD_RANDOM_BG
Definition Player.h:896
@ PLAYER_LOGIN_QUERY_LOAD_ACHIEVEMENTS
Definition Player.h:887
UNORDERED_MAP< uint32, ResearchProjectHistory > ResearchHistoryMap
Definition Player.h:1277
std::list< Item * > ItemDurationList
Definition Player.h:532
RestType
Definition Player.h:821
@ REST_TYPE_NO
Definition Player.h:822
@ REST_TYPE_IN_CITY
Definition Player.h:824
@ REST_TYPE_IN_TAVERN
Definition Player.h:823
Skyfire::AutoPtr< PreparedResultSet, Skyfire::Mutex > PreparedQueryResult
Definition QueryResult.h:94
QuestFailedReason
Definition QuestDef.h:34
QuestStatus
Definition QuestDef.h:85
GameobjectTypes
#define MAX_STATS
Powers
#define MAX_TALENT_SPECS
#define MAX_POWERS_PER_CLASS
GameError
Language
MailResponseType
Gender
@ GENDER_FEMALE
BattlegroundQueueTypeId
TradeStatus
@ TRADE_STATUS_CANCELLED
RemoveMethod
@ GROUP_REMOVEMETHOD_DEFAULT
#define VOID_STORAGE_MAX_SLOT
TeamId
@ TEAM_ALLIANCE
@ TEAM_HORDE
DuelCompleteType
#define MAX_GLYPH_SLOT_INDEX
MailResponseResult
@ ALLIANCE
ReputationRank
BattlegroundTypeId
#define CLASSMASK_ALL_PLAYABLE
Stats
#define RACEMASK_ALL_PLAYABLE
DrunkenState
#define PLAYER_MAX_BATTLEGROUND_QUEUES
PartyResult
SpellSchoolMask
@ SPELL_AURA_ALLOW_TAME_PET_TYPE
#define sSpellMgr
Definition SpellMgr.h:744
Skyfire::AutoPtr< Transaction, Skyfire::Mutex > SQLTransaction
Definition Transaction.h:42
@ MOVEMENTFLAG_CAN_FLY
Definition Unit.h:746
BaseModType
Definition Unit.h:495
@ FLAT_MOD
Definition Unit.h:496
@ MOD_END
Definition Unit.h:498
@ PCT_MOD
Definition Unit.h:497
WeaponAttackType
Definition Unit.h:572
SpellModOp
Definition Unit.h:72
@ SPELLMOD_DAMAGE
Definition Unit.h:73
@ SPELLMOD_CASTING_TIME
Definition Unit.h:83
DeathState
Definition Unit.h:502
#define MAX_MOVE_TYPE
Definition Unit.h:566
#define MAX_COMBAT_RATING
Definition Unit.h:610
BaseModGroup
Definition Unit.h:486
@ BASEMOD_END
Definition Unit.h:491
CombatRating
Definition Unit.h:580
@ NULL_BAG
Definition Unit.h:336
@ NULL_SLOT
Definition Unit.h:337
SheathState
Definition Unit.h:244
#define MAX_SPELLMOD
Definition Unit.h:110
#define UNORDERED_MAP
@ UNIT_FIELD_TARGET
@ OBJECT_FIELD_DATA
@ PLAYER_FIELD_COINAGE
@ PLAYER_FIELD_CHARACTER_POINTS
@ PLAYER_FIELD_SHIELD_BLOCK
@ PLAYER_FIELD_GLYPH_SLOTS
@ PLAYER_FIELD_PLAYER_FLAGS
@ PLAYER_FIELD_GUILD_RANK_ID
@ PLAYER_FIELD_ARENA_FACTION
@ PLAYER_FIELD_LOOT_SPEC_ID
@ PLAYER_FIELD_GUILD_LEVEL
@ PLAYER_FIELD_REST_STATE
T CalculatePct(T base, U pct)
Definition Util.h:103
Definition Bag.h:16
Cinematic sequence.
Definition Field.h:16
Definition Group.h:147
Definition Guild.h:324
Definition Item.h:202
void AddToUpdateQueueOf(Player *player)
Definition Item.cpp:694
void RemoveFromUpdateQueueOf(Player *player)
Definition Item.cpp:714
uint32 GetCount() const
Definition Item.h:258
uint8 _maxLevel
Definition Player.h:1169
uint32 _count
Definition Player.h:1165
void _RewardHonor(Player *player)
Definition Player.cpp:340
void _RewardPlayer(Player *player, bool isDungeon)
Definition Player.cpp:400
float _groupRate
Definition Player.h:1163
void _InitXP(Player *player)
Definition Player.cpp:329
uint32 _xp
Definition Player.h:1167
void _RewardReputation(Player *player, float rate)
Definition Player.cpp:382
uint32 _sumLevel
Definition Player.h:1166
void _RewardGroup()
Definition Player.cpp:430
Player * _maxNotGrayMember
Definition Player.h:1164
Unit * _victim
Definition Player.h:1161
Player * _killer
Definition Player.h:1160
bool _isBattleGround
Definition Player.h:1170
Group * _group
Definition Player.h:1162
void _RewardXP(Player *player, float rate)
Definition Player.cpp:347
void _InitGroupData()
Definition Player.cpp:298
bool _isFullXP
Definition Player.h:1168
bool _isPvP
Definition Player.h:1171
KillRewarder(Player *killer, Unit *victim, bool isBattleGround)
Definition Player.cpp:282
void Reward()
Definition Player.cpp:467
void _RewardKillCredit(Player *player)
Definition Player.cpp:389
Definition Map.h:238
uint8 GetByteValue(uint16 index, uint8 offset) const
Definition Object.cpp:343
void SetByteValue(uint16 index, uint8 offset, uint8 value)
Definition Object.cpp:1158
uint64 GetGUID() const
Definition Object.h:119
uint32 GetUInt32Value(uint16 index) const
Definition Object.cpp:325
void SetFlag(uint16 index, uint32 newFlag)
Definition Object.cpp:1261
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition Object.cpp:1280
uint32 GetEntry() const
Definition Object.h:125
uint64 GetUInt64Value(uint16 index) const
Definition Object.cpp:331
bool HasFlag(uint16 index, uint32 flag) const
Definition Object.cpp:1309
void SetUInt32Value(uint16 index, uint32 value)
Definition Object.cpp:1038
void SetUInt64Value(uint16 index, uint64 value)
Definition Object.cpp:1079
Definition Pet.h:28
bool m_bCanDelayTeleport
Definition Player.h:3580
bool BuyCurrencyFromVendorSlot(ObjectGuid VendorGUID, uint32 vendorSlot, uint32 currency, uint32 count)
Definition Player.cpp:17023
void SetSemaphoreTeleportNear(bool semphsetting)
Definition Player.h:2505
void setFactionForRace(uint8 race)
Definition Player.cpp:7090
bool StoreNewItemInBestSlots(uint32 item_id, uint32 item_count)
void AddNewMailDeliverTime(time_t deliver_time)
bool IsAtRecruitAFriendDistance(WorldObject const *pOther) const
Definition Player.cpp:19803
void SendNotifyLootMoneyRemoved(ObjectGuid guid)
Definition Player.cpp:9681
void UpdateParryPercentage()
void ReputationChanged(FactionEntry const *factionEntry)
float inn_pos_x
Definition Player.h:3469
bool CanSpeak() const
Definition Player.cpp:15397
int8 GetComboPoints() const
Definition Player.h:1982
void SendMirrorTimer(MirrorTimerType Type, uint32 MaxValue, uint32 CurrentValue, int32 Regen)
Definition Player.cpp:1082
InstanceTimeMap _instanceResetTimes
Definition Player.h:3600
bool m_canParry
Definition Player.h:3461
void CleanupChannels()
Definition Player.cpp:5659
void UpdateMastery()
ItemMap mMitems
Definition Player.h:2029
time_t m_summon_expire
Definition Player.h:3496
float GetInnPosZ() const
Definition Player.h:1461
MapReference m_mapRef
Definition Player.h:3558
void SendEquipError(InventoryResult msg, Item *pItem, Item *pItem2=NULL, uint32 itemid=0)
static uint32 GetGuildIdFromDB(uint64 guid)
Definition Player.cpp:8020
void UpdateAllSpellCritChances()
void Initialize(uint32 guid)
Definition Player.cpp:12051
void UpdateArmorPenetration(int32 amount)
void CheckAreaExploreAndOutdoor(void)
Definition Player.cpp:6996
static uint32 GetUInt32ValueFromArray(Tokenizer const &data, uint16 index)
Definition Player.cpp:12158
void SendInitialPacketsAfterAddToMap()
Definition Player.cpp:18646
float inn_pos_y
Definition Player.h:3470
void ResetSeasonalQuestStatus(uint16 event_id)
Definition Player.cpp:19192
uint8 GetGrantableLevels() const
Definition Player.h:2546
static DifficultyID CheckLoadedRaidDifficultyID(DifficultyID difficulty)
Definition Player.cpp:20782
void _LoadDeclinedNames(PreparedQueryResult result)
Definition Player.cpp:12056
void ActivateSpec(uint8 spec)
Definition Player.cpp:21799
uint32 GetCurrencyOnWeek(uint32 id, bool usePrecision) const
return count of currency gaind on current week
Definition Player.cpp:7660
void Yell(std::string const &text, const Language language)
Handles yelled message in regular chat based on declared language and in config pre-defined Range.
Definition Player.cpp:15807
void UpdateRestAreaState()
Definition Player.cpp:1827
void UnbindInstance(uint32 mapid, DifficultyID difficulty, bool unload=false)
Definition Player.cpp:13904
std::string GetMapAreaAndZoneString()
Definition Player.cpp:22637
void ItemRemovedQuestCheck(uint32 entry, uint32 count)
void SendExplorationExperience(uint32 Area, uint32 Experience)
Definition Player.cpp:15481
uint32 GetArmorProficiency() const
Definition Player.h:1677
GroupReference m_originalGroup
Definition Player.h:3486
static bool IsEquipmentPos(uint16 pos)
Definition Player.h:1536
PlayerSpellMap m_spells
Definition Player.h:3403
float m_rest_bonus
Definition Player.h:3477
float GetMeleeCritFromAgility()
Definition Player.cpp:5820
uint32 GetTeam() const
Definition Player.h:2527
void SetSpellModTakingSpell(Spell *spell, bool apply)
Definition Player.cpp:16426
bool HasTitle(uint32 bitIndex)
Definition Player.cpp:20424
void _ApplyAllLevelScaleItemMods(bool apply)
Definition Player.cpp:9262
bool _StoreOrEquipNewItem(uint32 vendorslot, uint32 item, uint8 count, uint8 bag, uint8 slot, int32 price, ItemTemplate const *pProto, Creature *pVendor, VendorItem const *crItem, bool bStore)
Definition Player.cpp:16951
InventoryResult CanUnequipItem(uint16 src, bool swap) const
void RewardQuest(Quest const *quest, uint32 reward, Object *questGiver, bool announce=true)
void AutoStoreLoot(uint8 bag, uint8 slot, uint32 loot_id, LootStore const &store, bool broadcast=false)
Definition Player.cpp:20654
void RemoveAtLoginFlag(AtLoginFlags flags, bool persist=false)
Definition Player.cpp:21581
void SendPreparedQuest(uint64 guid)
void SetTalentResetTime(time_t time_)
Definition Player.h:2074
void SetInGuild(uint32 guildId)
Definition Player.cpp:8009
uint32 m_temporaryUnsummonedPetNumber
Definition Player.h:3584
bool IsBaseRuneSlotsOnCooldown(RuneType runeType) const
Definition Player.cpp:20645
void SendCinematicStart(uint32 CinematicSequenceId)
Definition Player.cpp:6960
QuestStatusMap m_QuestStatus
Definition Player.h:3390
std::set< uint32 > SeasonalQuestSet
Definition Player.h:3264
float m_powerFraction[MAX_POWERS_PER_CLASS]
Definition Player.h:3237
uint32 m_ChampioningFaction
Definition Player.h:3592
void CalculateMinMaxDamage(WeaponAttackType attType, bool normalized, bool addTotalPct, float &min_damage, float &max_damage)
void RemoveRunesByAuraEffect(AuraEffect const *aura)
Definition Player.cpp:20552
uint32 GetQuestObjectiveCounter(uint32 objectiveId) const
bool InBattlegroundQueueForBattlegroundQueueType(BattlegroundQueueTypeId bgQueueTypeId) const
Definition Player.cpp:19249
void _LoadCUFProfiles(PreparedQueryResult result)
Definition Player.cpp:12849
void SendAttackSwingCancelAttack()
Definition Player.cpp:15465
void SendRaidDifficulty(int32 forcedDifficulty=-1)
Definition Player.cpp:15496
bool m_bHasDelayedTeleport
Definition Player.h:3581
void ScheduleDelayedOperation(uint32 operation)
Definition Player.h:3553
bool m_InstanceValid
Definition Player.h:2922
void SaveInventoryAndGoldToDB(SQLTransaction &trans)
Definition Player.cpp:14609
static bool BuildEnumData(PreparedQueryResult result, ByteBuffer *dataBuffer, ByteBuffer *bitBuffer, bool boosted=false)
Definition Player.cpp:1860
void UpdateRuneRegen(RuneType rune)
void removeActionButton(uint8 button)
Definition Player.cpp:6820
WorldLocation & GetTeleportDest()
Definition Player.h:2489
DifficultyID m_dungeonDifficulty
Definition Player.h:3361
bool CanUseBattlegroundObject(GameObject *gameobject)
Definition Player.cpp:20321
void SetBGTeam(uint32 team)
Definition Player.cpp:17973
void StartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry, uint32 timeLost=0)
Definition Player.cpp:21018
bool IsKnowHowFlyIn(uint32 mapid, uint32 zone) const
Definition Player.cpp:20800
void _SaveWeeklyQuestStatus(SQLTransaction &trans)
Definition Player.cpp:15127
std::set< uint64 > ClientGUIDs
Definition Player.h:2856
void UpdateResearchDigsites()
Definition Player.cpp:23427
void HandleFall(MovementInfo const &movementInfo)
Definition Player.cpp:20949
void SendInitialSpells()
Definition Player.cpp:3494
time_t m_deathExpireTime
Definition Player.h:3454
void SetLastPotionId(uint32 item_id)
Definition Player.h:2190
int32 GetQuestLevel(Quest const *quest) const
Definition Player.h:1741
uint8 GetChatTag() const
Definition Player.cpp:2074
void UpdateDamagePhysical(WeaponAttackType attType) override
float GetHealthBonusFromStamina()
InstancePlayerBind * GetBoundInstance(uint32 mapid, DifficultyID difficulty)
Definition Player.cpp:13877
void _LoadResearchProjects(PreparedQueryResult result)
Definition Player.cpp:23590
void RemoveItemDependentAurasAndCasts(Item *pItem)
Definition Player.cpp:19622
void _SaveMail(SQLTransaction &trans)
Definition Player.cpp:14923
void Whisper(std::string const &text, const Language language, uint64 receiver)
Handles whispers from Addons and players based on sender, receiver's guid and language.
Definition Player.cpp:15840
void SetOriginalGroup(Group *group, int8 subgroup=-1)
Definition Player.cpp:20141
bool HasPvPForcingQuest() const
void TalkedToCreature(uint32 entry, uint64 guid)
void SendProficiency(ItemClass itemClass, uint32 itemSubclassMask)
Definition Player.cpp:16438
void UpdateNextMailTimeAndUnreads()
bool AddItem(uint32 itemId, uint32 count)
Definition Player.cpp:22238
uint64 GetAuraUpdateMaskForRaid() const
Definition Player.h:2997
bool SatisfyQuestSeasonal(Quest const *qInfo, bool msg)
float GetInnAreaBoxOrientation() const
Definition Player.h:1481
uint32 GetNextResetTalentsCost() const
Definition Player.cpp:4464
uint32 m_chiPowerDegenTimerCount
Definition Player.h:3235
bool IsInSameRaidWith(Player const *p) const
Definition Player.cpp:3030
void RemoveSpellMods(Spell *spell)
Definition Player.cpp:16377
ReputationMgr * m_reputationMgr
Definition Player.h:3588
uint32 GetBGTeam() const
Definition Player.cpp:17979
void UpdateEnchantTime(uint32 time)
Definition Player.cpp:10794
std::vector< Item * > m_itemUpdateQueue
Definition Player.h:3382
float m_auraBaseMod[BASEMOD_END][MOD_END]
Definition Player.h:3412
WorldLocation m_teleport_dest
Definition Player.h:3574
void ToggleMetaGemsActive(uint8 exceptslot, bool apply)
Definition Player.cpp:17897
bool ModifyMoney(int64 amount, bool sendError=true)
Definition Player.cpp:18342
void SendCanTakeQuestResponse(QuestFailedReason msg) const
uint8 GetCUFProfilesCount() const
Definition Player.h:1873
uint32 GetSaveTimer() const
Definition Player.h:2827
InventoryResult CanEquipItem(uint8 slot, uint16 &dest, Item *pItem, bool swap, bool not_loading=true) const
uint8 GetRank() const
Definition Player.h:2275
bool UpdateFishingSkill()
Definition Player.cpp:6221
void InitPrimaryProfessions()
Definition Player.cpp:18337
void SetChampioningType(uint8 type)
Definition Player.h:3134
bool HasResearchingProject(uint32 projectId) const
Definition Player.h:3215
void InitTalentForLevel()
Definition Player.cpp:3283
bool isGMVisible() const
Definition Player.h:1390
void SetGuildIdInvited(uint32 GuildId)
Definition Player.h:2287
void UpdateDodgePercentage()
void TextEmote(std::string const &text)
Outputs an universal text which is supposed to be an action.
Definition Player.cpp:15817
ClientGUIDs m_clientGUIDs
Definition Player.h:2857
std::set< uint32 > m_refundableItems
Definition Player.h:3527
PlayerTalentInfo * _talentMgr
Definition Player.h:3408
void SetDivider(uint64 guid)
Definition Player.h:1842
float m_homebindZ
Definition Player.h:2851
void SendRemoveControlBar()
Definition Player.cpp:16204
static void DeleteOldCharacters()
Definition Player.cpp:5113
void _LoadGlyphs(PreparedQueryResult result)
Definition Player.cpp:21661
BattlegroundTypeId GetBattlegroundTypeId() const
Definition Player.h:2701
void _LoadBGData(PreparedQueryResult result)
Definition Player.cpp:12098
uint16 GetQuestSlotCounter(uint16 slot, uint8 counter) const
uint32 GetGuildId() const
Definition Player.h:2291
InventoryResult CanEquipNewItem(uint8 slot, uint16 &dest, uint32 item, bool swap) const
ResearchDigsite * GetResearchDigsiteForFind(GameObject const *go) const
Definition Player.cpp:23322
bool IsBeingTeleportedFar() const
Definition Player.h:2501
ResearchDigsite * GetCurrentResearchDigsite()
Definition Player.cpp:23479
float GetTotalPercentageModValue(BaseModGroup modGroup) const
Definition Player.h:2637
void UpdateLocalChannels(uint32 newZone)
Definition Player.cpp:5672
uint32 m_lastFallTime
Definition Player.h:3562
void _LoadQuestObjectiveStatus(PreparedQueryResult result)
Definition Player.cpp:13578
void InitGlyphsForLevel()
Definition Player.cpp:20384
ItemDurationList m_itemDuration
Definition Player.h:3422
void UpdateContestedPvP(uint32 currTime)
Definition Player.cpp:15594
uint32 m_lastPotionId
Definition Player.h:3404
void SetRestTime(uint32 v)
Definition Player.h:2784
void _SaveSpellCooldowns(SQLTransaction &trans)
Definition Player.cpp:4393
void SetLastUsedRune(RuneType type)
Definition Player.h:3079
void GiveLevel(uint8 level)
Definition Player.cpp:3166
QuestStatusMap & getQuestStatusMap()
Definition Player.h:1961
void _SaveCurrency(SQLTransaction &trans)
Definition Player.cpp:7503
void BuildPetTalentsInfoData(WorldPacket *data)
Definition Player.cpp:21234
void SendUpdateToOutOfRangeGroupMembers()
Definition Player.cpp:18702
bool SatisfyQuestExclusiveGroup(Quest const *qInfo, bool msg)
ResearchProjectMap _researchProjects
Definition Player.h:3516
void UpdateMaxPower(Powers power) override
void IncompleteQuest(uint32 quest_id)
void Regenerate(Powers power)
Definition Player.cpp:2559
ResearchDigsiteInfo const * GetRandomResearchDigsiteForContinent(uint32 mapId)
Definition Player.cpp:23507
void SetGroupUpdateFlag(uint32 flag)
Definition Player.h:2993
uint32 GetSpecializationResetTime() const
Definition Player.h:2071
uint32 GetTemporaryUnsummonedPetNumber() const
Definition Player.h:2893
Bag * GetBagByPos(uint8 slot) const
bool isUsingLfg()
Definition Player.cpp:20097
void SetSeer(WorldObject *target)
Definition Player.h:2818
uint32 _readyCheckTimer
Definition Player.h:3447
uint32 EnvironmentalDamage(EnviromentalDamage type, uint32 damage)
Definition Player.cpp:1115
void ApplyItemEquipSpell(Item *item, bool apply, bool form_change=false)
Definition Player.cpp:8818
void _LoadVoidStorage(PreparedQueryResult result)
Definition Player.cpp:13205
bool CanParry() const
Definition Player.h:2611
void SetGameMaster(bool on)
Definition Player.cpp:2944
void KillPlayer()
Definition Player.cpp:5284
void QuickEquipItem(uint16 pos, Item *pItem)
AchievementMgr< Player > * m_achievementMgr
Definition Player.h:3587
std::string autoReplyMsg
Definition Player.h:1342
uint32 GetTotalPlayedTime() const
Definition Player.h:1424
void ApplyRatingMod(CombatRating cr, int32 value, bool apply)
Definition Player.cpp:5966
void ResetContestedPvP()
Definition Player.cpp:15606
void _LoadQuestStatusRewarded(PreparedQueryResult result)
Definition Player.cpp:13617
bool m_MonthlyQuestChanged
Definition Player.h:3441
ResearchHistoryMap _researchHistory
Definition Player.h:3517
DifficultyID m_raidMapDifficulty
Definition Player.h:3363
void DuelComplete(DuelCompleteType type)
Definition Player.cpp:8277
RewardedQuestSet const & getRewardedQuests() const
Definition Player.h:1957
void UpdateCritPercentage(WeaponAttackType attType)
uint8 GetDrunkValue() const
Definition Player.h:2594
void learnDefaultSpells()
Definition Player.cpp:18837
InventoryResult CanRollForItemInLFG(ItemTemplate const *item, WorldObject const *lootedObject) const
void SetRuneCooldown(uint8 index, uint32 cooldown)
Definition Player.cpp:20536
PlayerSocial * m_social
Definition Player.h:3482
bool HasItemFitToSpellRequirements(SpellInfo const *spellInfo, Item const *ignoreItem=NULL) const
Definition Player.cpp:19557
SkillStatusMap mSkillStatus
Definition Player.h:3398
uint32 m_restTime
Definition Player.h:3456
void SendSellResponse(SellResult msg, ObjectGuid VendorGUID, ObjectGuid ItemGUID)
Definition Player.cpp:10749
uint16 GetSkillValue(uint32 skill) const
Definition Player.cpp:6563
Item * BankItem(ItemPosCountVec const &dest, Item *pItem, bool update)
uint64 m_comboTarget
Definition Player.h:3387
void SendGameError(GameError error, uint32 arg1=0, uint32 arg2=0)
uint32 m_homebindMapId
Definition Player.h:2847
void CastItemCombatSpell(Unit *target, WeaponAttackType attType, uint32 procVictim, uint32 procEx)
Definition Player.cpp:8913
void SetInWater(bool apply)
Definition Player.cpp:2926
BoundInstancesMap m_boundInstances[15]
Definition Player.h:2926
void ReadMovementInfo(WorldPacket &data, MovementInfo *mi, Movement::ExtraMovementStatusElement *extras=NULL)
Definition Player.cpp:22773
uint32 GetBlockPercent() const override
Definition Player.h:2608
void SetAcceptWhispers(bool on)
Definition Player.h:1365
bool IsUnderWater() const override
Definition Player.cpp:2920
float m_summon_z
Definition Player.h:3500
void AddComboPoints(Unit *target, int8 count, Spell *spell=NULL)
Definition Player.cpp:18439
void ClearAfkReports()
Definition Player.h:2746
bool GetQuestRewardStatus(uint32 quest_id) const
void SendAutoRepeatCancel(Unit *target)
Definition Player.cpp:15471
BattlePetMgr * GetBattlePetMgr()
Definition Player.h:2573
void DestroyForPlayer(Player *target, bool onDeath=false) const override
Definition Player.cpp:4650
void SplitItem(uint16 src, uint16 dst, uint32 count)
void AddTemporarySpell(uint32 spellId)
Definition Player.cpp:3971
uint32 m_speakCount
Definition Player.h:3360
uint32 GetRestTime() const
Definition Player.h:2780
uint32 GetTalentSpecialization(uint8 spec) const
Definition Player.h:2075
void SendCurrencies() const
send full data about all currencies to client
Definition Player.cpp:7584
float inn_area_box_y
Definition Player.h:3474
time_t m_lastHonorUpdateTime
Definition Player.h:3351
InventoryResult CanEquipUniqueItem(Item *pItem, uint8 except_slot=NULL_SLOT, uint32 limit_count=1) const
void ProhibitSpellSchool(SpellSchoolMask idSchoolMask, uint32 unTimeMs) override
Definition Player.cpp:16812
void SetGrantableLevels(uint8 val)
Definition Player.h:2550
void UpdateSkillsToMaxSkillsForLevel()
Definition Player.cpp:6346
void _LoadAuras(PreparedQueryResult result, uint32 timediff)
Definition Player.cpp:12956
void SetDungeonDifficulty(DifficultyID dungeon_difficulty)
Definition Player.h:2317
void SendBGWeekendWorldStates()
Definition Player.cpp:10337
Item * GetItemByEntry(uint32 entry) const
bool HasCompletedAllCommonProjectsForRace(uint32 researchBranchId, bool onlyAvailable) const
Definition Player.cpp:23741
uint16 FindQuestSlot(uint32 quest_id) const
void UpdateDuelFlag(time_t currTime)
Definition Player.cpp:15624
void SetTarget(uint64) OVERRIDE
Definition Player.h:1975
Item * GetUseableItemByPos(uint8 bag, uint8 slot) const
void BuildEnchantmentsInfoData(WorldPacket *data)
Definition Player.cpp:21313
void SetCanParry(bool value)
Definition Player.cpp:20236
uint8 m_forced_speed_changes[MAX_MOVE_TYPE]
Definition Player.h:2874
static bool IsValidClass(uint8 Class)
Definition Player.h:1902
GroupReference & GetGroupRef()
Definition Player.h:2980
void KilledMonsterCredit(uint32 entry, uint64 guid=0)
float inn_area_box_orientation
Definition Player.h:3476
GroupReference & GetOriginalGroupRef()
Definition Player.h:3019
bool UpdateSkill(uint32 skill_id, uint32 step)
Definition Player.cpp:6112
uint32 m_timeSyncTimer
Definition Player.h:3596
void _SaveAuras(SQLTransaction &trans)
Definition Player.cpp:14672
float GetRatingBonusValue(CombatRating cr) const
Definition Player.cpp:5924
bool CanTameExoticPets() const
Definition Player.h:2624
void SendDirectMessage(WorldPacket *data)
Definition Player.cpp:6904
void _LoadMail()
Definition Player.cpp:13447
uint32 _activeCheats
Definition Player.h:3604
bool CanFly() const override
Definition Player.h:3166
InventoryResult CanStoreItem(uint8 bag, uint8 slot, ItemPosCountVec &dest, Item *pItem, bool swap=false) const
void SetBaseModValue(BaseModGroup modGroup, BaseModType modType, float value)
Definition Player.h:2630
void CharmSpellInitialize()
Definition Player.cpp:16142
void SetCanTitanGrip(bool value)
Definition Player.h:2620
void UpdateInnerTime(time_t time)
Definition Player.h:1490
void KilledMonster(CreatureTemplate const *cInfo, uint64 guid)
void ClearComboPoints()
Definition Player.cpp:18488
void SetTemporaryUnsummonedPetNumber(uint32 petnumber)
Definition Player.h:2897
DeclinedName const * GetDeclinedNames() const
Definition Player.h:3049
DifficultyID m_raidDifficulty
Definition Player.h:3362
void SendDungeonDifficulty()
Definition Player.cpp:15489
void ReputationChanged2(FactionEntry const *factionEntry)
void _LoadSeasonalQuestStatus(PreparedQueryResult result)
Definition Player.cpp:13721
uint32 GetBattlegroundQueueJoinTime(BattlegroundTypeId bgTypeId) const
Definition Player.h:2707
bool HasItemCount(uint32 item, uint32 count=1, bool inBankAlso=false) const
bool CanBlock() const
Definition Player.h:2613
void SendTimeSync()
Definition Player.cpp:21961
uint8 m_MirrorTimerFlags
Definition Player.h:3566
void AddMItem(Item *it)
void SendLootRelease(ObjectGuid guid)
Definition Player.cpp:9311
bool Create(uint32 guidlow, CharacterCreateInfo *createInfo)
Definition Player.cpp:815
uint32 m_atLoginFlags
Definition Player.h:3365
void GetDodgeFromAgility(float &diminishing, float &nondiminishing)
Definition Player.cpp:5836
void Update(uint32 time) override
Definition Player.cpp:1387
void SetGroup(Group *group, int8 subgroup=-1)
Definition Player.cpp:18506
void SetAuraUpdateMaskForRaid(uint8 slot)
Definition Player.h:3001
void CleanupsBeforeDelete(bool finalCleanup=true) override
Definition Player.cpp:802
void SetRestBonus(float rest_bonus_new)
Definition Player.cpp:16519
uint32 m_ExtraFlags
Definition Player.h:3385
float m_recallX
Definition Player.h:2838
float GetTotalBaseModValue(BaseModGroup modGroup) const
Definition Player.cpp:5806
void DeleteResearchDigsite(ResearchDigsite *digsite)
Definition Player.cpp:23219
bool isBeingLoaded() const override
Definition Player.cpp:12175
void RemoveSpellCategoryCooldown(uint32 cat, bool update=false)
Definition Player.cpp:4301
float GetCollisionHeight(bool mounted) const
Return collision height sent to client.
Definition Player.cpp:22604
uint32 GetUsedTalentCount() const
Definition Player.h:2065
float inn_area_radius
Definition Player.h:3472
bool HaveAtClient(WorldObject const *u) const
Definition Player.cpp:18066
void SendTalentsInfoData()
Definition Player.cpp:21306
DFQuestsDoneList m_DFQuests
Definition Player.h:2890
void SetActiveSpec(uint8 spec)
Definition Player.h:2078
void UpdatePvPState(bool onlyFFA=false)
Definition Player.cpp:17441
void DurabilityLossAll(double percent, bool inventory)
Definition Player.cpp:5390
uint64 m_lootGuid
Definition Player.h:3354
void UpdateBlockPercentage()
bool IsInvitedForBattlegroundQueueType(BattlegroundQueueTypeId bgQueueTypeId) const
Definition Player.cpp:19241
bool CanTakeQuest(Quest const *quest, bool msg)
bool CanCompleteQuest(uint32 quest_id)
bool SatisfyQuestDay(Quest const *qInfo, bool msg)
uint32 m_ingametime
Definition Player.h:3272
bool IsResearchDigsiteAvailable(ResearchDigsiteInfo const *digsiteInfo) const
Definition Player.cpp:23542
bool HasQuestForItem(uint32 itemId) const
void _SaveMonthlyQuestStatus(SQLTransaction &trans)
Definition Player.cpp:15178
uint32 GetNextResetSpecializationCost() const
Definition Player.cpp:4431
uint32 GetDeathTimer() const
Definition Player.h:2600
float m_recallO
Definition Player.h:2841
bool m_WeeklyQuestChanged
Definition Player.h:3440
ItemDurationList m_itemSoulboundTradeable
Definition Player.h:3423
bool UpdateCraftSkill(uint32 spellid)
Definition Player.cpp:6162
void SendAurasForTarget(Unit *target)
Definition Player.cpp:18981
BattlePetMgr * m_battlePetMgr
Definition Player.h:3616
void SendQuestConfirmAccept(Quest const *quest, Player *pReceiver)
void SetLootSpecialization(uint32 specialization)
Definition Player.cpp:23886
Group * m_groupInvite
Definition Player.h:3487
void SetQuestStatus(uint32 quest_id, QuestStatus status)
Unit * m_mover
Definition Player.h:2807
void LeaveLFGChannel()
Definition Player.cpp:5755
bool RemoveTalent(uint32 talentId)
Definition Player.cpp:4596
uint8 GetBankBagSlotCount() const
Definition Player.h:1552
void SetBattlegroundEntryPoint()
Definition Player.cpp:17930
std::set< uint64 > m_lootView
Definition Player.h:3355
bool InBattleground() const
Definition Player.h:2692
void _LoadResearchHistory(PreparedQueryResult result)
Definition Player.cpp:23567
void ApplySpellPenetrationBonus(int32 amount, bool apply)
bool IsMirrorTimerActive(MirrorTimerType type)
Definition Player.cpp:1215
uint32 GetXPRestBonus(uint32 xp)
Definition Player.cpp:10370
void DurabilityPointLossForEquipSlot(EquipmentSlots slot)
Definition Player.cpp:5483
void GiveXP(uint32 xp, Unit *victim, float group_rate=1.0f)
Definition Player.cpp:3105
uint8 unReadMails
Definition Player.h:2024
float inn_pos_z
Definition Player.h:3471
void InnEnter(time_t time, uint32 mapid, float x, float y, float z, float radius=0.0f, float boxX=0.0f, float boxY=0.0f, float boxZ=0.0f, float boxOrientation=0.0f)
Definition Player.cpp:1796
float GetManaSpecializationMultiplier()
void SetSpecializationResetCost(uint32 cost)
Definition Player.h:2070
void ReadyCheckComplete()
Definition Player.cpp:22754
void CompletedAchievement(AchievementEntry const *entry)
Definition Player.cpp:21048
bool addSpell(uint32 spellId, bool active, bool learning, bool dependent, bool disabled, bool loading=false)
Definition Player.cpp:3634
float inn_area_box_x
Definition Player.h:3473
bool HasSpellCooldown(uint32 spell_id) const
Definition Player.cpp:17498
std::set< uint32 > DFQuestsDoneList
Definition Player.h:2889
bool IsResearchBranchUnlocked(uint32 researchBranchId) const
Definition Player.cpp:23712
bool inRandomLfgDungeon()
Definition Player.cpp:20108
void SetRegularAttackTime()
Definition Player.cpp:6094
bool RemoveMItem(uint32 id)
void SetBaseRune(uint8 index, RuneType baseRune)
Definition Player.h:3083
void SetGroupInvite(Group *group)
Definition Player.h:2968
uint32 m_DelayedOperations
Definition Player.h:3579
bool IsInWater() const override
Definition Player.h:1319
void _LoadTalents(PreparedQueryResult result)
Definition Player.cpp:21703
void RemoveItemFromBuyBackSlot(uint32 slot, bool del)
QuestSet m_timedquests
Definition Player.h:3266
float inn_area_box_z
Definition Player.h:3475
void UpdateZone(uint32 newZone, uint32 newArea)
Definition Player.cpp:8126
void SetDrunkValue(uint8 newDrunkValue, uint32 itemId=0)
Definition Player.cpp:1357
void SetMonthlyQuestStatus(uint32 quest_id)
Definition Player.cpp:19164
void SendPreparedGossip(WorldObject *source)
Definition Player.cpp:11815
void RemoveMail(uint32 id)
void setWeaponChangeTimer(uint32 time)
Definition Player.h:1940
bool HasFreeBattlegroundQueueId()
Definition Player.cpp:19274
bool HasItemOrGemWithIdEquipped(uint32 item, uint32 count, uint8 except_slot=NULL_SLOT) const
void SendMovementSetCollisionHeight(float height)
Definition Player.cpp:22595
bool IsSpellFitByClassAndRace(uint32 spell_id) const
Definition Player.cpp:19350
float GetReputationPriceDiscount(Creature const *creature) const
Definition Player.cpp:19337
void UpdateArmor() override
EquipmentSets m_EquipmentSets
Definition Player.h:3504
void RemoveFromBattlegroundOrBattlefieldRaid()
Definition Player.cpp:20129
bool IsPetNeedBeTemporaryUnsummoned() const
Definition Player.cpp:21147
void UpdateForQuestWorldObjects()
Definition Player.cpp:19410
uint32 GetGlyphSlot(uint8 slot) const
Definition Player.h:2108
void _SaveStats(SQLTransaction &trans)
Definition Player.cpp:15296
void PetSpellInitialize()
Definition Player.cpp:15884
void UpdatePvpPower()
QuestSet m_weeklyquests
Definition Player.h:3267
void AddInstanceEnterTime(uint32 instanceId, time_t enterTime)
Definition Player.cpp:14230
InstanceSave * GetInstanceSave(uint32 mapid)
Definition Player.cpp:13891
uint64 m_lastGuildInviterGUID
Definition Player.h:3571
bool HasTitle(CharTitlesEntry const *title)
Definition Player.h:3113
uint32 GetArenaPersonalRating(uint8) const
Definition Player.h:2304
void SetSeasonalQuestStatus(uint32 quest_id)
Definition Player.cpp:19154
void DropModCharge(SpellModifier *mod, Spell *spell)
Definition Player.cpp:16410
void UpdateEquipSpellsAtFormChange()
Definition Player.cpp:8884
uint32 GetBaseSpellPowerBonus() const
Returns base spellpower bonus from spellpower stat on items, without spellpower from intellect stat.
Definition Player.h:2364
GlobalCooldownMgr m_GlobalCooldownMgr
Definition Player.h:3406
const Group * GetGroup() const
Definition Player.h:2976
void LeaveBattleground(bool teleportToEntryPoint=true)
Definition Player.cpp:17984
void ContinueTaxiFlight()
Definition Player.cpp:16756
void SetFallInformation(uint32 time, float z)
Definition Player.cpp:20943
void SendInitialPacketsBeforeAddToMap()
Definition Player.cpp:18521
void GroupEventHappens(uint32 questId, WorldObject const *pEventObject)
bool CanRewardQuest(Quest const *quest, bool msg)
void LockVoidStorage()
Definition Player.h:3183
void setRegenTimerCount(uint32 time)
Definition Player.h:1936
void SaveCUFProfile(uint8 id, CUFProfile *profile)
Definition Player.h:1865
void UpdateManaRegen()
TradeData * m_trade
Definition Player.h:3437
InventoryResult CanTakeMoreSimilarItems(uint32 entry, uint32 count) const
Definition Player.h:1569
void ApplyEnchantment(Item *item, EnchantmentSlot slot, bool apply, bool apply_dur=true, bool ignore_condition=false)
Definition Player.cpp:11168
void UpdateVisibilityOf(WorldObject *target)
Definition Player.cpp:18170
void _SaveTalents(SQLTransaction &trans)
Definition Player.cpp:21714
QuestObjectiveStatusMap m_questObjectiveStatus
Definition Player.h:3391
QuestSet m_monthlyquests
Definition Player.h:3268
Item * EquipNewItem(uint16 pos, uint32 item, bool update)
bool HasPendingBind() const
Definition Player.h:2938
uint32 m_nextSave
Definition Player.h:3358
void ResetMap() override
Definition Player.cpp:21643
bool SatisfyQuestConditions(Quest const *qInfo, bool msg)
void ResurectUsingRequestData()
Definition Player.cpp:19817
void AddBattlegroundQueueJoinTime(BattlegroundTypeId bgTypeId, uint32 joinTime)
Definition Player.h:2711
static uint32 GetLevelFromDB(uint64 guid)
Definition Player.cpp:8086
SpellModList m_spellMods[MAX_SPELLMOD]
Definition Player.h:3419
uint32 GetTalentResetTime() const
Definition Player.h:2073
uint32 m_zoneUpdateTimer
Definition Player.h:3450
void SendOnCancelExpectedVehicleRideAura()
Definition Player.cpp:15878
bool HasActiveSpell(uint32 spell) const
Definition Player.cpp:4687
void AddQuest(Quest const *quest, Object *questGiver)
void AddItemToBuyBackSlot(Item *pItem)
RestType rest_type
Definition Player.h:3478
bool SatisfyQuestPrevChain(Quest const *qInfo, bool msg)
void ResetMonthlyQuestStatus()
Definition Player.cpp:19202
void KillCreditGO(uint32 entry, uint64 guid=0)
bool m_mailsUpdated
Definition Player.h:1928
void SendNewMail()
void SetSelection(uint64 guid)
Used for serverside target changes, does not apply to players.
Definition Player.h:1976
void SetTalentResetCost(uint32 cost)
Definition Player.h:2068
void ResetDailyQuestStatus()
Definition Player.cpp:19170
void RecalculateRating(CombatRating cr)
Definition Player.h:2352
float cinematicStartO
Definition Player.h:3613
bool CanAddQuest(Quest const *quest, bool msg)
void _SaveBGData(SQLTransaction &trans)
Definition Player.cpp:21545
bool IsRessurectRequested() const
Definition Player.h:2211
bool IsNeedCastPassiveSpellAtLearn(SpellInfo const *spellInfo) const
Definition Player.cpp:3998
bool CheckInstanceCount(uint32 instanceId) const
Definition Player.cpp:14223
void LoadCorpse()
Definition Player.cpp:13061
void SetGlyphSlot(uint8 slot, uint32 slottype)
Definition Player.h:2103
void SetObjectScale(float scale) override
Definition Player.cpp:2470
void UpdateTriggerVisibility()
Definition Player.cpp:18217
Pet * GetPet() const
Definition Player.cpp:15640
void SendItemRefundResult(Item *item, ItemExtendedCostEntry const *iece, uint8 error)
Definition Player.cpp:22261
uint64 m_divider
Definition Player.h:3271
void AddEnchantmentDurations(Item *item)
Definition Player.cpp:10818
void SendMailResult(uint32 mailId, MailResponseType mailAction, MailResponseResult mailError, uint32 equipError=0, uint32 item_guid=0, uint32 item_count=0)
void RemoveTemporarySpell(uint32 spellId)
Definition Player.cpp:3985
void TradeCancel(bool sendback, TradeStatus status=TRADE_STATUS_CANCELLED)
bool IsLootingObject(uint64 guid) const
Definition Player.h:2405
void ResyncRunes(uint8 count)
Definition Player.cpp:20593
void UpdatePhasing()
Definition Player.cpp:23894
void SendInitialVisiblePackets(Unit *target)
Definition Player.cpp:18259
bool IsAtGroupRewardDistance(WorldObject const *pRewardSource) const
Definition Player.cpp:19789
bool UpdateStats(Stats stat) override
bool CanTitanGrip() const
Definition Player.h:2616
void SwapItem(uint16 src, uint16 dst)
void StopCinematic()
Definition Player.cpp:6909
void _RemoveAllItemMods()
Definition Player.cpp:9171
bool HasItemOrGemWithLimitCategoryEquipped(uint32 limitCategory, uint32 count, uint8 except_slot=NULL_SLOT) const
Guild * GetGuild()
Definition Player.cpp:22662
void InitDisplayIds()
Definition Player.cpp:16925
float m_summon_y
Definition Player.h:3499
uint32 GetResurrectionSpellId()
Definition Player.cpp:19654
WorldObject * m_seer
Definition Player.h:2808
ActionButtonList const & GetActionButtons() const
Definition Player.h:2126
DifficultyID GetDifficulty(MapEntry const *mapEntry) const
Definition Player.cpp:20762
uint16 GetReqKillOrCastCurrentCount(uint32 quest_id, int32 entry)
void SendUpdateWorldState(uint32 Field, uint32 Value)
Definition Player.cpp:9734
float m_summon_x
Definition Player.h:3498
uint64 GetLootGUID() const
Definition Player.h:2393
void _ApplyItemBonuses(ItemTemplate const *proto, uint8 slot, bool apply, bool only_level_scale=false)
Definition Player.cpp:8430
PlayerCurrenciesMap _currencyStorage
Definition Player.h:3370
uint32 cinematicClientStartTime
Definition Player.h:3611
void ShowNeutralPlayerFactionSelectUI()
Definition Player.cpp:19884
static void SavePositionInDB(uint32 mapid, float x, float y, float z, float o, uint32 zone, uint64 guid)
Definition Player.cpp:15406
void RemoveRewardedQuest(uint32 quest_id)
PlayerMails::iterator GetMailBegin()
Definition Player.h:2011
void UpdateSoulboundTradeItems()
bool m_SeasonalQuestChanged
Definition Player.h:3442
void UpdateUnderwaterState(Map *m, float x, float y, float z) override
Definition Player.cpp:20154
void RegenerateHealth()
Definition Player.cpp:2730
void PrepareQuestMenu(uint64 guid)
uint16 GetPureSkillValue(uint32 skill) const
Definition Player.cpp:6631
friend class WorldSession
Definition Player.h:1290
uint8 GetRunesState() const
Definition Player.h:3053
void SendDuelCountdown(uint32 counter)
Definition Player.cpp:22142
bool IsTwoHandUsed() const
void _ApplyAllItemMods()
Definition Player.cpp:9216
InventoryResult CanStoreItems(Item **pItem, int count) const
void _ApplyWeaponDependentAuraDamageMod(Item *item, WeaponAttackType attackType, AuraEffect const *aura, bool apply)
Definition Player.cpp:8779
uint32 m_areaUpdateId
Definition Player.h:3451
void RemoveTradeableItem(Item *item)
bool HasAchieved(uint32 achievementId) const
Definition Player.cpp:21013
void SetAtLoginFlag(AtLoginFlags f)
Definition Player.h:2880
void CompleteQuest(uint32 quest_id)
bool HasTalent(uint32 spell_id, uint8 spec) const
Definition Player.cpp:4681
Item * _StoreItem(uint16 pos, Item *pItem, uint32 count, bool clone, bool update)
void SetCanBlock(bool value)
Definition Player.cpp:20245
float cinematicStartX
Definition Player.h:3613
bool GetCommandStatus(uint32 command) const
Definition Player.h:1407
int16 GetSkillTempBonusValue(uint32 skill) const
Definition Player.cpp:6661
void WhisperAddon(std::string const &text, std::string const &prefix, Player *receiver)
Definition Player.cpp:15827
void RestoreBaseRune(uint8 index)
Definition Player.cpp:20564
int16 GetSkillPermBonusValue(uint32 skill) const
Definition Player.cpp:6646
void SendRaidInfo()
Definition Player.cpp:14008
void SendMovementSetCanTransitionBetweenSwimAndFly(bool apply)
Definition Player.cpp:22588
ResearchDigsite * _researchDigsites[RESEARCH_CONTINENT_COUNT][MAX_DIGSITES_PER_CONTINENT]
Definition Player.h:3515
Item * StoreItem(ItemPosCountVec const &pos, Item *pItem, bool update)
WorldSession * GetSession() const
Definition Player.h:2417
void DeleteEquipmentSet(uint64 setGuid)
Definition Player.cpp:21566
OutdoorPvP * GetOutdoorPvP() const
Definition Player.cpp:19552
Item * GetItemByGuid(uint64 guid) const
void SendQuestFailed(uint32 questId, InventoryResult reason=EQUIP_ERR_OK)
bool IsActionButtonDataValid(uint8 button, uint32 action, ActionButtonType type)
Definition Player.cpp:6755
void UpdateSpellHitChances()
GroupReference m_group
Definition Player.h:3485
void _ApplyWeaponDamage(uint8 slot, ItemTemplate const *proto, ScalingStatValuesEntry const *ssv, bool apply)
Definition Player.cpp:8684
void DestroyConjuredItems(bool update)
void UpdateAreaDependentAuras(uint32 area_id)
Definition Player.cpp:19900
ResearchDigsite * TryToSpawnResearchDigsiteOnContinent(uint32 mapId)
Definition Player.cpp:23495
Item * GetItemByPos(uint16 pos) const
void outDebugValues() const
Definition Player.cpp:15342
bool HasSkill(uint32 skill) const
Definition Player.cpp:6542
void UpdatePotionCooldown(Spell *spell=NULL)
Definition Player.cpp:17737
bool IsInvitedForBattlegroundInstance(uint32 instanceId) const
Definition Player.cpp:19302
void UpdateExpertise(WeaponAttackType attType)
void SetCommandStatusOn(uint32 command)
Definition Player.h:1411
void _ApplyAllStatBonuses()
int32 GetSpellPenetrationItemMod() const
Definition Player.h:2368
bool IsNeverVisible() const override
Definition Player.cpp:18071
void SetViewpoint(WorldObject *target, bool apply)
Definition Player.cpp:20275
void StopMirrorTimers()
Definition Player.cpp:1208
void RemoveQuestSlotState(uint16 slot, uint32 state)
JoinedChannelsList m_channels
Definition Player.h:3433
void AddMail(Mail *mail)
Definition Player.h:2001
bool SatisfyQuestReputation(Quest const *qInfo, bool msg)
bool EnchantmentFitsRequirements(uint32 enchantmentcondition, int8 slot)
Definition Player.cpp:17771
float GetInnPosX() const
Definition Player.h:1453
bool ResetTalents(bool noCost=false, bool resetTalents=true, bool resetSpecialization=true)
Definition Player.cpp:4497
void UnsummonPetTemporaryIfAny()
Definition Player.cpp:21113
void _LoadRandomBGStatus(PreparedQueryResult result)
Definition Player.cpp:22420
uint32 GetMailSize()
Definition Player.h:2005
uint32 m_oldpetspell
Definition Player.h:3585
void CheckDuelDistance(time_t currTime)
Definition Player.cpp:8238
Runes * m_runes
Definition Player.h:3503
void SendQuestReward(Quest const *quest, uint32 XP)
uint32 m_currentBuybackSlot
Definition Player.h:3368
uint32 GetLootSpecialization() const
Definition Player.h:1607
static bool LoadPositionFromDB(uint32 &mapid, float &x, float &y, float &z, float &o, bool &in_flight, uint64 guid)
Definition Player.cpp:12120
void SendClearAllCooldowns(Unit *target)
Definition Player.cpp:21610
void RemoveFromGroup(RemoveMethod method=GROUP_REMOVEMETHOD_DEFAULT)
Definition Player.h:2264
void ResetPetTalents()
Definition Player.cpp:10429
void RemoveBattlegroundQueueId(BattlegroundQueueTypeId val)
Definition Player.cpp:19282
bool GetsRecruitAFriendBonus(bool forXP)
Definition Player.cpp:19716
void SaveRecallPosition()
Definition Player.cpp:6866
void UpdatePvPFlag(time_t currTime)
Definition Player.cpp:15613
void UpdateCinematicVisibility()
Definition Player.cpp:6949
void _LoadQuestStatus(PreparedQueryResult result)
Definition Player.cpp:13506
bool isTotalImmune()
Definition Player.cpp:20410
bool CanSeeStartQuest(Quest const *quest)
void UpdateConquestCurrencyCap(uint32 currency)
Updates weekly conquest point cap (dynamic cap).
Definition Player.cpp:7989
void ResetCurrencyWeekCap()
Definition Player.cpp:7865
~Player()
Definition Player.cpp:755
uint32 m_deathTimer
Definition Player.h:3453
uint32 m_regenTimerCount
Definition Player.h:3233
bool GetRandomWinner() const
Definition Player.h:2757
uint32 _GetCurrencyWeekCap(const CurrencyTypesEntry *currency) const
Definition Player.cpp:7889
DifficultyID GetRaidDifficulty() const
Definition Player.h:2316
void RepopAtGraveyard()
Definition Player.cpp:5585
void SendSpellCooldown(uint32 spellId, uint32 cooldown)
Definition Player.cpp:17658
uint32 GetInGameTime() const
Definition Player.h:1847
static uint32 TeamForRace(uint8 race)
Definition Player.cpp:7072
bool SatisfyQuestPreviousQuest(Quest const *qInfo, bool msg)
float GetBaseModValue(BaseModGroup modGroup, BaseModType modType) const
Definition Player.cpp:5792
void _LoadMonthlyQuestStatus(PreparedQueryResult result)
Definition Player.cpp:13744
void BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) const override
Definition Player.cpp:4626
uint16 GetMaxSkillValue(uint32 skill) const
Definition Player.cpp:6581
void SetPassOnGroupLoot(bool bPassOnGroupLoot)
Definition Player.h:3029
InventoryResult CanTakeMoreSimilarItems(Item *pItem) const
Definition Player.h:1565
uint32 GetQuestSlotQuestId(uint16 slot) const
void ClearWhisperWhiteList()
Definition Player.h:3144
void _ApplyWeaponDependentAuraCritMod(Item *item, WeaponAttackType attackType, AuraEffect const *aura, bool apply)
Definition Player.cpp:8756
uint8 m_swingErrorMsg
Definition Player.h:3464
bool CanAlwaysSee(WorldObject const *obj) const override
Definition Player.cpp:18082
uint32 GetGlyph(uint8 spec, uint8 slot) const
Definition Player.h:2113
uint32 GetItemCount(uint32 item, bool inBankAlso=false, Item *skipItem=NULL) const
static void Customize(uint64 guid, uint8 gender, uint8 skin, uint8 face, uint8 hairStyle, uint8 hairColor, uint8 facialHair)
Definition Player.cpp:15432
void DestroyItem(uint8 bag, uint8 slot, bool update)
bool IsCurrentSpecMasterySpell(SpellInfo const *spellInfo) const
Definition Player.cpp:4013
ReputationMgr const & GetReputationMgr() const
Definition Player.h:2559
void SwapQuestSlot(uint16 slot1, uint16 slot2)
void SendPvpRewards() const
send conquest currency points and their cap week/arena
Definition Player.cpp:7632
void RemoveFromWhisperWhiteList(uint64 guid)
Definition Player.h:3153
uint16 GetBaseSkillValue(uint32 skill) const
Definition Player.cpp:6614
time_t m_nextMailDelivereTime
Definition Player.h:2025
uint16 GetSkillStep(uint16 skill) const
Definition Player.cpp:6551
TeamId GetTeamId() const
Definition Player.h:2531
void MoveItemFromInventory(uint8 bag, uint8 slot, bool update)
void RewardPlayerAndGroupAtKill(Unit *victim, bool isBattleGround)
Definition Player.cpp:19757
uint32 cinematicVisibilityTimer
Definition Player.h:3612
void UpdateSpecCount(uint8 count)
Definition Player.cpp:21754
bool SatisfyQuestStatus(Quest const *qInfo, bool msg)
PlayerSpellMap const & GetSpellMap() const
Definition Player.h:2141
void UpdateFallInformationIfNeed(MovementInfo const &minfo, uint16 opcode)
Definition Player.cpp:21107
void ModifyCurrency(uint32 id, int32 count, bool printLog=true, bool ignoreMultipliers=false)
Definition Player.cpp:7691
void SendRespondInspectAchievements(Player *player) const
Definition Player.cpp:21003
void SetDelayedTeleportFlag(bool setting)
Definition Player.h:3549
void _SaveResearchProjects(SQLTransaction &trans)
Definition Player.cpp:23637
static bool IsInventoryPos(uint16 pos)
Definition Player.h:1531
void SendTalentWipeConfirm(ObjectGuid guid, bool resetType)
Definition Player.cpp:10409
GameObject * GetGameObjectIfCanInteractWith(uint64 guid, GameobjectTypes type) const
Definition Player.cpp:2887
void SetGMChat(bool on)
Definition Player.h:1378
bool m_bPassOnGroupLoot
Definition Player.h:3490
float m_recallZ
Definition Player.h:2840
void SetQuestSlotCounter(uint16 slot, uint8 counter, uint16 count)
void KilledPlayerCredit()
bool CanNoReagentCast(SpellInfo const *spellInfo) const
Definition Player.cpp:19602
time_t m_speakTime
Definition Player.h:3359
void SendBattlefieldWorldStates()
Definition Player.cpp:10352
PlayerTalentMap * GetTalentMap(uint8 spec)
Definition Player.h:2122
uint16 GetPureMaxSkillValue(uint32 skill) const
Definition Player.cpp:6599
void InitDataForForm(bool reapplyMods=false)
Definition Player.cpp:16873
bool HasQuestForGO(int32 goId) const
Definition Player.cpp:19375
uint32 DurabilityRepairAll(bool cost, float discountMod, bool guildBank)
Definition Player.cpp:5489
bool CanShareQuest(uint32 questId) const
std::set< uint32 > QuestSet
Definition Player.h:3263
uint32 GetCurrency(uint32 id, bool usePrecision) const
return count of currency witch has plr
Definition Player.cpp:7648
bool IsMailsLoaded() const
Definition Player.h:1994
void SetSkill(uint16 id, uint16 step, uint16 currVal, uint16 maxVal)
Definition Player.cpp:6377
bool m_DailyQuestChanged
Definition Player.h:3439
void UpdateVisibilityForPlayer()
Definition Player.cpp:18329
uint32 GetCurrencyTotalCap(CurrencyTypesEntry const *currency) const
Definition Player.cpp:7964
void ClearResurrectRequestData()
Definition Player.h:2197
void StopCastingCharm()
Definition Player.cpp:15768
void ReputationChangedQuestCheck(FactionEntry const *factionEntry)
bool _LoadHomeBind(PreparedQueryResult result)
Definition Player.cpp:14236
void ResetAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1=0, uint64 miscValue2=0, bool evenIfCriteriaComplete=false)
Definition Player.cpp:21028
void SetSemaphoreTeleportFar(bool semphsetting)
Definition Player.h:2509
void SetRestType(RestType n_r_type)
Definition Player.h:1444
bool InBattlegroundQueue() const
Definition Player.cpp:19220
uint32 m_weaponChangeTimer
Definition Player.h:3446
void SendSurveyCastInfo(ResearchDigsite *digsite, bool success)
Definition Player.cpp:23304
WorldObject * GetViewpoint() const
Definition Player.cpp:20314
bool UpdatePosition(const Position &pos, bool teleport=false)
Definition Player.h:2440
bool HasCompletedResearchProject(uint32 projectId) const
Definition Player.h:3214
bool m_mailsLoaded
Definition Player.h:1927
void SendResetFailedNotify(uint32 mapid)
Definition Player.cpp:15503
uint32 m_WeaponProficiency
Definition Player.h:3458
bool mSemaphoreTeleport_Far
Definition Player.h:3577
T ApplySpellMod(uint32 spellId, SpellModOp op, T &basevalue, Spell *spell=NULL)
Definition Player.h:3623
void SetCurrentRune(uint8 index, RuneType currentRune)
Definition Player.h:3087
void UpdateCorpseReclaimDelay()
Definition Player.cpp:19949
void RemovePet(Pet *pet, PetSaveMode mode, bool returnreagent=false)
Definition Player.cpp:15663
void learnSpellHighRank(uint32 spellid)
Definition Player.cpp:20807
int32 CalculateReputationGain(ReputationSource source, uint32 creatureOrQuestLevel, int32 rep, int32 faction, bool noQuestBonus=false)
Definition Player.cpp:7105
uint32 GetRuneCooldown(uint8 index) const
Definition Player.h:3065
void DeleteVoidStorageItem(uint8 slot)
Definition Player.cpp:22542
bool m_forcedTeleportFarSemaphore
Definition Player.h:2924
VoidStorageItem * _voidStorageItems[VOID_STORAGE_MAX_SLOT]
Definition Player.h:3380
void _SaveInstanceTimeRestrictions(SQLTransaction &trans)
Definition Player.cpp:22460
void UpdateItemDuration(uint32 time, bool realtimeonly=false)
Definition Player.cpp:10777
void learnSkillRewardedSpells(uint32 id, uint32 value)
Definition Player.cpp:18951
void _ApplyItemMods(Item *item, uint8 slot, bool apply)
Definition Player.cpp:8399
GlobalCooldownMgr & GetGlobalCooldownMgr()
Definition Player.h:2180
float GetRatingMultiplier(CombatRating cr) const
Definition Player.cpp:5908
void RemoveCategoryCooldown(uint32 cat)
Definition Player.cpp:4293
bool TeleportToBGEntryPoint()
Definition Player.cpp:2341
void AdjustQuestReqItemCount(Quest const *quest, QuestStatusData &questStatusData)
void _LoadSpells(PreparedQueryResult result)
Definition Player.cpp:13766
void MoveItemToInventory(ItemPosCountVec const &dest, Item *pItem, bool update, bool in_characterInventoryDB=false)
int GetGuildIdInvited() const
Definition Player.h:2298
void ApplyManaRegenBonus(int32 amount, bool apply)
DeclinedName * m_declinedname
Definition Player.h:3502
uint8 GetNumOfVoidStorageFreeSlots() const
Definition Player.cpp:22497
void InitTaxiNodesForLevel()
Definition Player.h:1352
ActionButton const * GetActionButton(uint8 button)
Definition Player.cpp:6834
bool IsHasDelayedTeleport() const
Definition Player.h:3545
void _LoadSkills(PreparedQueryResult result)
Definition Player.cpp:20815
void _LoadMailedItems(Mail *mail)
Definition Player.cpp:13379
void SetDailyQuestStatus(uint32 quest_id)
Definition Player.cpp:19122
void UpdateSpeakTime()
Definition Player.cpp:15367
Corpse * GetCorpse() const
Definition Player.cpp:5385
uint64 GetDivider() const
Definition Player.h:1838
int16 m_baseRatingValue[MAX_COMBAT_RATING]
Definition Player.h:3413
bool m_IsBGRandomWinner
Definition Player.h:3256
void ApplyReforgeEnchantment(Item *item, bool apply)
Definition Player.cpp:10919
bool SatisfyQuestClass(Quest const *qInfo, bool msg) const
Item * _LoadItem(SQLTransaction &trans, uint32 zoneId, uint32 timeDiff, Field *fields)
Definition Player.cpp:13251
void AddSpellAndCategoryCooldowns(SpellInfo const *spellInfo, uint32 itemId, Spell *spell=NULL, bool infinityCooldown=false)
Definition Player.cpp:17511
void DurabilityLoss(Item *item, double percent)
Definition Player.cpp:5413
uint8 GetNextVoidStorageFreeSlot() const
Definition Player.cpp:22488
uint32 GetWeaponProficiency() const
Definition Player.h:1673
bool m_forcedTeleportFar
Definition Player.h:2923
void RemoveLootedObject(uint64 guid)
Definition Player.cpp:9341
void ResetTimeSync()
Definition Player.cpp:21954
Item * GetShield(bool useable=false) const
uint32 m_drunkTimer
Definition Player.h:3445
SpellCooldowns const & GetSpellCooldownMap() const
Definition Player.h:2150
RewardedQuestSet m_RewardedQuests
Definition Player.h:3395
void InitStatsForLevel(bool reapplyMods=false)
Definition Player.cpp:3323
void SendInitWorldStates(uint32 zone, uint32 area)
Definition Player.cpp:9743
void _SaveResearchHistory(SQLTransaction &trans)
Definition Player.cpp:23620
void HandleSobering()
The player sobers by 1% every 9 seconds.
Definition Player.cpp:1337
bool IsWithinResearchDigsite(ResearchDigsite *digsite) const
Definition Player.cpp:23457
bool Satisfy(AccessRequirement const *ar, uint32 target_map, bool report=false)
Definition Player.cpp:14123
Battleground * GetBattleground() const
Definition Player.cpp:19212
uint32 GetGuildLevel() const
Definition Player.h:2283
void _SaveQuestStatus(SQLTransaction &trans)
Definition Player.cpp:14996
void SetQuestSlot(uint16 slot, uint32 quest_id, uint32 timer=0)
uint32 m_contestedPvPTimer
Definition Player.h:3238
void UpdateResearchProjects()
Definition Player.cpp:23806
uint32 GetTalentResetCost() const
Definition Player.h:2067
void RemoveBattlegroundQueueJoinTime(BattlegroundTypeId bgTypeId)
Definition Player.h:2715
static uint32 GetZoneIdFromDB(uint64 guid)
Definition Player.cpp:8040
uint32 GetChampioningType() const
Definition Player.h:3130
Player * GetTrader() const
Definition Player.h:1690
void AddRuneByAuraEffect(uint8 index, RuneType newType, AuraEffect const *aura)
Definition Player.cpp:20547
time_t GetTimeInnEnter() const
Definition Player.h:1486
void ProcessDelayedOperations()
Definition Player.cpp:2352
float GetAverageItemLevel()
Definition Player.cpp:22428
uint8 FindEquipSlot(ItemTemplate const *proto, uint32 slot, bool swap) const
Definition Player.cpp:10499
void SendInspectResult(Player const *player)
Definition Player.cpp:21991
void UnlockVoidStorage()
Definition Player.h:3179
float m_homebindY
Definition Player.h:2850
EnchantDurationList m_enchantDuration
Definition Player.h:3421
void SendDeclineGuildInvitation(std::string declinerName, bool autoDecline=false)
Definition Player.cpp:23874
float GetExpertiseDodgeOrParryReduction(WeaponAttackType attType) const
Definition Player.cpp:5932
uint32 GetRandomResearchProjectForRace(uint32 researchBranchId)
Definition Player.cpp:23758
void UpdateResistances(uint32 school) override
void SetCommandStatusOff(uint32 command)
Definition Player.h:1415
void SetClientControl(Unit *target, uint8 allowMove)
Definition Player.cpp:19853
void SendSavedInstances()
Definition Player.cpp:14059
TradeData * GetTradeData() const
Definition Player.h:1694
std::set< uint64 > const & GetLootView() const
Definition Player.h:2401
bool UpdatePosition(float x, float y, float z, float orientation, bool teleport=false) override
Definition Player.cpp:6843
bool IsActiveQuest(uint32 quest_id) const
void setDeathState(DeathState s) override
Definition Player.cpp:1747
void SendQuestUpdateAddCredit(Quest const *quest, QuestObjective const *objective, ObjectGuid guid, uint16 oldCount, uint16 addCount)
void SendCorpseReclaimDelay(bool load=false)
Definition Player.cpp:19971
Creature * GetNPCIfCanInteractWith(uint64 guid, uint32 npcflagmask)
Definition Player.cpp:2836
Group * GetGroup()
Definition Player.h:2972
void SetQuestSlotState(uint16 slot, uint32 state)
void _SaveSeasonalQuestStatus(SQLTransaction &trans)
Definition Player.cpp:15150
void ResetWeeklyQuestStatus()
Definition Player.cpp:19182
void SendRefundInfo(Item *item)
Definition Player.cpp:22163
CUFProfile * GetCUFProfile(uint8 id) const
Definition Player.h:1869
void AutoUnequipOffhandIfNeed(bool force=false)
Definition Player.cpp:19517
UNORDERED_MAP< uint32, Item * > ItemMap
Definition Player.h:2027
float GetInnAreaRadius() const
Definition Player.h:1465
bool isGMChat() const
Definition Player.h:1374
bool LoadFromDB(uint32 guid, SQLQueryHolder *holder)
Definition Player.cpp:12180
void SetChampioningFaction(uint32 faction)
Definition Player.h:3126
bool IsGroupVisibleFor(Player const *p) const
Definition Player.cpp:3013
void UpdateSpellDamageAndHealingBonus()
uint32 m_stableSlots
Definition Player.h:1723
bool SatisfyQuestLog(bool msg)
void RemoveEnchantmentDurations(Item *item)
Definition Player.cpp:10834
uint32 m_Played_time[MAX_PLAYED_TIME_INDEX]
Definition Player.h:1423
RuneType GetCurrentRune(uint8 index) const
Definition Player.h:3061
uint32 m_baseSpellPower
Definition Player.h:3414
void SpawnCorpseBones()
Definition Player.cpp:5378
bool isTotalImmunity()
Definition Player.cpp:20457
void UpdateMaxHealth() override
uint32 m_timeSyncClient
Definition Player.h:3597
bool IsGameMaster() const
Definition Player.h:1369
void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1=0, uint64 miscValue2=0, uint64 miscValue3=0, Unit *unit=NULL)
Definition Player.cpp:21033
InventoryResult CanStoreNewItem(uint8 bag, uint8 slot, ItemPosCountVec &dest, uint32 item, uint32 count, uint32 *no_space_count=NULL) const
void SendMovieStart(uint32 MovieId)
Definition Player.cpp:6989
void SetPendingBind(uint32 instanceId, uint32 bindTimer)
Definition Player.cpp:14002
void UpdateMeleeHitChances()
void SetQuestSlotTimer(uint16 slot, uint32 timer)
void SendPushToPartyResponse(Player *player, uint8 msg)
uint32 AddBattlegroundQueueId(BattlegroundQueueTypeId val)
Definition Player.cpp:19260
Item * EquipItem(uint16 pos, Item *pItem, bool update)
PvPInfo pvpInfo
Definition Player.h:2233
void SetPvPDeath(bool on)
Definition Player.h:1395
uint32 GetCurrencyWeekCap(uint32 id, bool usePrecision) const
return week cap by currency id
Definition Player.cpp:7854
void SetPvP(bool state)
Definition Player.cpp:17477
void LoadPet()
Definition Player.cpp:13494
float cinematicStartZ
Definition Player.h:3613
void removeSpell(uint32 spell_id, bool disabled=false, bool learn_low_rank=true)
Definition Player.cpp:4073
void BindToInstance()
Definition Player.cpp:13987
bool OnArchaeologyFindUsed(GameObject *go)
Definition Player.cpp:23358
void SendClearCooldown(uint32 spell_id, Unit *target)
Definition Player.cpp:21596
void UpdateMirrorTimers()
Definition Player.cpp:1201
void SetGlyph(uint8 slot, uint32 glyph)
Definition Player.cpp:20404
uint8 m_grantableLevels
Definition Player.h:3510
void SetTalentSpecialization(uint8 spec, uint32 tree)
Definition Player.h:2076
void _ApplyWeaponDependentAuraMods(Item *item, WeaponAttackType attackType, bool apply)
Definition Player.cpp:8741
void ModifySkillBonus(uint32 skillid, int32 val, bool talent)
Definition Player.cpp:6295
SpellCooldowns GetSpellCooldowns() const
Definition Player.h:2588
TrainerSpellState GetTrainerSpellState(TrainerSpell const *trainer_spell) const
Definition Player.cpp:4694
void SummonIfPossible(bool agree)
Definition Player.cpp:19465
time_t time_inn_enter
Definition Player.h:3467
Item * m_items[PLAYER_SLOTS_COUNT]
Definition Player.h:3367
bool IsAffectedBySpellmod(SpellInfo const *spellInfo, SpellModifier *mod, Spell *spell=NULL)
Definition Player.cpp:16238
uint32 GetLastPetNumber() const
Definition Player.h:2951
void _SaveVoidStorage(SQLTransaction &trans)
Definition Player.cpp:14853
uint8 getCinematic() const
Definition Player.h:2217
uint16 m_homebindAreaId
Definition Player.h:2848
bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, uint32 options=0)
Definition Player.cpp:2090
void SetCanDelayTeleport(bool setting)
Definition Player.h:3541
void DurabilityPointsLossAll(int32 points, bool inventory)
Definition Player.cpp:5433
uint32 m_zoneUpdateId
Definition Player.h:3449
float GetSpellCritFromIntellect()
Definition Player.cpp:5892
bool m_isInWater
Definition Player.h:3568
static void DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmChars=true, bool deleteFinally=false)
Definition Player.cpp:4775
bool IsVisibleGloballyFor(Player const *player) const
Definition Player.cpp:18107
uint32 GetRBGPersonalRating() const
Definition Player.h:2309
void UpdateAllRunesRegen()
CinematicSequence * cinematicSequence
Definition Player.h:3609
Pet * SummonPet(uint32 entry, float x, float y, float z, float ang, PetType petType, uint32 despwtime)
Definition Player.cpp:22668
bool ActivateTaxiPathTo(std::vector< uint32 > const &nodes, Creature *npc=NULL, uint32 spellid=0)
Definition Player.cpp:16547
void AddItemDurations(Item *item)
Definition Player.cpp:19508
PlayerTaxi m_taxi
Definition Player.h:1351
uint8 m_MirrorTimerFlagsLast
Definition Player.h:3567
std::vector< ItemSetEffect * > ItemSetEff
Definition Player.h:2681
bool SatisfyQuestMonth(Quest const *qInfo, bool msg)
void SendMessageToSetInRange(WorldPacket *data, float fist, bool self) override
Definition Player.cpp:6875
uint32 GetCorpseReclaimDelay(bool pvp) const
Definition Player.cpp:19932
void SetTitle(CharTitlesEntry const *title, bool lost=false)
Definition Player.cpp:20434
bool IsBeingTeleportedNear() const
Definition Player.h:2497
void SetSummonPoint(uint32 mapid, float x, float y, float z)
Definition Player.cpp:19456
void SetSemaphoreTeleportForcedFar(bool semphsetting)
Definition Player.h:2521
uint32 GetAchievementPoints() const
Definition Player.cpp:21008
bool SatisfyQuestTimed(Quest const *qInfo, bool msg)
ResurrectionData * _resurrectionData
Definition Player.h:3428
time_t m_lastDailyQuestTime
Definition Player.h:3443
void AddSpellCooldown(uint32 spell_id, uint32 itemid, time_t end_time)
Definition Player.cpp:17633
void learnSpell(uint32 spell_id, bool dependent)
Definition Player.cpp:4021
bool IsRessurectRequestedBy(uint64 guid) const
Definition Player.h:2203
void SetWeeklyQuestStatus(uint32 quest_id)
Definition Player.cpp:19148
uint32 DurabilityRepair(uint16 pos, bool cost, float discountMod, bool guildBank)
Definition Player.cpp:5505
uint8 GetActiveSpec() const
Definition Player.h:2077
std::string GetGuildName()
Definition Player.cpp:21986
void _LoadGroup(PreparedQueryResult result)
Definition Player.cpp:13785
static void ConvertInstancesToGroup(Player *player, Group *group, bool switchLeader)
convert the player's binds to the group
Definition Player.cpp:14099
uint32 m_baseHealthRegen
Definition Player.h:3416
void SetEquipmentSet(uint32 index, EquipmentSet const &eqset)
Definition Player.cpp:21433
bool CanJoinToBattleground(Battleground const *bg) const
Definition Player.cpp:18008
static bool IsBagPos(uint16 pos)
void SetRank(uint8 rankId)
Definition Player.h:2271
PartyResult CanUninviteFromGroup() const
Definition Player.cpp:20050
uint32 m_summon_mapid
Definition Player.h:3497
BgBattlegroundQueueID_Rec m_bgBattlegroundQueueID[PLAYER_MAX_BATTLEGROUND_QUEUES]
Definition Player.h:3253
void UpdateSkillEnchantments(uint16 skill_id, uint16 curr_value, uint16 new_value)
Definition Player.cpp:11544
bool mSemaphoreTeleport_Near
Definition Player.h:3576
void ToggleAFK()
Definition Player.cpp:2060
static void RemoveFromGroup(Group *group, uint64 guid, RemoveMethod method=GROUP_REMOVEMETHOD_DEFAULT, uint64 kicker=0, const char *reason=NULL)
Definition Player.cpp:3059
int8 m_comboPoints
Definition Player.h:3388
uint32 GetReputation(uint32 factionentry) const
Definition Player.cpp:21981
void ApplyEquipCooldown(Item *pItem)
Definition Player.cpp:18751
void UpdateRangedHitChances()
InventoryResult CanStoreItem_InInventorySlots(uint8 slot_begin, uint8 slot_end, ItemPosCountVec &dest, ItemTemplate const *pProto, uint32 &count, bool merge, Item *pSrcItem, uint8 skip_bag, uint8 skip_slot) const
void OnGossipSelect(WorldObject *source, uint32 gossipListId, uint32 menuId)
Definition Player.cpp:11859
void PossessSpellInitialize()
Definition Player.cpp:15991
bool isDND() const
Definition Player.h:1337
void DestroyItemCount(uint32 item, uint32 count, bool update, bool unequip_check=false)
void _LoadWeeklyQuestStatus(PreparedQueryResult result)
Definition Player.cpp:13699
void UpdateZoneDependentAuras(uint32 zone_id)
Definition Player.cpp:19890
void AreaExploredOrEventHappens(uint32 questId)
float m_lastFallZ
Definition Player.h:3563
WhisperListContainer WhisperList
Definition Player.h:3232
void SetGMVisible(bool on)
Definition Player.cpp:2995
void InitRunes()
Definition Player.cpp:20622
std::vector< Item * > & GetItemUpdateQueue()
Definition Player.h:1527
void RestoreAllSpellMods(uint32 ownerAuraId=0, Aura *aura=NULL)
Definition Player.cpp:16370
bool isHonorOrXPTarget(Unit const *victim)
Definition Player.cpp:19697
void AddTradeableItem(Item *item)
uint32 m_baseManaRegen
Definition Player.h:3415
time_t m_logintime
Definition Player.h:1421
void SendResetInstanceSuccess(uint32 MapId)
Definition Player.cpp:15560
void SetReputation(uint32 factionentry, uint32 value)
Definition Player.cpp:21977
void StoreLootItem(uint8 lootSlot, Loot *loot, uint64 lootGuid=0)
Definition Player.cpp:20681
bool TakeQuestSourceItem(uint32 questId, bool msg)
void ResetInstances(InstanceResetMethod method, bool isRaid)
Reset all solo instances and optionally send a message on success for each.
Definition Player.cpp:15510
void UpdateAllRatings()
Definition Player.cpp:6088
uint32 GetBattlegroundQueueIndex(BattlegroundQueueTypeId bgQueueTypeId) const
Definition Player.cpp:19233
void ApplySpellPowerBonus(int32 amount, bool apply)
int32 m_MirrorTimer[MAX_TIMERS]
Definition Player.h:3565
void SetSheath(SheathState sheathed) override
Definition Player.cpp:10471
void UpdateAllCritPercentages()
Item * GetItemFromBuyBackSlot(uint32 slot)
void RemoveItemDurations(Item *item)
Definition Player.cpp:19496
void SetLastGuildInviterGUID(uint64 guid)
Definition Player.h:2299
void MoneyChanged(uint32 value)
QuestStatus GetQuestStatus(uint32 quest_id) const
void SetLootGUID(uint64 guid)
Definition Player.h:2397
uint32 GetRuneBaseCooldown(uint8 index) const
Definition Player.h:3069
float GetInnAreaBoxY() const
Definition Player.h:1473
void ConvertRune(uint8 index, RuneType newType)
Definition Player.cpp:20583
UNORDERED_MAP< uint32, SeasonalQuestSet > SeasonalEventQuestMap
Definition Player.h:3265
MapReference & GetMapRef()
Definition Player.h:3038
void SaveToDB(bool create=false)
Definition Player.cpp:14300
bool isRested() const
Definition Player.h:2775
bool CanCompleteRepeatableQuest(Quest const *quest)
void SendEnchantmentDurations()
Definition Player.cpp:11592
bool SatisfyQuestSkill(Quest const *qInfo, bool msg) const
void _LoadActions(PreparedQueryResult result)
Definition Player.cpp:12930
InventoryResult CanStoreItem_InBag(uint8 bag, ItemPosCountVec &dest, ItemTemplate const *pProto, uint32 &count, bool merge, bool non_specialized, Item *pSrcItem, uint8 skip_bag, uint8 skip_slot) const
void AddRefundReference(uint32 it)
Definition Player.cpp:22149
bool CanDodge() const
Definition Player.h:2609
void _LoadGlyphAuras()
Definition Player.cpp:13031
static void RemovePetitionsAndSigns(uint64 guid, uint32 type)
Definition Player.cpp:16445
PlayerTalentMap const * GetTalentMap(uint8 spec) const
Definition Player.h:2118
bool HasCurrency(uint32 id, uint32 count) const
return presence related currency
Definition Player.cpp:7672
void _SaveEquipmentSets(SQLTransaction &trans)
Definition Player.cpp:21494
uint32 m_recallMap
Definition Player.h:2837
static uint32 const infinityCooldownDelayCheck
Definition Player.h:2165
void StopCastingBindSight()
Definition Player.cpp:20262
void _LoadCurrency(PreparedQueryResult result)
Definition Player.cpp:7471
uint32 GetBattlegroundId() const
Definition Player.h:2697
uint64 GetMoney() const
Definition Player.h:1945
PlayerSocial * GetSocial()
Definition Player.h:1346
static bool IsValidGender(uint8 Gender)
Definition Player.h:1898
void SendMessageToSet(WorldPacket *data, bool self) override
Definition Player.h:2443
void SendCooldownEvent(SpellInfo const *spellInfo, uint32 itemId=0, Spell *spell=NULL, bool setCooldown=true)
Definition Player.cpp:17720
uint32 m_timeSyncServer
Definition Player.h:3598
bool IsAlwaysDetectableFor(WorldObject const *seer) const override
Definition Player.cpp:18095
float m_recallY
Definition Player.h:2839
void AddArmorProficiency(uint32 newflag)
Definition Player.h:1669
bool SatisfyQuestLevel(Quest const *qInfo, bool msg)
uint32 GetSpellCooldownDelay(uint32 spell_id) const
Definition Player.cpp:17504
void SaveResearchDigsiteToDB(ResearchDigsite *digsite)
Definition Player.cpp:23201
bool UpdateAllStats() override
void SendLogXPGain(uint32 GivenXP, Unit *victim, uint32 BonusXP, bool recruitAFriend=false, float group_rate=1.0f)
Definition Player.cpp:3068
InventoryResult CanBankItem(uint8 bag, uint8 slot, ItemPosCountVec &dest, Item *pItem, bool swap, bool not_loading=true) const
uint32 GetItemCountWithLimitCategory(uint32 limitCategory, Item *skipItem=NULL) const
void SetRaidDifficulty(DifficultyID raid_difficulty)
Definition Player.h:2318
std::list< Channel * > JoinedChannelsList
Definition Player.h:3432
void ResetAllPowers()
Definition Player.cpp:2778
void UpdateRating(CombatRating cr)
Definition Player.cpp:5999
void ApplyEquipSpell(SpellInfo const *spellInfo, Item *item, bool apply, bool form_change=false)
Definition Player.cpp:8848
ReputationRank GetReputationRank(uint32 faction_id) const
Definition Player.cpp:7098
uint32 GetGroupUpdateFlag() const
Definition Player.h:2989
void SetSpecializationResetTime(time_t time_)
Definition Player.h:2072
void UpdateArea(uint32 newArea)
Definition Player.cpp:8101
PlayerSpellMap & GetSpellMap()
Definition Player.h:2145
void SetHomebind(WorldLocation const &loc, uint32 areaId)
Definition Player.cpp:12141
void SetSaveTimer(uint32 timer)
Definition Player.h:2831
static void SetUInt32ValueInArray(Tokenizer &data, uint16 index, uint32 value)
Definition Player.cpp:15421
void FailQuest(uint32 quest_id)
Player * GetSelectedPlayer() const
Definition Player.cpp:18392
InventoryResult CanUnequipItems(uint32 item, uint32 count) const
void ModifySpellCooldown(uint32 spellId, int32 cooldown)
Definition Player.cpp:17641
void AddEnchantmentDuration(Item *item, EnchantmentSlot slot, uint32 duration)
Definition Player.cpp:10895
bool GetPassOnGroupLoot() const
Definition Player.h:3033
Unit * GetSelectedUnit() const
Definition Player.cpp:18385
void RemoveActiveQuest(uint32 quest_id)
void ItemAddedQuestCheck(uint32 entry, uint32 count)
Item * GetWeaponForAttack(WeaponAttackType attackType, bool useable=false) const
bool GetCinematicPosition(float &x, float &y, float &z) const
Definition Player.cpp:6932
Player * GetNextRandomRaidMember(float radius)
Definition Player.cpp:20024
void AddToWorld() override
Definition Player.cpp:2418
void RemoveAllSpellCooldown()
Definition Player.cpp:4350
bool GiveQuestSourceItem(Quest const *quest)
bool HasAtLoginFlag(AtLoginFlags f) const
Definition Player.h:2876
void SolveResearchProject(Spell *spell)
Definition Player.cpp:23668
void GainSpellComboPoints(int8 count)
Definition Player.cpp:18476
uint8 GetSpecsCount() const
Definition Player.h:2079
void RewardReputation(Unit *victim, float rate)
Definition Player.cpp:7185
void SetCanDodge(bool value)
Definition Player.cpp:20227
void RemoveTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
Definition Player.cpp:21023
VoidStorageItem * GetVoidStorageItem(uint8 slot) const
Definition Player.cpp:22563
bool HasCompletedAllRareProjectsForRace(uint32 researchBranchId) const
Definition Player.cpp:23731
bool IsVoidStorageUnlocked() const
Definition Player.h:3175
void RestoreSpellMods(Spell *spell, uint32 ownerAuraId=0, Aura *aura=NULL)
Definition Player.cpp:16319
void SetReadyCheckTimer(uint32 timer)
Definition Player.h:3007
bool IsUseEquipedWeapon(bool mainhand) const
void HandleDrowning(uint32 time_diff)
Definition Player.cpp:1220
ActionButton * addActionButton(uint8 button, uint32 action, ActionButtonType type)
Definition Player.cpp:6805
uint32 m_HomebindTimer
Definition Player.h:2921
Item * StoreNewItem(ItemPosCountVec const &pos, uint32 item, bool update, int32 randomPropertyId=0, AllowedLooterSet const &allowedLooters=AllowedLooterSet())
float GetInnAreaBoxZ() const
Definition Player.h:1477
static float GetFloatValueFromArray(Tokenizer const &data, uint16 index)
Definition Player.cpp:12166
UNORDERED_MAP< uint32, InstancePlayerBind > BoundInstancesMap
Definition Player.h:2917
static bool IsBankPos(uint16 pos)
Definition Player.h:1542
bool UpdateSkillPro(uint16 skillId, int32 chance, uint32 step)
Definition Player.cpp:6234
PlayerMails::iterator GetMailEnd()
Definition Player.h:2015
void _LoadEquipmentSets(PreparedQueryResult result)
Definition Player.cpp:12067
bool RewardHonor(Unit *victim, uint32 groupsize, int32 honor=-1, bool pvptoken=false)
Definition Player.cpp:7316
void RemoveItem(uint8 bag, uint8 slot, bool update)
static bool IsValidRace(uint8 Race)
Definition Player.h:1906
void _SaveQuestObjectiveStatus(SQLTransaction &trans)
Definition Player.cpp:15062
void UpdateCharmedAI()
Definition Player.cpp:20481
uint32 _maxPersonalArenaRate
Definition Player.h:3605
void AddVoidStorageItemAtSlot(uint8 slot, const VoidStorageItem &item)
Definition Player.cpp:22523
uint64 m_auraRaidUpdateMask
Definition Player.h:3489
bool m_canTitanGrip
Definition Player.h:3463
void _SaveCUFProfiles(SQLTransaction &trans)
Definition Player.cpp:14885
float cinematicStartY
Definition Player.h:3613
bool InArena() const
Definition Player.cpp:19310
bool HasSpell(uint32 spell) const override
Definition Player.cpp:4674
float GetInnAreaBoxX() const
Definition Player.h:1469
void UpdateSkillsForLevel()
Definition Player.cpp:6309
bool IsInCurrentInnArea(float padding=0.0f) const
Definition Player.cpp:1810
static uint32 GetDefaultGossipMenuForSource(WorldObject *source)
Definition Player.cpp:12032
void AutoStoreLoot(uint32 loot_id, LootStore const &store, bool broadcast=false)
Definition Player.h:1594
ActionButtonList m_actionButtons
Definition Player.h:3410
void BuildPlayerRepop()
Definition Player.cpp:5152
void UninviteFromGroup()
Definition Player.cpp:3037
int32 getMaxTimer(MirrorTimerType timer)
Definition Player.cpp:1177
void ModifyCurrencyFlag(uint32 id, uint8 flag)
Definition Player.cpp:7678
bool m_canBlock
Definition Player.h:3462
uint8 GetSubGroup() const
Definition Player.h:2985
void UpdateTalentSpecializationManaBonus()
bool SatisfyQuestNextChain(Quest const *qInfo, bool msg)
bool isAFK() const
Definition Player.h:1333
bool SatisfyQuestRace(Quest const *qInfo, bool msg)
void _RemoveAllStatBonuses()
void SetGuildLevel(uint32 level)
Definition Player.h:2279
uint8 m_cinematic
Definition Player.h:3435
void VehicleSpellInitialize()
Definition Player.cpp:16039
void RemoveSpellCooldown(uint32 spell_id, bool update=false)
Definition Player.cpp:4284
uint32 GetSpecializationResetCost() const
Definition Player.h:2069
Player(WorldSession *session)
Definition Player.cpp:507
void AddTimedQuest(uint32 questId)
Definition Player.h:1856
void UpdateObjectVisibility(bool forced=true) override
Definition Player.cpp:18318
int32 m_spellPenetrationItemMod
Definition Player.h:3417
void SetFreePrimaryProfessions(uint16 profs)
Definition Player.h:2135
QuestObjectiveStatusSaveMap m_questObjectiveStatusSave
Definition Player.h:3393
void SendInitialActionButtons() const
Definition Player.h:2226
void _SaveInventory(SQLTransaction &trans)
Definition Player.cpp:14728
uint32 GetLootSpecOrClassSpec() const
void _LoadResearchDigsites(PreparedQueryResult result)
Definition Player.cpp:23229
void SetMap(Map *map) override
Definition Player.cpp:21655
uint32 GetBarberShopCost(uint8 newhairstyle, uint8 newhaircolor, uint8 newfacialhair, BarberShopStyleEntry const *newSkin=NULL)
Definition Player.cpp:20347
void SetResurrectRequestData(Unit *caster, uint32 health, uint32 mana, uint32 appliedAura)
Definition Player.cpp:17760
bool isAcceptWhispers() const
Definition Player.h:1361
void AddWhisperWhiteList(uint64 guid)
Definition Player.h:3148
size_t GetRewardedQuestCount() const
Definition Player.h:1966
bool CanReportAfkDueToLimit()
Definition Player.cpp:18026
void SendBuyFailed(BuyResult msg, ObjectGuid VendorGUID, uint32 item)
Definition Player.cpp:10736
bool LearnTalent(uint16 talentId)
Definition Player.cpp:21053
void CreateCorpse()
Definition Player.cpp:5311
void SendTransferAborted(uint32 mapid, TransferAbortReason reason, uint8 arg=0)
Definition Player.cpp:18715
bool IsInCinematic() const
Definition Player.h:2907
BoundInstancesMap & GetBoundInstances(DifficultyID difficulty)
Definition Player.h:2928
void DurabilityPointsLoss(Item *item, int32 points)
Definition Player.cpp:5456
uint32 m_holyPowerRegenTimerCount
Definition Player.h:3234
bool inCinematic
Definition Player.h:3610
void RemoveTimedQuest(uint32 questId)
Definition Player.h:1860
void SetTaxiCheater(bool on)
Definition Player.h:1386
uint32 GetMaxPersonalArenaRatingRequirement(uint32 minarenaslot) const
Definition Player.cpp:17387
uint32 GetChampioningFaction() const
Definition Player.h:3122
void LeftChannel(Channel *c)
Definition Player.cpp:5654
WorldSession * m_session
Definition Player.h:3430
void VisualizeItem(uint8 slot, Item *pItem)
void SetRuneConvertAura(uint8 index, AuraEffect const *aura)
Definition Player.cpp:20542
void ReportedAfkBy(Player *reporter)
This player has been blamed to be inactive in a battleground.
Definition Player.cpp:18036
InventoryResult CanStoreItem_InSpecificSlot(uint8 bag, uint8 slot, ItemPosCountVec &dest, ItemTemplate const *pProto, uint32 &count, bool swap, Item *pSrcItem) const
bool IsBeingForcedTeleportFar() const
Definition Player.h:2520
void AddLootedObject(uint64 guid)
Definition Player.h:2409
void RefundItem(Item *item)
Definition Player.cpp:22304
void SetVisibleItemSlot(uint8 slot, Item *pItem)
float GetRestBonus() const
Definition Player.h:1434
void SendQuestTimerFailed(uint32 questId)
uint64 GetLastGuildInviterGUID() const
Definition Player.h:2300
void _SaveActions(SQLTransaction &trans)
Definition Player.cpp:14624
void AddSpellMod(SpellModifier *mod, bool apply)
Definition Player.cpp:16254
void SetComboPoints(int8 cp)
Definition Player.h:1981
uint32 GetLevelPlayedTime() const
Definition Player.h:1425
bool isAllowedToLoot(const Creature *creature)
Definition Player.cpp:12883
void SendActionButtons(uint32 state) const
Definition Player.cpp:6676
void SendResetInstanceFailed(uint32 reason, uint32 MapId)
Definition Player.cpp:15567
uint32 m_ArmorProficiency
Definition Player.h:3459
DifficultyID GetDungeonDifficulty() const
Definition Player.h:2315
void ToggleDND()
Definition Player.cpp:2069
void _LoadInstanceTimeRestrictions(PreparedQueryResult result)
Definition Player.cpp:22448
void ResummonPetTemporaryUnSummonedIfAny()
Definition Player.cpp:21128
void _LoadBoundInstances(PreparedQueryResult result)
Definition Player.cpp:13804
void ApplyHealthRegenBonus(int32 amount, bool apply)
bool IsCanDelayTeleport() const
Definition Player.h:3537
void SetForcedTeleportFar(bool forced)
Definition Player.h:2514
uint32 inn_pos_mapid
Definition Player.h:3468
void AddRunePower(uint8 index)
Definition Player.cpp:20605
bool BuyItemFromVendorSlot(uint64 vendorguid, uint32 vendorslot, uint32 item, uint8 count, uint8 bag, uint8 slot)
Definition Player.cpp:17183
void SendItemDurations()
Definition Player.cpp:11598
void SendAttackSwingError(AttackSwingError error)
Definition Player.cpp:15457
void SetBattlegroundId(uint32 val, BattlegroundTypeId bgTypeId)
Definition Player.cpp:19254
uint32 GetGossipTextId(uint32 menuId, WorldObject *source)
Definition Player.cpp:12014
uint32 m_focusRegenTimerCount
Definition Player.h:3236
void SetVirtualItemSlot(uint8 i, Item *item)
Definition Player.cpp:10451
static uint8 GetRankFromDB(uint64 guid)
Definition Player.cpp:8030
RuneType GetLastUsedRune()
Definition Player.h:3075
uint32 CalculateTalentsPoints() const
Definition Player.cpp:20794
void learnQuestRewardedSpells()
Definition Player.cpp:18938
uint64 GetComboTarget() const
Definition Player.h:1983
void UpdateHomebindTime(uint32 time)
Definition Player.cpp:17402
void RemovedInsignia(Player *looterPlr)
Definition Player.cpp:9282
bool isDebugAreaTriggers
Definition Player.h:3142
void RemoveFromWorld() override
Definition Player.cpp:2430
bool m_FlyingBeforeCinematic
Definition Player.h:3614
void JoinedChannel(Channel *c)
Definition Player.cpp:5649
bool CanSeeSpellClickOn(Creature const *creature) const
Definition Player.cpp:21165
void SendSpellCooldowns()
Definition Player.cpp:17678
WorldLocation GetStartPosition() const
Definition Player.cpp:18057
void AddWeaponProficiency(uint32 newflag)
Definition Player.h:1665
void DeleteRefundReference(uint32 it)
Definition Player.cpp:22154
uint32 GetFreePrimaryProfessionPoints() const
Definition Player.h:2131
void PrepareGossipMenu(WorldObject *source, uint32 menuId=0, bool showQuests=false)
Definition Player.cpp:11668
void _LoadMailInit(PreparedQueryResult resultUnread, PreparedQueryResult resultDelivery)
Definition Player.cpp:13434
void UpdatePvP(bool state, bool override=false)
Definition Player.cpp:17484
uint32 m_teleport_options
Definition Player.h:3575
bool IsInWhisperWhiteList(uint64 guid)
Definition Player.cpp:22479
bool SatisfyQuestWeek(Quest const *qInfo, bool msg)
SpellCooldowns m_spellCooldowns
Definition Player.h:3590
void _LoadInventory(PreparedQueryResult result, uint32 timeDiff)
Definition Player.cpp:13075
void CleanupAfterTaxiFlight()
Definition Player.cpp:16748
void SetContestedPvPTimer(uint32 newTime)
Definition Player.h:2246
SeasonalEventQuestMap m_seasonalquests
Definition Player.h:3269
void SendEquipmentSetList()
Definition Player.cpp:21356
bool IsOutdoorPvPActive()
Definition Player.cpp:8272
PlayerMails m_mail
Definition Player.h:3402
void _SaveSpells(SQLTransaction &trans)
Definition Player.cpp:15256
Group * GetGroupInvite()
Definition Player.h:2964
void SetInGameTime(uint32 time)
Definition Player.h:1851
uint8 m_ChampioningType
Definition Player.h:3593
uint32 m_team
Definition Player.h:3357
void SendNewItem(Item *item, uint32 count, bool received, bool created, bool broadcast=false)
Definition Player.cpp:11604
Item * GetMItem(uint32 id)
void SetMoney(uint64 value)
Definition Player.cpp:18373
bool CanInteractWithQuestGiver(Object *questGiver)
Definition Player.cpp:2818
void SetMover(Unit *target)
Definition Player.cpp:19869
void RegenerateAll()
Definition Player.cpp:2479
void StopMirrorTimer(MirrorTimerType Type)
Definition Player.cpp:1101
bool IsImmuneToEnvironmentalDamage()
Definition Player.cpp:1109
bool m_canDodge
Definition Player.h:3460
void SendNewCurrency(uint32 id) const
send initialization of new currency for client
Definition Player.cpp:7542
uint32 m_groupUpdateMask
Definition Player.h:3488
void UpdateHonorFields()
Definition Player.cpp:7285
static DifficultyID CheckLoadedDungeonDifficultyID(DifficultyID difficulty)
Definition Player.cpp:20770
BGData m_bgData
Definition Player.h:3254
bool CanCaptureTowerPoint()
Definition Player.cpp:20340
void SendNotifyLootItemRemoved(uint8 lootSlot, ObjectGuid guid)
Definition Player.cpp:9690
uint32 GetQuestSlotTime(uint16 slot) const
float OCTRegenMPPerSpirit()
Definition Player.cpp:5948
Group * GetOriginalGroup()
Definition Player.h:3015
void SaveGoldToDB(SQLTransaction &trans)
Definition Player.cpp:14616
Spell * m_spellModTakingSpell
Definition Player.h:3139
void CorrectMetaGemEnchants(uint8 slot, bool apply)
Definition Player.cpp:17855
Mail * GetMail(uint32 id)
BattlegroundQueueTypeId GetBattlegroundQueueTypeId(uint32 index) const
Definition Player.cpp:19228
void AddKnownCurrency(uint32 itemId)
Definition Player.cpp:21101
std::queue< uint32 > m_timeSyncQueue
Definition Player.h:3595
float GetInnPosY() const
Definition Player.h:1457
uint32 _ConquestCurrencytotalWeekCap
Definition Player.h:3607
void SetBankBagSlotCount(uint8 count)
Definition Player.h:1556
void SendInstanceResetWarning(uint32 mapid, DifficultyID difficulty, uint32 time)
Definition Player.cpp:18727
QuestStatusSaveMap m_QuestStatusSave
Definition Player.h:3392
CUFProfile * _CUFProfiles[MAX_CUF_PROFILES]
Definition Player.h:3512
RestType GetRestType() const
Definition Player.h:1440
void SendResearchHistory()
Definition Player.cpp:23652
void SendLoot(uint64 guid, LootType loot_type, bool isAoE=false)
Definition Player.cpp:9346
void setCinematic(uint8 cine)
Definition Player.h:2218
void _LoadSpellCooldowns(PreparedQueryResult result)
Definition Player.cpp:4359
RuneType GetBaseRune(uint8 index) const
Definition Player.h:3057
uint32 m_lastpetnumber
Definition Player.h:3493
void QuestObjectiveSatisfy(uint32 objectId, uint32 amount, uint8 type=0u, uint64 guid=0u)
void UpdateAttackPowerAndDamage(bool ranged=false) override
bool CheckInstanceLoginValid()
Definition Player.cpp:14198
void SetLastPetNumber(uint32 petnumber)
Definition Player.h:2955
QuestStatusSaveMap m_RewardedQuestsSave
Definition Player.h:3396
void SendComboPoints()
Definition Player.cpp:18399
bool CanJoinConstantChannelInZone(ChatChannelsEntry const *channel, AreaTableEntry const *zone)
Definition Player.cpp:5635
DuelInfo * duel
Definition Player.h:2253
bool IsInSameGroupWith(Player const *p) const
Definition Player.cpp:3023
bool isTaxiCheater() const
Definition Player.h:1382
uint32 _pendingBindTimer
Definition Player.h:3602
uint32 GetQuestSlotState(uint16 slot) const
void CastItemUseSpell(Item *item, SpellCastTargets const &targets, uint8 cast_count, uint32 glyphIndex, SpellResearchData const *researchData=NULL)
Definition Player.cpp:9064
void SetBattlegroundOrBattlefieldRaid(Group *group, int8 subgroup=-1)
Definition Player.cpp:20119
bool IsForcedTeleportFar() const
Definition Player.h:2513
WorldLocation const & GetBattlegroundEntryPoint() const
Definition Player.h:2733
time_t m_Last_tick
Definition Player.h:1422
ReputationMgr & GetReputationMgr()
Definition Player.h:2555
static DrunkenState GetDrunkenstateByValue(uint8 value)
Definition Player.cpp:1346
bool IsBeingTeleported() const
Definition Player.h:2493
uint8 GetOriginalSubGroup() const
Definition Player.h:3023
bool IsQuestRewarded(uint32 quest_id) const
Definition Player.cpp:18380
uint32 GetRuneTypeBaseCooldown(RuneType runeType) const
Definition Player.cpp:20513
void SetUsedTalentCount(uint32 talents)
Definition Player.h:2066
bool SwapVoidStorageItem(uint8 oldSlot, uint8 newSlot)
Definition Player.cpp:22554
static WeaponAttackType GetAttackBySlot(uint8 slot)
void _SaveGlyphs(SQLTransaction &trans)
Definition Player.cpp:21680
void SetCurrency(uint32 id, uint32 count, bool printLog=true)
initialize currency count for custom initialization at create character
Definition Player.cpp:7842
void _SaveDailyQuestStatus(SQLTransaction &trans)
Definition Player.cpp:15089
void DestroyZoneLimitedItem(bool update, uint32 new_zone)
void RemoveArenaEnchantments(EnchantmentSlot slot)
Definition Player.cpp:10849
void HandleBaseModValue(BaseModGroup modGroup, BaseModType modType, float amount, bool apply)
Definition Player.cpp:5767
void UpdateSpellCritChance(uint32 school)
PlayerMenu * PlayerTalkClass
Definition Player.h:2680
void SendQuestComplete(Quest const *quest)
static uint32 const infinityCooldownDelay
Definition Player.h:2164
void _LoadDailyQuestStatus(PreparedQueryResult result)
Definition Player.cpp:13648
void SetInviteForBattlegroundQueueType(BattlegroundQueueTypeId bgQueueTypeId, uint32 instanceId)
Definition Player.cpp:19295
Quest const * GetNextQuest(uint64 guid, Quest const *quest)
void SetSpecsCount(uint8 count)
Definition Player.h:2080
bool GetBGAccessByLevel(BattlegroundTypeId bgTypeId) const
Definition Player.cpp:19319
void SetBindPoint(uint64 guid)
Definition Player.cpp:10383
bool HasEnoughMoney(uint64 amount) const
Definition Player.h:1950
void SetRandomWinner(bool isWinner)
Definition Player.cpp:22407
bool AddTalent(uint32 spellId, uint8 spec, bool learning)
Definition Player.cpp:3580
void BuildPlayerTalentsInfoData(WorldPacket *data)
Definition Player.cpp:21189
void RewardPlayerAndGroupAtEvent(uint32 creature_id, WorldObject *pRewardSource)
Definition Player.cpp:19762
uint32 m_GuildIdInvited
Definition Player.h:3400
uint32 GetInnPosMapId() const
Definition Player.h:1449
float m_homebindX
Definition Player.h:2849
uint8 AddVoidStorageItem(const VoidStorageItem &item)
Definition Player.cpp:22508
void resetSpells(bool myClassOnly=false)
Definition Player.cpp:18782
bool m_itemUpdateQueueBlocked
Definition Player.h:3383
void _SaveSkills(SQLTransaction &trans)
Definition Player.cpp:15200
bool IsValidPos(uint16 pos, bool explicit_pos)
Definition Player.h:1547
void RemoveArenaSpellCooldowns(bool removeActivePetCooldowns=false)
Definition Player.cpp:4317
void ResetAchievements()
Definition Player.cpp:20998
InventoryResult CanUseItem(Item *pItem, bool not_loading=true) const
std::string GetCoordsMapAreaAndZoneString()
Definition Player.cpp:22655
uint32 _pendingBindId
Definition Player.h:3601
void ResurrectPlayer(float restore_percent, bool applySickness=false)
Definition Player.cpp:5203
bool UpdateGatherSkill(uint32 SkillId, uint32 SkillValue, uint32 RedLevel, uint32 Multiplicator=1)
Definition Player.cpp:6194
void SendQuestUpdateAddPlayer(Quest const *quest, QuestObjective const *objective, uint16 oldCount, uint16 addCount)
void UpdateAfkReport(time_t currTime)
checks the 15 afk reports per 5 minutes limit
Definition Player.cpp:15585
int32 GetQuestLevel() const
Definition QuestDef.h:275
Definition Spell.h:289
Item * GetSpellCastItem() const
Definition Player.cpp:163
bool HasItem(uint64 itemGuid) const
Definition Player.cpp:145
uint64 m_money
Definition Player.h:1124
bool m_acceptProccess
Definition Player.h:1122
bool HasSpellCastItem() const
Definition Player.h:1088
uint32 m_spell
Definition Player.h:1126
void SetMoney(uint64 money)
Definition Player.cpp:207
Player * GetTrader() const
Definition Player.h:1070
void SetInAcceptProcess(bool state)
Definition Player.h:1109
Item * GetItem(TradeSlots slot) const
Definition Player.cpp:140
TradeSlots GetTradeSlotForItem(uint64 itemGuid) const
Definition Player.cpp:154
bool IsAccepted() const
Definition Player.h:1099
uint64 GetMoney() const
Definition Player.h:1093
TradeData * GetTraderData() const
Definition Player.cpp:135
void Update(bool for_trader=true)
Definition Player.cpp:220
uint32 GetSpell() const
Definition Player.h:1081
void SetAccepted(bool state, bool crosssend=false)
Definition Player.cpp:228
uint64 m_spellCastItem
Definition Player.h:1127
Player * m_player
Definition Player.h:1118
void SetItem(TradeSlots slot, Item *item)
Definition Player.cpp:168
bool IsInAcceptProcess() const
Definition Player.h:1105
TradeData(Player *player, Player *trader)
Definition Player.h:1063
void SetSpell(uint32 spell_id, Item *castItem=NULL)
Definition Player.cpp:190
Player * m_trader
Definition Player.h:1119
uint64 m_items[TRADE_SLOT_COUNT]
Definition Player.h:1129
bool m_accepted
Definition Player.h:1121
Definition Unit.h:1367
uint8 getClass() const
Definition Unit.h:1543
bool HasAuraType(AuraType auraType) const
Unit(bool isWorldObject)
Definition Unit.cpp:142
uint8 getLevel() const
Definition Unit.h:1528
uint8 getRace() const
Definition Unit.h:1535
WorldLocation(uint32 _mapid=MAPID_INVALID, float _x=0, float _y=0, float _z=0, float _o=0)
Definition Object.h:536
WorldObject(bool isWorldObject)
Definition Object.cpp:1514
float GetVisibilityRange() const
Definition Object.cpp:2070
MovementInfo m_movementInfo
Definition Object.h:807
Player session in the World.
std::string questFailedText
Definition Player.h:950
uint32 achievement
Definition Player.h:949
uint64 packedData
Definition Player.h:355
void SetActionAndType(uint32 action, ActionButtonType type)
Definition Player.h:372
ActionButtonUpdateState uState
Definition Player.h:356
uint32 GetAction() const
Definition Player.h:367
ActionButtonType GetType() const
Definition Player.h:359
uint32 GetHiType() const
Definition Player.h:363
float y1
Definition Player.h:472
uint32 areaID
Definition Player.h:468
float x1
Definition Player.h:470
float y2
Definition Player.h:473
uint32 areaFlag
Definition Player.h:469
float x2
Definition Player.h:471
Holder for Battleground data.
Definition Player.h:999
uint32 bgTeam
What side the player will be added to.
Definition Player.h:1016
BattlegroundTypeId bgTypeID
when player is teleported to BG - (it is battleground's GUID)
Definition Player.h:1008
time_t bgAfkReportedTimer
Definition Player.h:1014
uint32 taxiPath[2]
Definition Player.h:1019
void ClearTaxiPath()
Definition Player.h:1023
uint32 bgInstanceID
Definition Player.h:1006
std::set< uint32 > bgAfkReporter
Definition Player.h:1012
bool HasTaxiPath() const
Definition Player.h:1027
WorldLocation joinPos
From where player entered BG.
Definition Player.h:1021
uint8 bgAfkReportedCount
Definition Player.h:1013
BGData()
Definition Player.h:1000
std::map< uint32, uint32 > bgQueuesJoinedTime
Definition Player.h:1010
uint32 mountSpell
Definition Player.h:1018
Represents a CompactUnitFrame profile.
Definition Player.h:246
uint8 HealthText
Definition Player.h:281
uint16 Unk152
Definition Player.h:290
uint8 Unk147
Definition Player.h:285
uint16 FrameWidth
Definition Player.h:279
uint8 SortBy
Definition Player.h:280
uint16 FrameHeight
Definition Player.h:278
uint8 Unk146
Definition Player.h:284
std::string ProfileName
Definition Player.h:277
uint16 Unk150
Definition Player.h:289
uint8 Unk148
Definition Player.h:286
CUFProfile(const std::string &name, uint16 frameHeight, uint16 frameWidth, uint8 sortBy, uint8 healthText, uint32 boolOptions, uint8 unk146, uint8 unk147, uint8 unk148, uint16 unk150, uint16 unk152, uint16 unk154)
Definition Player.h:261
CUFProfile()
Definition Player.h:247
std::bitset< CUF_BOOL_OPTIONS_COUNT > BoolOptions
Definition Player.h:293
uint16 Unk154
Definition Player.h:291
uint32 bit_index
bool isMounted
Definition Player.h:463
Player * opponent
Definition Player.h:459
time_t startTimer
Definition Player.h:460
time_t outOfBound
Definition Player.h:462
Player * initiator
Definition Player.h:458
DuelInfo()
Definition Player.h:455
time_t startTime
Definition Player.h:461
EnchantmentSlot slot
Definition Player.h:527
uint32 leftduration
Definition Player.h:528
EnchantDuration(Item *_item, EnchantmentSlot _slot, uint32 _leftduration)
Definition Player.h:520
Item * item
Definition Player.h:526
std::string Name
Definition Player.h:759
std::string IconName
Definition Player.h:760
EquipmentSetUpdateState state
Definition Player.h:763
uint32 Items[EQUIPMENT_SLOT_END]
Definition Player.h:762
uint64 Guid
Definition Player.h:758
uint32 IgnoreMask
Definition Player.h:761
InstanceSave * save
Definition Player.h:931
ItemPosCount(uint16 _pos, uint32 _count)
Definition Player.h:772
uint32 count
Definition Player.h:775
bool isContainedIn(std::vector< ItemPosCount > const &vec) const
Definition Player.cpp:20254
uint16 pos
Definition Player.h:774
Definition Mail.h:156
BattlegroundQueueTypeId bgQueueTypeId
Definition Player.h:3249
PlayerCreateInfoAction(uint8 _button, uint32 _action, uint8 _type)
Definition Player.h:410
PlayerCreateInfoItem(uint32 id, uint32 amount)
Definition Player.h:390
uint32 TrackedQuantity
Definition Player.h:194
uint8 Flags
Definition Player.h:195
uint32 WeeklyQuantity
Definition Player.h:193
uint32 Quantity
Definition Player.h:192
PlayerCurrencyState state
Definition Player.h:191
float orientation
Definition Player.h:430
PlayerInfo()
Definition Player.h:422
PlayerCreateInfoActions action
Definition Player.h:436
uint16 displayId_m
Definition Player.h:431
float positionX
Definition Player.h:427
uint32 areaId
Definition Player.h:426
float positionY
Definition Player.h:428
PlayerCreateInfoSpells spell
Definition Player.h:434
PlayerLevelInfo * levelInfo
Definition Player.h:438
float positionZ
Definition Player.h:429
PlayerCreateInfoItems item
Definition Player.h:433
uint32 mapId
Definition Player.h:425
PlayerCreateInfoSpells spell_cast
Definition Player.h:435
uint16 displayId_f
Definition Player.h:432
uint16 stats[MAX_STATS]
Definition Player.h:402
bool active
Definition Player.h:102
bool disabled
Definition Player.h:104
bool dependent
Definition Player.h:103
PlayerSpellState state
Definition Player.h:101
uint8 spec
Definition Player.h:110
PlayerSpellState state
Definition Player.h:109
PlayerTalentMap * Talents
Definition Player.h:1208
uint32 Glyphs[MAX_GLYPH_SLOT_INDEX]
Definition Player.h:1209
time_t ResetTalentsTime
Definition Player.h:1215
PlayerTalentInfo(PlayerTalentInfo const &)
struct PlayerTalentInfo::TalentSpecInfo SpecInfo[MAX_TALENT_SPECS]
time_t ResetSpecializationTime
Definition Player.h:1217
uint32 ResetSpecializationCost
Definition Player.h:1216
uint32 UsedTalentCount
Definition Player.h:1213
uint32 ResetTalentsCost
Definition Player.h:1214
float GetPositionZ() const
Definition Object.h:330
float GetOrientation() const
Definition Object.h:331
float GetPositionX() const
Definition Object.h:328
float GetPositionY() const
Definition Object.h:329
bool IsHostile
Definition Player.h:446
bool IsInNoPvPArea
Definition Player.h:448
bool IsInFFAPvPArea
Definition Player.h:449
bool IsInHostileArea
Definition Player.h:447
PvPInfo()
Definition Player.h:443
time_t EndTimer
Definition Player.h:450
uint8 GetRemainingFindCount() const
Definition Player.h:1260
ResearchDigsite(ResearchDigsiteInfo const *digsiteInfo, uint8 remainingFindCount)
Definition Player.h:1234
ResearchDigsiteInfo const * GetDigsiteInfo() const
Definition Player.h:1256
ArchaeologyFindInfo const * _archaeologyFind
Definition Player.h:1267
ArchaeologyFindInfo const * GetArchaeologyFind() const
Definition Player.h:1243
ResearchDigsiteInfo const * _digsiteInfo
Definition Player.h:1266
bool IsEmptyDigsite() const
Definition Player.h:1247
void ChangeArchaeologyFind(ArchaeologyFindInfo const *find)
Definition Player.h:1239
uint8 _remainingFindCount
Definition Player.h:1268
void SelectNewArchaeologyFind(bool onInit)
Definition Player.cpp:23556
uint32 GetDigsiteId() const
Definition Player.h:1252
uint32 firstResearchTimestamp
Definition Player.h:1274
WorldLocation Location
Definition Player.h:1136
RuneType BaseRune
Definition Player.h:495
AuraEffect const * ConvertAura
Definition Player.h:498
uint32 Cooldown
Definition Player.h:497
RuneType CurrentRune
Definition Player.h:496
RuneType lastUsedRune
Definition Player.h:505
void SetRuneState(uint8 index, bool set=true)
Definition Player.h:507
RuneInfo runes[MAX_RUNES]
Definition Player.h:503
uint8 runeState
Definition Player.h:504
SkillUpdateState uState
Definition Player.h:665
SkillStatusData(uint8 _pos, SkillUpdateState _uState)
Definition Player.h:662
uint16 itemid
Definition Player.h:302
time_t end
Definition Player.h:301
int16 charges
Definition Player.h:173
SpellModOp op
Definition Player.h:171
SpellModType type
Definition Player.h:172
uint32 spellId
Definition Player.h:176
flag128 mask
Definition Player.h:175
Aura *const ownerAura
Definition Player.h:177
SpellModifier(Aura *_ownerAura=NULL)
Definition Player.h:169
float value
Definition Player.h:174
uint32 ItemRandomPropertyId
Definition Player.h:1056
uint64 ItemId
Definition Player.h:1053
uint32 CreatorGuid
Definition Player.h:1055
uint32 ItemEntry
Definition Player.h:1054
uint32 ItemSuffixFactor
Definition Player.h:1057
VoidStorageItem(uint64 id, uint32 entry, uint32 creator, uint32 randomPropertyId, uint32 suffixFactor)
Definition Player.h:1044
Definition adtfile.h:28