aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp58
-rw-r--r--src/server/game/Entities/Player/Player.h30
2 files changed, 32 insertions, 56 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index f7bc7e3b0b4..da2539e8aaa 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -213,17 +213,16 @@ Player::Player(WorldSession* session) : Unit(true), m_sceneMgr(this)
m_movie = 0;
- PlayerTalkClass = new PlayerMenu(GetSession());
+ PlayerTalkClass = std::make_unique<PlayerMenu>(GetSession());
m_currentBuybackSlot = BUYBACK_SLOT_START;
m_DailyQuestChanged = false;
m_lastDailyQuestTime = 0;
- for (uint8 i=0; i < MAX_TIMERS; i++)
- m_MirrorTimer[i] = DISABLED_MIRROR_TIMER;
-
+ m_MirrorTimer.fill(DISABLED_MIRROR_TIMER);
m_MirrorTimerFlags = UNDERWATER_NONE;
m_MirrorTimerFlagsLast = UNDERWATER_NONE;
+
m_hostileReferenceCheckTimer = 0;
m_drunkTimer = 0;
m_deathTimer = 0;
@@ -240,8 +239,7 @@ Player::Player(WorldSession* session) : Unit(true), m_sceneMgr(this)
m_logintime = GameTime::GetGameTime();
m_Last_tick = m_logintime;
- m_Played_time[PLAYED_TIME_TOTAL] = 0;
- m_Played_time[PLAYED_TIME_LEVEL] = 0;
+ m_Played_time = { };
m_WeaponProficiency = 0;
m_ArmorProficiency = 0;
m_canParry = false;
@@ -262,8 +260,7 @@ Player::Player(WorldSession* session) : Unit(true), m_sceneMgr(this)
m_itemUpdateQueueBlocked = false;
- for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i)
- m_forced_speed_changes[i] = 0;
+ m_forced_speed_changes = { };
m_movementForceModMagnitudeChanges = 0;
@@ -277,14 +274,9 @@ Player::Player(WorldSession* session) : Unit(true), m_sceneMgr(this)
m_lastPotionId = 0;
- for (uint8 i = 0; i < BASEMOD_END; ++i)
- {
- m_auraBaseFlatMod[i] = 0.0f;
- m_auraBasePctMod[i] = 1.0f;
- }
-
- for (uint8 i = 0; i < MAX_COMBAT_RATING; i++)
- m_baseRatingValue[i] = 0;
+ m_auraBaseFlatMod.fill(0.0f);
+ m_auraBasePctMod.fill(1.0f);
+ m_baseRatingValue = { };
m_baseSpellPower = 0;
m_baseManaRegen = 0;
@@ -310,12 +302,8 @@ Player::Player(WorldSession* session) : Unit(true), m_sceneMgr(this)
m_contestedPvPTimer = 0;
- m_declinedname = nullptr;
-
m_isActive = true;
- m_runes = nullptr;
-
m_lastFallTime = 0;
m_lastFallZ = 0;
@@ -327,8 +315,7 @@ Player::Player(WorldSession* session) : Unit(true), m_sceneMgr(this)
m_ChampioningFaction = 0;
- for (uint8 i = 0; i < MAX_POWERS_PER_CLASS; ++i)
- m_powerFraction[i] = 0;
+ m_powerFraction.fill(0.0f);
isDebugAreaTriggers = false;
@@ -344,10 +331,10 @@ Player::Player(WorldSession* session) : Unit(true), m_sceneMgr(this)
memset(_voidStorageItems, 0, VOID_STORAGE_MAX_SLOT * sizeof(VoidStorageItem*));
- _cinematicMgr = new CinematicMgr(this);
+ _cinematicMgr = std::make_unique<CinematicMgr>(this);
- m_achievementMgr = new PlayerAchievementMgr(this);
- m_reputationMgr = new ReputationMgr(this);
+ m_achievementMgr = std::make_unique<PlayerAchievementMgr>(this);
+ m_reputationMgr = std::make_unique<ReputationMgr>(this);
m_questObjectiveCriteriaMgr = std::make_unique<QuestObjectiveCriteriaMgr>(this);
for (uint8 i = 0; i < MAX_CUF_PROFILES; ++i)
@@ -378,17 +365,9 @@ Player::~Player()
for (ItemMap::iterator iter = mMitems.begin(); iter != mMitems.end(); ++iter)
delete iter->second; //if item is duplicated... then server may crash ... but that item should be deallocated
- delete PlayerTalkClass;
-
for (size_t x = 0; x < ItemSetEff.size(); x++)
delete ItemSetEff[x];
- delete m_declinedname;
- delete m_runes;
- delete m_achievementMgr;
- delete m_reputationMgr;
- delete _cinematicMgr;
-
for (uint8 i = 0; i < VOID_STORAGE_MAX_SLOT; ++i)
delete _voidStorageItems[i];
@@ -13939,10 +13918,8 @@ void Player::SendNewItem(Item* item, uint32 quantity, bool pushed, bool created,
void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId, bool showQuests /*= false*/)
{
- PlayerMenu* menu = PlayerTalkClass;
- menu->ClearMenus();
-
- menu->GetGossipMenu().SetMenuId(menuId);
+ PlayerTalkClass->ClearMenus();
+ PlayerTalkClass->GetGossipMenu().SetMenuId(menuId);
Trinity::IteratorPair menuItemBounds = sObjectMgr->GetGossipMenuItemsMapBounds(menuId);
@@ -14035,7 +14012,7 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId, bool showQues
}
if (canTalk)
- menu->GetGossipMenu().AddMenuItem(gossipMenuItem, gossipMenuItem.MenuID, gossipMenuItem.OrderIndex);
+ PlayerTalkClass->GetGossipMenu().AddMenuItem(gossipMenuItem, gossipMenuItem.MenuID, gossipMenuItem.OrderIndex);
}
}
@@ -17139,8 +17116,7 @@ void Player::_LoadDeclinedNames(PreparedQueryResult result)
if (!result)
return;
- delete m_declinedname;
- m_declinedname = new DeclinedName;
+ m_declinedname = std::make_unique<DeclinedName>();
for (uint8 i = 0; i < MAX_DECLINED_NAME_CASES; ++i)
m_declinedname->name[i] = (*result)[i].GetString();
}
@@ -25889,7 +25865,7 @@ void Player::InitRunes()
if (runeIndex == MAX_POWERS)
return;
- m_runes = new Runes();
+ m_runes = std::make_unique<Runes>();
m_runes->RuneState = 0;
for (uint8 i = 0; i < MAX_RUNES; ++i)
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 297bad68b3f..e71ac32a8bc 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1240,7 +1240,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
// Played Time Stuff
time_t m_logintime;
time_t m_Last_tick;
- uint32 m_Played_time[MAX_PLAYED_TIME_INDEX];
+ std::array<uint32, MAX_PLAYED_TIME_INDEX> m_Played_time;
uint32 GetTotalPlayedTime() const { return m_Played_time[PLAYED_TIME_TOTAL]; }
uint32 GetLevelPlayedTime() const { return m_Played_time[PLAYED_TIME_LEVEL]; }
@@ -1524,7 +1524,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
TradeData* GetTradeData() const { return m_trade; }
void TradeCancel(bool sendback);
- CinematicMgr* GetCinematicMgr() const { return _cinematicMgr; }
+ CinematicMgr* GetCinematicMgr() const { return _cinematicMgr.get(); }
void UpdateEnchantTime(uint32 time);
void UpdateSoulboundTradeItems();
@@ -2397,7 +2397,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void SendAurasForTarget(Unit* target) const;
- PlayerMenu* PlayerTalkClass;
+ std::unique_ptr<PlayerMenu> PlayerTalkClass;
std::vector<ItemSetEffect*> ItemSetEff;
void SendLoot(Loot& loot, bool aeLooting = false);
@@ -2546,7 +2546,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
template<class T>
void UpdateVisibilityOf(T* target, UpdateData& data, std::set<Unit*>& visibleNow);
- uint8 m_forced_speed_changes[MAX_MOVE_TYPE];
+ std::array<uint8, MAX_MOVE_TYPE> m_forced_speed_changes;
uint8 m_movementForceModMagnitudeChanges;
bool HasAtLoginFlag(AtLoginFlags f) const { return (m_atLoginFlags & f) != 0; }
@@ -2650,7 +2650,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
bool isAllowedToLoot(Creature const* creature) const;
- DeclinedName const* GetDeclinedNames() const { return m_declinedname; }
+ DeclinedName const* GetDeclinedNames() const { return m_declinedname.get(); }
uint8 GetRunesState() const;
uint32 GetRuneCooldown(uint8 index) const { return m_runes->Cooldown[index]; }
uint32 GetRuneBaseCooldown() const;
@@ -2884,7 +2884,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
TimePoint m_regenInterruptTimestamp;
uint32 m_regenTimerCount;
uint32 m_foodEmoteTimerCount;
- float m_powerFraction[MAX_POWERS_PER_CLASS];
+ std::array<float, MAX_POWERS_PER_CLASS> m_powerFraction;
uint32 m_contestedPvPTimer;
/*********************************************************/
@@ -3057,9 +3057,9 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
ActionButtonList m_actionButtons;
- float m_auraBaseFlatMod[BASEMOD_END];
- float m_auraBasePctMod[BASEMOD_END];
- int16 m_baseRatingValue[MAX_COMBAT_RATING];
+ std::array<float, BASEMOD_END> m_auraBaseFlatMod;
+ std::array<float, BASEMOD_END> m_auraBasePctMod;
+ std::array<int16, MAX_COMBAT_RATING> m_baseRatingValue;
uint32 m_baseSpellPower;
uint32 m_baseManaRegen;
uint32 m_baseHealthRegen;
@@ -3133,8 +3133,8 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
WorldLocation m_recall_location;
uint32 m_recall_instanceId;
- DeclinedName *m_declinedname;
- Runes *m_runes;
+ std::unique_ptr<DeclinedName> m_declinedname;
+ std::unique_ptr<Runes> m_runes;
EquipmentSetContainer _equipmentSets;
bool CanNeverSee(WorldObject const* obj) const override;
@@ -3156,7 +3156,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
Item* _StoreItem(uint16 pos, Item* pItem, uint32 count, bool clone, bool update);
Item* _LoadItem(CharacterDatabaseTransaction trans, uint32 zoneId, uint32 timeDiff, Field* fields);
- CinematicMgr* _cinematicMgr;
+ std::unique_ptr<CinematicMgr> _cinematicMgr;
GuidSet m_refundableItems;
void SendRefundInfo(Item* item);
@@ -3178,7 +3178,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
uint32 m_lastFallTime;
float m_lastFallZ;
- int32 m_MirrorTimer[MAX_TIMERS];
+ std::array<int32, MAX_TIMERS> m_MirrorTimer;
uint8 m_MirrorTimerFlags;
uint8 m_MirrorTimerFlagsLast;
@@ -3199,8 +3199,8 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
uint32 m_temporaryUnsummonedPetNumber;
uint32 m_oldpetspell;
- PlayerAchievementMgr* m_achievementMgr;
- ReputationMgr* m_reputationMgr;
+ std::unique_ptr<PlayerAchievementMgr> m_achievementMgr;
+ std::unique_ptr<ReputationMgr> m_reputationMgr;
std::unique_ptr<QuestObjectiveCriteriaMgr> m_questObjectiveCriteriaMgr;
uint32 m_ChampioningFaction;