Update Player for 322a
--HG-- branch : trunk
This commit is contained in:
+378
-188
File diff suppressed because it is too large
Load Diff
+81
-52
@@ -38,6 +38,7 @@
|
|||||||
#include "AchievementMgr.h"
|
#include "AchievementMgr.h"
|
||||||
#include "ReputationMgr.h"
|
#include "ReputationMgr.h"
|
||||||
#include "BattleGround.h"
|
#include "BattleGround.h"
|
||||||
|
#include "DBCEnums.h"
|
||||||
|
|
||||||
#include<string>
|
#include<string>
|
||||||
#include<vector>
|
#include<vector>
|
||||||
@@ -178,7 +179,7 @@ struct ActionButton
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAX_ACTION_BUTTONS 132 //checked in 2.3.0
|
#define MAX_ACTION_BUTTONS 144 //checked in 3.2.0
|
||||||
|
|
||||||
typedef std::map<uint8,ActionButton> ActionButtonList;
|
typedef std::map<uint8,ActionButton> ActionButtonList;
|
||||||
|
|
||||||
@@ -339,10 +340,10 @@ enum LfgType
|
|||||||
|
|
||||||
enum LfgRoles
|
enum LfgRoles
|
||||||
{
|
{
|
||||||
LEADER = 1,
|
LEADER = 0x01,
|
||||||
TANK = 2,
|
TANK = 0x02,
|
||||||
HEALER = 4,
|
HEALER = 0x04,
|
||||||
DAMAGE = 8
|
DAMAGE = 0x08
|
||||||
};
|
};
|
||||||
|
|
||||||
struct LookingForGroupSlot
|
struct LookingForGroupSlot
|
||||||
@@ -438,7 +439,9 @@ enum PlayerFlags
|
|||||||
PLAYER_FLAGS_UNK22 = 0x00200000,
|
PLAYER_FLAGS_UNK22 = 0x00200000,
|
||||||
PLAYER_FLAGS_UNK23 = 0x00400000,
|
PLAYER_FLAGS_UNK23 = 0x00400000,
|
||||||
PLAYER_ALLOW_ONLY_ABILITY = 0x00800000, // used by bladestorm and killing spree
|
PLAYER_ALLOW_ONLY_ABILITY = 0x00800000, // used by bladestorm and killing spree
|
||||||
PLAYER_FLAGS_UNK25 = 0x01000000 // disabled all melee ability on tab include autoattack
|
PLAYER_FLAGS_UNK25 = 0x01000000, // disabled all melee ability on tab include autoattack
|
||||||
|
|
||||||
|
PLAYER_FLAGS_NO_XP_GAIN = 0x02000000
|
||||||
};
|
};
|
||||||
|
|
||||||
// used for PLAYER__FIELD_KNOWN_TITLES field (uint64), (1<<bit_index) without (-1)
|
// used for PLAYER__FIELD_KNOWN_TITLES field (uint64), (1<<bit_index) without (-1)
|
||||||
@@ -734,6 +737,9 @@ enum TransferAbortReason
|
|||||||
TRANSFER_ABORT_NEED_GROUP = 0x0B, // 3.1
|
TRANSFER_ABORT_NEED_GROUP = 0x0B, // 3.1
|
||||||
TRANSFER_ABORT_NOT_FOUND2 = 0x0C, // 3.1
|
TRANSFER_ABORT_NOT_FOUND2 = 0x0C, // 3.1
|
||||||
TRANSFER_ABORT_NOT_FOUND3 = 0x0D, // 3.1
|
TRANSFER_ABORT_NOT_FOUND3 = 0x0D, // 3.1
|
||||||
|
TRANSFER_ABORT_NOT_FOUND4 = 0x0E, // 3.2
|
||||||
|
TRANSFER_ABORT_REALM_ONLY = 0x0F, // All players on party must be from the same realm.
|
||||||
|
TRANSFER_ABORT_MAP_NOT_ALLOWED = 0x10, // Map can't be entered at this time.
|
||||||
};
|
};
|
||||||
|
|
||||||
enum InstanceResetWarningType
|
enum InstanceResetWarningType
|
||||||
@@ -745,6 +751,19 @@ enum InstanceResetWarningType
|
|||||||
RAID_INSTANCE_EXPIRED = 5
|
RAID_INSTANCE_EXPIRED = 5
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// PLAYER_FIELD_ARENA_TEAM_INFO_1_1 offsets
|
||||||
|
enum ArenaTeamInfoType
|
||||||
|
{
|
||||||
|
ARENA_TEAM_ID = 0,
|
||||||
|
ARENA_TEAM_TYPE = 1, // new in 3.2 - team type?
|
||||||
|
ARENA_TEAM_MEMBER = 2, // 0 - captain, 1 - member
|
||||||
|
ARENA_TEAM_GAMES_WEEK = 3,
|
||||||
|
ARENA_TEAM_GAMES_SEASON = 4,
|
||||||
|
ARENA_TEAM_WINS_SEASON = 5,
|
||||||
|
ARENA_TEAM_PERSONAL_RATING = 6,
|
||||||
|
ARENA_TEAM_END = 7
|
||||||
|
};
|
||||||
|
|
||||||
class InstanceSave;
|
class InstanceSave;
|
||||||
|
|
||||||
enum RestType
|
enum RestType
|
||||||
@@ -988,12 +1007,11 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
|
|
||||||
bool IsInWater() const { return m_isInWater; }
|
bool IsInWater() const { return m_isInWater; }
|
||||||
bool IsUnderWater() const;
|
bool IsUnderWater() const;
|
||||||
bool IsFalling() { return GetPositionZ() < m_lastFallZ; }
|
|
||||||
|
|
||||||
void SendInitialPacketsBeforeAddToMap();
|
void SendInitialPacketsBeforeAddToMap();
|
||||||
void SendInitialPacketsAfterAddToMap();
|
void SendInitialPacketsAfterAddToMap();
|
||||||
void SendTransferAborted(uint32 mapid, uint8 reason, uint8 arg = 0);
|
void SendTransferAborted(uint32 mapid, uint8 reason, uint8 arg = 0);
|
||||||
void SendInstanceResetWarning(uint32 mapid, uint32 difficulty, uint32 time);
|
void SendInstanceResetWarning(uint32 mapid, Difficulty difficulty, uint32 time);
|
||||||
|
|
||||||
Creature* GetNPCIfCanInteractWith(uint64 guid, uint32 npcflagmask);
|
Creature* GetNPCIfCanInteractWith(uint64 guid, uint32 npcflagmask);
|
||||||
bool CanInteractWithNPCs(bool alive = true) const;
|
bool CanInteractWithNPCs(bool alive = true) const;
|
||||||
@@ -1001,13 +1019,13 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
|
|
||||||
bool ToggleAFK();
|
bool ToggleAFK();
|
||||||
bool ToggleDND();
|
bool ToggleDND();
|
||||||
bool isAFK() const { return HasFlag(PLAYER_FLAGS,PLAYER_FLAGS_AFK); };
|
bool isAFK() const { return HasFlag(PLAYER_FLAGS,PLAYER_FLAGS_AFK); }
|
||||||
bool isDND() const { return HasFlag(PLAYER_FLAGS,PLAYER_FLAGS_DND); };
|
bool isDND() const { return HasFlag(PLAYER_FLAGS,PLAYER_FLAGS_DND); }
|
||||||
uint8 chatTag() const;
|
uint8 chatTag() const;
|
||||||
std::string afkMsg;
|
std::string afkMsg;
|
||||||
std::string dndMsg;
|
std::string dndMsg;
|
||||||
|
|
||||||
uint32 GetBarberShopCost(uint8 newhairstyle, uint8 newhaircolor, uint8 newfacialhair);
|
uint32 GetBarberShopCost(uint8 newhairstyle, uint8 newhaircolor, uint8 newfacialhair, BarberShopStyleEntry const* newSkin=NULL);
|
||||||
|
|
||||||
PlayerSocial *GetSocial() { return m_social; }
|
PlayerSocial *GetSocial() { return m_social; }
|
||||||
|
|
||||||
@@ -1039,8 +1057,8 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
time_t m_logintime;
|
time_t m_logintime;
|
||||||
time_t m_Last_tick;
|
time_t m_Last_tick;
|
||||||
uint32 m_Played_time[MAX_PLAYED_TIME_INDEX];
|
uint32 m_Played_time[MAX_PLAYED_TIME_INDEX];
|
||||||
uint32 GetTotalPlayedTime() { return m_Played_time[PLAYED_TIME_TOTAL]; };
|
uint32 GetTotalPlayedTime() { return m_Played_time[PLAYED_TIME_TOTAL]; }
|
||||||
uint32 GetLevelPlayedTime() { return m_Played_time[PLAYED_TIME_LEVEL]; };
|
uint32 GetLevelPlayedTime() { return m_Played_time[PLAYED_TIME_LEVEL]; }
|
||||||
|
|
||||||
void setDeathState(DeathState s); // overwrite Unit::setDeathState
|
void setDeathState(DeathState s); // overwrite Unit::setDeathState
|
||||||
|
|
||||||
@@ -1051,21 +1069,21 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
inn_pos_y = y;
|
inn_pos_y = y;
|
||||||
inn_pos_z = z;
|
inn_pos_z = z;
|
||||||
time_inn_enter = time;
|
time_inn_enter = time;
|
||||||
};
|
}
|
||||||
|
|
||||||
float GetRestBonus() const { return m_rest_bonus; };
|
float GetRestBonus() const { return m_rest_bonus; }
|
||||||
void SetRestBonus(float rest_bonus_new);
|
void SetRestBonus(float rest_bonus_new);
|
||||||
|
|
||||||
RestType GetRestType() const { return rest_type; };
|
RestType GetRestType() const { return rest_type; }
|
||||||
void SetRestType(RestType n_r_type) { rest_type = n_r_type; };
|
void SetRestType(RestType n_r_type) { rest_type = n_r_type; }
|
||||||
|
|
||||||
uint32 GetInnPosMapId() const { return inn_pos_mapid; };
|
uint32 GetInnPosMapId() const { return inn_pos_mapid; }
|
||||||
float GetInnPosX() const { return inn_pos_x; };
|
float GetInnPosX() const { return inn_pos_x; }
|
||||||
float GetInnPosY() const { return inn_pos_y; };
|
float GetInnPosY() const { return inn_pos_y; }
|
||||||
float GetInnPosZ() const { return inn_pos_z; };
|
float GetInnPosZ() const { return inn_pos_z; }
|
||||||
|
|
||||||
int GetTimeInnEnter() const { return time_inn_enter; };
|
int GetTimeInnEnter() const { return time_inn_enter; }
|
||||||
void UpdateInnerTime (int time) { time_inn_enter = time; };
|
void UpdateInnerTime (int time) { time_inn_enter = time; }
|
||||||
|
|
||||||
Pet* GetPet() const;
|
Pet* GetPet() const;
|
||||||
Pet* SummonPet(uint32 entry, float x, float y, float z, float ang, PetType petType, uint32 despwtime);
|
Pet* SummonPet(uint32 entry, float x, float y, float z, float ang, PetType petType, uint32 despwtime);
|
||||||
@@ -1324,12 +1342,12 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
void SendQuestUpdateAddItem( Quest const* pQuest, uint32 item_idx, uint32 count );
|
void SendQuestUpdateAddItem( Quest const* pQuest, uint32 item_idx, uint32 count );
|
||||||
void SendQuestUpdateAddCreatureOrGo( Quest const* pQuest, uint64 guid, uint32 creatureOrGO_idx, uint32 old_count, uint32 add_count );
|
void SendQuestUpdateAddCreatureOrGo( Quest const* pQuest, uint64 guid, uint32 creatureOrGO_idx, uint32 old_count, uint32 add_count );
|
||||||
|
|
||||||
uint64 GetDivider() { return m_divider; };
|
uint64 GetDivider() { return m_divider; }
|
||||||
void SetDivider( uint64 guid ) { m_divider = guid; };
|
void SetDivider( uint64 guid ) { m_divider = guid; }
|
||||||
|
|
||||||
uint32 GetInGameTime() { return m_ingametime; };
|
uint32 GetInGameTime() { return m_ingametime; }
|
||||||
|
|
||||||
void SetInGameTime( uint32 time ) { m_ingametime = time; };
|
void SetInGameTime( uint32 time ) { m_ingametime = time; }
|
||||||
|
|
||||||
void AddTimedQuest( uint32 quest_id ) { m_timedquests.insert(quest_id); }
|
void AddTimedQuest( uint32 quest_id ) { m_timedquests.insert(quest_id); }
|
||||||
void RemoveTimedQuest( uint32 quest_id ) { m_timedquests.erase(quest_id); }
|
void RemoveTimedQuest( uint32 quest_id ) { m_timedquests.erase(quest_id); }
|
||||||
@@ -1421,15 +1439,14 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
void AddNewMailDeliverTime(time_t deliver_time);
|
void AddNewMailDeliverTime(time_t deliver_time);
|
||||||
bool IsMailsLoaded() const { return m_mailsLoaded; }
|
bool IsMailsLoaded() const { return m_mailsLoaded; }
|
||||||
|
|
||||||
//void SetMail(Mail *m);
|
|
||||||
void RemoveMail(uint32 id);
|
void RemoveMail(uint32 id);
|
||||||
|
|
||||||
void AddMail(Mail* mail) { m_mail.push_front(mail);}// for call from WorldSession::SendMailTo
|
void AddMail(Mail* mail) { m_mail.push_front(mail);}// for call from WorldSession::SendMailTo
|
||||||
uint32 GetMailSize() { return m_mail.size();};
|
uint32 GetMailSize() { return m_mail.size();}
|
||||||
Mail* GetMail(uint32 id);
|
Mail* GetMail(uint32 id);
|
||||||
|
|
||||||
PlayerMails::iterator GetMailBegin() { return m_mail.begin();};
|
PlayerMails::iterator GetMailBegin() { return m_mail.begin();}
|
||||||
PlayerMails::iterator GetMailEnd() { return m_mail.end();};
|
PlayerMails::iterator GetMailEnd() { return m_mail.end();}
|
||||||
|
|
||||||
/*********************************************************/
|
/*********************************************************/
|
||||||
/*** MAILED ITEMS SYSTEM ***/
|
/*** MAILED ITEMS SYSTEM ***/
|
||||||
@@ -1575,7 +1592,7 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
m_resurrectZ = Z;
|
m_resurrectZ = Z;
|
||||||
m_resurrectHealth = health;
|
m_resurrectHealth = health;
|
||||||
m_resurrectMana = mana;
|
m_resurrectMana = mana;
|
||||||
};
|
}
|
||||||
void clearResurrectRequestData() { setResurrectRequestData(0,0,0.0f,0.0f,0.0f,0,0); }
|
void clearResurrectRequestData() { setResurrectRequestData(0,0,0.0f,0.0f,0.0f,0,0); }
|
||||||
bool isRessurectRequestedBy(uint64 guid) const { return m_resurrectGUID == guid; }
|
bool isRessurectRequestedBy(uint64 guid) const { return m_resurrectGUID == guid; }
|
||||||
bool isRessurectRequested() const { return m_resurrectGUID != 0; }
|
bool isRessurectRequested() const { return m_resurrectGUID != 0; }
|
||||||
@@ -1626,6 +1643,7 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
void UpdateDuelFlag(time_t currTime);
|
void UpdateDuelFlag(time_t currTime);
|
||||||
void CheckDuelDistance(time_t currTime);
|
void CheckDuelDistance(time_t currTime);
|
||||||
void DuelComplete(DuelCompleteType type);
|
void DuelComplete(DuelCompleteType type);
|
||||||
|
void SendDuelCountdown(uint32 counter);
|
||||||
|
|
||||||
bool IsGroupVisibleFor(Player* p) const;
|
bool IsGroupVisibleFor(Player* p) const;
|
||||||
bool IsInSameGroupWith(Player const* p) const;
|
bool IsInSameGroupWith(Player const* p) const;
|
||||||
@@ -1646,19 +1664,22 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
static void RemovePetitionsAndSigns(uint64 guid, uint32 type);
|
static void RemovePetitionsAndSigns(uint64 guid, uint32 type);
|
||||||
|
|
||||||
// Arena Team
|
// Arena Team
|
||||||
void SetInArenaTeam(uint32 ArenaTeamId, uint8 slot)
|
void SetInArenaTeam(uint32 ArenaTeamId, uint8 slot, uint8 type)
|
||||||
{
|
{
|
||||||
SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (slot * 6), ArenaTeamId);
|
SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (slot * ARENA_TEAM_END) + ARENA_TEAM_ID, ArenaTeamId);
|
||||||
|
SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (slot * ARENA_TEAM_END) + ARENA_TEAM_TYPE, type);
|
||||||
}
|
}
|
||||||
uint32 GetArenaTeamId(uint8 slot) { return GetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (slot * 6)); }
|
uint32 GetArenaTeamId(uint8 slot) { return GetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (slot * ARENA_TEAM_END)); }
|
||||||
static uint32 GetArenaTeamIdFromDB(uint64 guid, uint8 slot);
|
static uint32 GetArenaTeamIdFromDB(uint64 guid, uint8 slot);
|
||||||
void SetArenaTeamIdInvited(uint32 ArenaTeamId) { m_ArenaTeamIdInvited = ArenaTeamId; }
|
void SetArenaTeamIdInvited(uint32 ArenaTeamId) { m_ArenaTeamIdInvited = ArenaTeamId; }
|
||||||
uint32 GetArenaTeamIdInvited() { return m_ArenaTeamIdInvited; }
|
uint32 GetArenaTeamIdInvited() { return m_ArenaTeamIdInvited; }
|
||||||
static void LeaveAllArenaTeams(uint64 guid);
|
static void LeaveAllArenaTeams(uint64 guid);
|
||||||
|
|
||||||
void SetDifficulty(uint32 dungeon_difficulty) { m_dungeonDifficulty = dungeon_difficulty; }
|
Difficulty GetDifficulty(bool isRaid) const { return isRaid ? m_raidDifficulty : m_dungeonDifficulty; }
|
||||||
uint8 GetDifficulty() { return m_dungeonDifficulty; }
|
Difficulty GetDungeonDifficulty() const { return m_dungeonDifficulty; }
|
||||||
bool IsHeroic() { return m_dungeonDifficulty == DIFFICULTY_HEROIC; }
|
Difficulty GetRaidDifficulty() const { return m_raidDifficulty; }
|
||||||
|
void SetDungeonDifficulty(Difficulty dungeon_difficulty) { m_dungeonDifficulty = dungeon_difficulty; }
|
||||||
|
void SetRaidDifficulty(Difficulty raid_difficulty) { m_raidDifficulty = raid_difficulty; }
|
||||||
|
|
||||||
bool UpdateSkill(uint32 skill_id, uint32 step);
|
bool UpdateSkill(uint32 skill_id, uint32 step);
|
||||||
bool UpdateSkillPro(uint16 SkillId, int32 Chance, uint32 step);
|
bool UpdateSkillPro(uint16 SkillId, int32 Chance, uint32 step);
|
||||||
@@ -1701,9 +1722,11 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
float GetRatingCoefficient(CombatRating cr) const;
|
float GetRatingCoefficient(CombatRating cr) const;
|
||||||
float GetRatingBonusValue(CombatRating cr) const;
|
float GetRatingBonusValue(CombatRating cr) const;
|
||||||
uint32 GetMeleeCritDamageReduction(uint32 damage) const;
|
uint32 GetMeleeCritDamageReduction(uint32 damage) const;
|
||||||
|
uint32 GetMeleeDamageReduction(uint32 damage) const;
|
||||||
uint32 GetRangedCritDamageReduction(uint32 damage) const;
|
uint32 GetRangedCritDamageReduction(uint32 damage) const;
|
||||||
|
uint32 GetRangedDamageReduction(uint32 damage) const;
|
||||||
uint32 GetSpellCritDamageReduction(uint32 damage) const;
|
uint32 GetSpellCritDamageReduction(uint32 damage) const;
|
||||||
uint32 GetDotDamageReduction(uint32 damage) const;
|
uint32 GetSpellDamageReduction(uint32 damage) const;
|
||||||
uint32 GetBaseSpellPowerBonus() { return m_baseSpellPower; }
|
uint32 GetBaseSpellPowerBonus() { return m_baseSpellPower; }
|
||||||
|
|
||||||
float GetExpertiseDodgeOrParryReduction(WeaponAttackType attType) const;
|
float GetExpertiseDodgeOrParryReduction(WeaponAttackType attType) const;
|
||||||
@@ -1721,6 +1744,7 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
void UpdateArmorPenetration(int32 amount);
|
void UpdateArmorPenetration(int32 amount);
|
||||||
void UpdateExpertise(WeaponAttackType attType);
|
void UpdateExpertise(WeaponAttackType attType);
|
||||||
void ApplyManaRegenBonus(int32 amount, bool apply);
|
void ApplyManaRegenBonus(int32 amount, bool apply);
|
||||||
|
void ApplyHealthRegenBonus(int32 amount, bool apply);
|
||||||
void UpdateManaRegen();
|
void UpdateManaRegen();
|
||||||
|
|
||||||
const uint64& GetLootGUID() const { return m_lootGuid; }
|
const uint64& GetLootGUID() const { return m_lootGuid; }
|
||||||
@@ -1746,7 +1770,8 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
void SendExplorationExperience(uint32 Area, uint32 Experience);
|
void SendExplorationExperience(uint32 Area, uint32 Experience);
|
||||||
|
|
||||||
void SendDungeonDifficulty(bool IsInGroup);
|
void SendDungeonDifficulty(bool IsInGroup);
|
||||||
void ResetInstances(uint8 method);
|
void SendRaidDifficulty(bool IsInGroup);
|
||||||
|
void ResetInstances(uint8 method, bool isRaid);
|
||||||
void SendResetInstanceSuccess(uint32 MapId);
|
void SendResetInstanceSuccess(uint32 MapId);
|
||||||
void SendResetInstanceFailed(uint32 reason, uint32 MapId);
|
void SendResetInstanceFailed(uint32 reason, uint32 MapId);
|
||||||
void SendResetFailedNotify(uint32 mapid);
|
void SendResetFailedNotify(uint32 mapid);
|
||||||
@@ -2049,8 +2074,8 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
|
|
||||||
bool isRested() const { return GetRestTime() >= 10*IN_MILISECONDS; }
|
bool isRested() const { return GetRestTime() >= 10*IN_MILISECONDS; }
|
||||||
uint32 GetXPRestBonus(uint32 xp);
|
uint32 GetXPRestBonus(uint32 xp);
|
||||||
uint32 GetRestTime() const { return m_restTime;};
|
uint32 GetRestTime() const { return m_restTime;}
|
||||||
void SetRestTime(uint32 v) { m_restTime = v;};
|
void SetRestTime(uint32 v) { m_restTime = v;}
|
||||||
|
|
||||||
/*********************************************************/
|
/*********************************************************/
|
||||||
/*** ENVIROMENTAL SYSTEM ***/
|
/*** ENVIROMENTAL SYSTEM ***/
|
||||||
@@ -2163,12 +2188,12 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
uint32 m_HomebindTimer;
|
uint32 m_HomebindTimer;
|
||||||
bool m_InstanceValid;
|
bool m_InstanceValid;
|
||||||
// permanent binds and solo binds by difficulty
|
// permanent binds and solo binds by difficulty
|
||||||
BoundInstancesMap m_boundInstances[TOTAL_DIFFICULTIES];
|
BoundInstancesMap m_boundInstances[MAX_DIFFICULTY];
|
||||||
InstancePlayerBind* GetBoundInstance(uint32 mapid, uint8 difficulty);
|
InstancePlayerBind* GetBoundInstance(uint32 mapid, Difficulty difficulty);
|
||||||
BoundInstancesMap& GetBoundInstances(uint8 difficulty) { return m_boundInstances[difficulty]; }
|
BoundInstancesMap& GetBoundInstances(Difficulty difficulty) { return m_boundInstances[difficulty]; }
|
||||||
InstanceSave * GetInstanceSave(uint32 mapid);
|
InstanceSave * GetInstanceSave(uint32 mapid, bool raid);
|
||||||
void UnbindInstance(uint32 mapid, uint8 difficulty, bool unload = false);
|
void UnbindInstance(uint32 mapid, Difficulty difficulty, bool unload = false);
|
||||||
void UnbindInstance(BoundInstancesMap::iterator &itr, uint8 difficulty, bool unload = false);
|
void UnbindInstance(BoundInstancesMap::iterator &itr, Difficulty difficulty, bool unload = false);
|
||||||
InstancePlayerBind* BindToInstance(InstanceSave *save, bool permanent, bool load = false);
|
InstancePlayerBind* BindToInstance(InstanceSave *save, bool permanent, bool load = false);
|
||||||
void SendRaidInfo();
|
void SendRaidInfo();
|
||||||
void SendSavedInstances();
|
void SendSavedInstances();
|
||||||
@@ -2239,6 +2264,11 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||||||
|
|
||||||
//bool isActiveObject() const { return true; }
|
//bool isActiveObject() const { return true; }
|
||||||
bool canSeeSpellClickOn(Creature const* creature) const;
|
bool canSeeSpellClickOn(Creature const* creature) const;
|
||||||
|
uint32 GetActionButtonSpell(uint8 button) const
|
||||||
|
{
|
||||||
|
ActionButtonList::const_iterator ab = m_actionButtons.find(button);
|
||||||
|
return ab != m_actionButtons.end() && ab->second.uState != ACTIONBUTTON_DELETED && ab->second.GetType() == ACTION_BUTTON_SPELL ? ab->second.GetAction() : 0;
|
||||||
|
}
|
||||||
|
|
||||||
uint32 GetChampioningFaction() const { return m_ChampioningFaction; }
|
uint32 GetChampioningFaction() const { return m_ChampioningFaction; }
|
||||||
void SetChampioningFaction(uint32 faction) { m_ChampioningFaction = faction; }
|
void SetChampioningFaction(uint32 faction) { m_ChampioningFaction = faction; }
|
||||||
@@ -2342,7 +2372,8 @@ Spell * m_spellModTakingSpell;
|
|||||||
uint32 m_nextSave;
|
uint32 m_nextSave;
|
||||||
time_t m_speakTime;
|
time_t m_speakTime;
|
||||||
uint32 m_speakCount;
|
uint32 m_speakCount;
|
||||||
uint32 m_dungeonDifficulty;
|
Difficulty m_dungeonDifficulty;
|
||||||
|
Difficulty m_raidDifficulty;
|
||||||
|
|
||||||
uint32 m_atLoginFlags;
|
uint32 m_atLoginFlags;
|
||||||
|
|
||||||
@@ -2382,6 +2413,7 @@ Spell * m_spellModTakingSpell;
|
|||||||
uint16 m_baseSpellPower;
|
uint16 m_baseSpellPower;
|
||||||
uint16 m_baseFeralAP;
|
uint16 m_baseFeralAP;
|
||||||
uint16 m_baseManaRegen;
|
uint16 m_baseManaRegen;
|
||||||
|
uint16 m_baseHealthRegen;
|
||||||
|
|
||||||
SpellModList m_spellMods[MAX_SPELLMOD];
|
SpellModList m_spellMods[MAX_SPELLMOD];
|
||||||
//uint32 m_pad;
|
//uint32 m_pad;
|
||||||
@@ -2407,8 +2439,6 @@ Spell * m_spellModTakingSpell;
|
|||||||
uint16 tradeItems[TRADE_SLOT_COUNT];
|
uint16 tradeItems[TRADE_SLOT_COUNT];
|
||||||
uint32 tradeGold;
|
uint32 tradeGold;
|
||||||
|
|
||||||
time_t m_nextThinkTime;
|
|
||||||
|
|
||||||
bool m_DailyQuestChanged;
|
bool m_DailyQuestChanged;
|
||||||
time_t m_lastDailyQuestTime;
|
time_t m_lastDailyQuestTime;
|
||||||
|
|
||||||
@@ -2442,7 +2472,6 @@ Spell * m_spellModTakingSpell;
|
|||||||
float m_rest_bonus;
|
float m_rest_bonus;
|
||||||
RestType rest_type;
|
RestType rest_type;
|
||||||
////////////////////Rest System/////////////////////
|
////////////////////Rest System/////////////////////
|
||||||
|
|
||||||
uint32 m_resetTalentsCost;
|
uint32 m_resetTalentsCost;
|
||||||
time_t m_resetTalentsTime;
|
time_t m_resetTalentsTime;
|
||||||
uint32 m_usedTalentCount;
|
uint32 m_usedTalentCount;
|
||||||
|
|||||||
Reference in New Issue
Block a user