diff options
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 58 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.h | 30 |
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; |