diff options
Diffstat (limited to 'src')
42 files changed, 758 insertions, 102 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index 68d84b2d9e8..96cbb774c9a 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -1047,6 +1047,9 @@ CriteriaList const& GuildAchievementMgr::GetCriteriaByType(CriteriaType type, ui return sCriteriaMgr->GetGuildCriteriaByType(type); } +AchievementGlobalMgr::AchievementGlobalMgr() = default; +AchievementGlobalMgr::~AchievementGlobalMgr() = default; + std::string PlayerAchievementMgr::GetOwnerInfo() const { return Trinity::StringFormat("%s %s", _owner->GetGUID().ToString().c_str(), _owner->GetName().c_str()); diff --git a/src/server/game/Achievements/AchievementMgr.h b/src/server/game/Achievements/AchievementMgr.h index f18194c0eee..fc52eeb31cb 100644 --- a/src/server/game/Achievements/AchievementMgr.h +++ b/src/server/game/Achievements/AchievementMgr.h @@ -146,10 +146,16 @@ private: class TC_GAME_API AchievementGlobalMgr { - AchievementGlobalMgr() { } - ~AchievementGlobalMgr() { } + AchievementGlobalMgr(); + ~AchievementGlobalMgr(); public: + AchievementGlobalMgr(AchievementGlobalMgr const&) = delete; + AchievementGlobalMgr(AchievementGlobalMgr&&) = delete; + + AchievementGlobalMgr& operator=(AchievementGlobalMgr const&) = delete; + AchievementGlobalMgr& operator=(AchievementGlobalMgr&&) = delete; + static AchievementGlobalMgr* Instance(); std::vector<AchievementEntry const*> const* GetAchievementByReferencedId(uint32 id) const; diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index 166a2c9270c..3e7fd809565 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -4297,6 +4297,8 @@ CriteriaList const& CriteriaMgr::GetPlayerCriteriaByType(CriteriaType type, uint return _criteriasByType[size_t(type)]; } +CriteriaMgr::CriteriaMgr() = default; + //========================================================== CriteriaMgr::~CriteriaMgr() { diff --git a/src/server/game/Achievements/CriteriaHandler.h b/src/server/game/Achievements/CriteriaHandler.h index 51a962a6dcb..3e84bf0de6c 100644 --- a/src/server/game/Achievements/CriteriaHandler.h +++ b/src/server/game/Achievements/CriteriaHandler.h @@ -19,7 +19,6 @@ #define CriteriaHandler_h__ #include "Common.h" -#include "DatabaseEnvFwd.h" #include "DBCEnums.h" #include "Duration.h" #include "ObjectGuid.h" @@ -269,6 +268,11 @@ public: CriteriaHandler(); virtual ~CriteriaHandler(); + CriteriaHandler(CriteriaHandler const& right) = delete; + CriteriaHandler(CriteriaHandler&& right) = delete; + CriteriaHandler& operator=(CriteriaHandler const& right) = delete; + CriteriaHandler& operator=(CriteriaHandler&& right) = delete; + virtual void Reset(); void UpdateCriteria(CriteriaType type, uint64 miscValue1 = 0, uint64 miscValue2 = 0, uint64 miscValue3 = 0, WorldObject const* ref = nullptr, Player* referencePlayer = nullptr); @@ -313,10 +317,15 @@ protected: class TC_GAME_API CriteriaMgr { - CriteriaMgr() { } + CriteriaMgr(); ~CriteriaMgr(); public: + CriteriaMgr(CriteriaMgr const& right) = delete; + CriteriaMgr(CriteriaMgr&& right) = delete; + CriteriaMgr& operator=(CriteriaMgr const& right) = delete; + CriteriaMgr& operator=(CriteriaMgr&& right) = delete; + static char const* GetCriteriaTypeString(CriteriaType type); static char const* GetCriteriaTypeString(uint32 type); diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.h b/src/server/game/Battlegrounds/BattlegroundMgr.h index 7653ddd5ba1..76ec8832ee9 100644 --- a/src/server/game/Battlegrounds/BattlegroundMgr.h +++ b/src/server/game/Battlegrounds/BattlegroundMgr.h @@ -79,6 +79,11 @@ class TC_GAME_API BattlegroundMgr ~BattlegroundMgr(); public: + BattlegroundMgr(BattlegroundMgr const& right) = delete; + BattlegroundMgr(BattlegroundMgr&& right) = delete; + BattlegroundMgr& operator=(BattlegroundMgr const& right) = delete; + BattlegroundMgr& operator=(BattlegroundMgr&& right) = delete; + static BattlegroundMgr* instance(); void Update(uint32 diff); diff --git a/src/server/game/Chat/Channels/ChannelMgr.h b/src/server/game/Chat/Channels/ChannelMgr.h index b389cc718ae..f8efb4cbb21 100644 --- a/src/server/game/Chat/Channels/ChannelMgr.h +++ b/src/server/game/Chat/Channels/ChannelMgr.h @@ -36,6 +36,11 @@ class TC_GAME_API ChannelMgr ~ChannelMgr(); public: + ChannelMgr(ChannelMgr const& right) = delete; + ChannelMgr(ChannelMgr&& right) = delete; + ChannelMgr& operator=(ChannelMgr const& right) = delete; + ChannelMgr& operator=(ChannelMgr&& right) = delete; + static void LoadFromDB(); static ChannelMgr* ForTeam(uint32 team); static Channel* GetChannelForPlayerByNamePart(std::string const& namePart, Player* playerSearcher); diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp index 1a219ba9085..708178e9ab6 100644 --- a/src/server/game/Chat/Chat.cpp +++ b/src/server/game/Chat/Chat.cpp @@ -990,6 +990,11 @@ LocaleConstant ChatHandler::GetSessionDbLocaleIndex() const return m_session->GetSessionDbLocaleIndex(); } +std::string ChatHandler::playerLink(std::string const& name) const +{ + return m_session ? "|cffffffff|Hplayer:" + name + "|h[" + name + "]|h|r" : name; +} + std::string ChatHandler::GetNameLink(Player* chr) const { return playerLink(chr->GetName()); diff --git a/src/server/game/Chat/Chat.h b/src/server/game/Chat/Chat.h index 46db7e56246..edb5858ac7c 100644 --- a/src/server/game/Chat/Chat.h +++ b/src/server/game/Chat/Chat.h @@ -111,7 +111,7 @@ class TC_GAME_API ChatHandler // select by arg (name/link) or in-game selection online/offline player or self if a creature is selected bool extractPlayerTarget(char* args, Player** player, ObjectGuid* player_guid = nullptr, std::string* player_name = nullptr); - std::string playerLink(std::string const& name) const { return m_session ? "|cffffffff|Hplayer:"+name+"|h["+name+"]|h|r" : name; } + std::string playerLink(std::string const& name) const; std::string GetNameLink(Player* chr) const; GameObject* GetNearbyGameObject(); diff --git a/src/server/game/Chat/LanguageMgr.h b/src/server/game/Chat/LanguageMgr.h index 7d1d4df123e..fda88cb2972 100644 --- a/src/server/game/Chat/LanguageMgr.h +++ b/src/server/game/Chat/LanguageMgr.h @@ -56,6 +56,11 @@ class TC_GAME_API LanguageMgr // Accessors (const or static functions) public: + LanguageMgr(LanguageMgr const& right) = delete; + LanguageMgr(LanguageMgr&& right) = delete; + LanguageMgr& operator=(LanguageMgr const& right) = delete; + LanguageMgr& operator=(LanguageMgr&& right) = delete; + static LanguageMgr* instance(); // diff --git a/src/server/game/DungeonFinding/LFGMgr.h b/src/server/game/DungeonFinding/LFGMgr.h index 72160b20f34..e9fd1a2299a 100644 --- a/src/server/game/DungeonFinding/LFGMgr.h +++ b/src/server/game/DungeonFinding/LFGMgr.h @@ -316,6 +316,11 @@ class TC_GAME_API LFGMgr ~LFGMgr(); public: + LFGMgr(LFGMgr const& right) = delete; + LFGMgr(LFGMgr&& right) = delete; + LFGMgr& operator=(LFGMgr const& right) = delete; + LFGMgr& operator=(LFGMgr&& right) = delete; + static LFGMgr* instance(); // Functions used outside lfg namespace diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index 6c04eb0fddd..d7230766af5 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -454,10 +454,13 @@ Item::Item() m_paidExtendedCost = 0; m_randomBonusListId = 0; + m_gemScalingLevels = { }; memset(&_bonusData, 0, sizeof(_bonusData)); } +Item::~Item() = default; + bool Item::Create(ObjectGuid::LowType guidlow, uint32 itemId, ItemContext context, Player const* owner) { Object::_Create(ObjectGuid::Create<HighGuid::Item>(guidlow)); diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h index f33b1f00a75..74535c615a8 100644 --- a/src/server/game/Entities/Item/Item.h +++ b/src/server/game/Entities/Item/Item.h @@ -176,6 +176,7 @@ class TC_GAME_API Item : public Object Item* CloneItem(uint32 count, Player const* player = nullptr) const; Item(); + ~Item(); virtual bool Create(ObjectGuid::LowType guidlow, uint32 itemId, ItemContext context, Player const* owner); diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 68b2d5c7c0e..7bdd6b1d867 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -398,7 +398,9 @@ class TC_GAME_API Object bool m_isDestroyedObject; Object(Object const& right) = delete; + Object(Object&& right) = delete; Object& operator=(Object const& right) = delete; + Object& operator=(Object&& right) = delete; }; template<class T> diff --git a/src/server/game/Entities/Vehicle/Vehicle.h b/src/server/game/Entities/Vehicle/Vehicle.h index eb377a350e6..4defa1881c3 100644 --- a/src/server/game/Entities/Vehicle/Vehicle.h +++ b/src/server/game/Entities/Vehicle/Vehicle.h @@ -38,6 +38,11 @@ class TC_GAME_API Vehicle : public TransportBase ~Vehicle(); public: + Vehicle(Vehicle const& right) = delete; + Vehicle(Vehicle&& right) = delete; + Vehicle& operator=(Vehicle const& right) = delete; + Vehicle& operator=(Vehicle&& right) = delete; + void Install(); void Uninstall(); void Reset(bool evading = false); diff --git a/src/server/game/Instances/InstanceSaveMgr.h b/src/server/game/Instances/InstanceSaveMgr.h index ad8160612c5..43c27d73cba 100644 --- a/src/server/game/Instances/InstanceSaveMgr.h +++ b/src/server/game/Instances/InstanceSaveMgr.h @@ -54,6 +54,11 @@ class TC_GAME_API InstanceSave or when the instance is reset */ ~InstanceSave(); + InstanceSave(InstanceSave const& right) = delete; + InstanceSave(InstanceSave&& right) = delete; + InstanceSave& operator=(InstanceSave const& right) = delete; + InstanceSave& operator=(InstanceSave&& right) = delete; + uint32 GetPlayerCount() const { return uint32(m_playerList.size()); } uint32 GetGroupCount() const { return uint32(m_groupList.size()); } diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index 39f705dbd24..6d94dc4cd1b 100644 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -60,6 +60,10 @@ _entranceId(0), _temporaryEntranceId(0), _combatResurrectionTimer(0), _combatRes #endif // #ifndef TRINITY_API_USE_DYNAMIC_LINKING } +InstanceScript::~InstanceScript() +{ +} + void InstanceScript::SaveToDB() { if (InstanceScenario* scenario = instance->GetInstanceScenario()) diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h index 47294cf43d0..f025a6b1b24 100644 --- a/src/server/game/Instances/InstanceScript.h +++ b/src/server/game/Instances/InstanceScript.h @@ -159,7 +159,7 @@ class TC_GAME_API InstanceScript : public ZoneScript public: explicit InstanceScript(InstanceMap* map); - virtual ~InstanceScript() { } + virtual ~InstanceScript(); InstanceMap* instance; diff --git a/src/server/game/Maps/MapInstanced.cpp b/src/server/game/Maps/MapInstanced.cpp index 32aac9c1878..da3356911ad 100644 --- a/src/server/game/Maps/MapInstanced.cpp +++ b/src/server/game/Maps/MapInstanced.cpp @@ -35,6 +35,8 @@ MapInstanced::MapInstanced(uint32 id, time_t expiry) : Map(id, expiry, 0, DIFFIC { } +MapInstanced::~MapInstanced() = default; + void MapInstanced::InitVisibilityDistance() { if (m_InstancedMaps.empty()) diff --git a/src/server/game/Maps/MapInstanced.h b/src/server/game/Maps/MapInstanced.h index e6aaefe7c18..6b2b71ed37e 100644 --- a/src/server/game/Maps/MapInstanced.h +++ b/src/server/game/Maps/MapInstanced.h @@ -20,7 +20,6 @@ #include "Map.h" #include "InstanceSaveMgr.h" -#include "DBCEnums.h" class GarrisonMap; @@ -31,9 +30,13 @@ class TC_GAME_API MapInstanced : public Map typedef std::unordered_map< uint32, Map*> InstancedMaps; MapInstanced(uint32 id, time_t expiry); - ~MapInstanced() { } + MapInstanced(MapInstanced const& right) = delete; + MapInstanced(MapInstanced&& right) = delete; + MapInstanced& operator=(MapInstanced const& right) = delete; + MapInstanced& operator=(MapInstanced&& right) = delete; + ~MapInstanced(); - // functions overwrite Map versions + // functions overwrite Map versions void Update(uint32 diff) override; void DelayedUpdate(uint32 diff) override; //void RelocationNotify(); diff --git a/src/server/game/Maps/ZoneScript.cpp b/src/server/game/Maps/ZoneScript.cpp index 5117eee7f7d..974a6c7661f 100644 --- a/src/server/game/Maps/ZoneScript.cpp +++ b/src/server/game/Maps/ZoneScript.cpp @@ -18,6 +18,14 @@ #include "ZoneScript.h" #include "Creature.h" +ZoneScript::ZoneScript() +{ +} + +ZoneScript::~ZoneScript() +{ +} + uint32 ZoneScript::GetCreatureEntry(ObjectGuid::LowType /*guidLow*/, CreatureData const* data) { return data->id; diff --git a/src/server/game/Maps/ZoneScript.h b/src/server/game/Maps/ZoneScript.h index ad308f7122d..8d3bb397a07 100644 --- a/src/server/game/Maps/ZoneScript.h +++ b/src/server/game/Maps/ZoneScript.h @@ -30,8 +30,13 @@ struct CreatureData; class TC_GAME_API ZoneScript { public: - ZoneScript() { } - virtual ~ZoneScript() { } + ZoneScript(); + virtual ~ZoneScript(); + + ZoneScript(ZoneScript const& right) = delete; + ZoneScript(ZoneScript&& right) = delete; + ZoneScript& operator=(ZoneScript const& right) = delete; + ZoneScript& operator=(ZoneScript&& right) = delete; virtual uint32 GetCreatureEntry(ObjectGuid::LowType /*spawnId*/, CreatureData const* data); virtual uint32 GetGameObjectEntry(ObjectGuid::LowType /*spawnId*/, uint32 entry) { return entry; } diff --git a/src/server/game/Movement/PathGenerator.h b/src/server/game/Movement/PathGenerator.h index 64ad8393436..96acbd20616 100644 --- a/src/server/game/Movement/PathGenerator.h +++ b/src/server/game/Movement/PathGenerator.h @@ -58,6 +58,11 @@ class TC_GAME_API PathGenerator explicit PathGenerator(WorldObject const* owner); ~PathGenerator(); + PathGenerator(PathGenerator const& right) = delete; + PathGenerator(PathGenerator&& right) = delete; + PathGenerator& operator=(PathGenerator const& right) = delete; + PathGenerator& operator=(PathGenerator&& right) = delete; + // Calculate the path from owner to given destination // return: true if new path was calculated, false otherwise (no change needed) bool CalculatePath(float destX, float destY, float destZ, bool forceDest = false); diff --git a/src/server/game/Movement/Spline/Spline.cpp b/src/server/game/Movement/Spline/Spline.cpp index 14a3c5d93d8..851c1634d36 100644 --- a/src/server/game/Movement/Spline/Spline.cpp +++ b/src/server/game/Movement/Spline/Spline.cpp @@ -282,6 +282,12 @@ void SplineBase::InitBezier3(Vector3 const* controls, index_type count, index_ty //mov_assert(points.size() % 3 == 0); } +SplineBase::SplineBase(): index_lo(0), index_hi(0), m_mode(UninitializedMode), cyclic(false), initialOrientation(0.f) +{ +} + +SplineBase::~SplineBase() = default; + void SplineBase::clear() { index_lo = 0; diff --git a/src/server/game/Movement/Spline/Spline.h b/src/server/game/Movement/Spline/Spline.h index 3f20e2bed72..dd328b3ab03 100644 --- a/src/server/game/Movement/Spline/Spline.h +++ b/src/server/game/Movement/Spline/Spline.h @@ -90,7 +90,12 @@ protected: public: - explicit SplineBase() : index_lo(0), index_hi(0), m_mode(UninitializedMode), cyclic(false), initialOrientation(0.f) { } + explicit SplineBase(); + SplineBase(SplineBase const& right) = delete; + SplineBase(SplineBase&& right) = delete; + SplineBase& operator=(SplineBase const& right) = delete; + SplineBase& operator=(SplineBase&& right) = delete; + virtual ~SplineBase(); /** Caclulates the position for given segment Idx, and percent of segment length t @param t - percent of segment length, assumes that t in range [0, 1] diff --git a/src/server/game/OutdoorPvP/OutdoorPvP.h b/src/server/game/OutdoorPvP/OutdoorPvP.h index 28d0a7b4f66..507165d4482 100644 --- a/src/server/game/OutdoorPvP/OutdoorPvP.h +++ b/src/server/game/OutdoorPvP/OutdoorPvP.h @@ -90,6 +90,11 @@ class TC_GAME_API OPvPCapturePoint virtual ~OPvPCapturePoint() { } + OPvPCapturePoint(OPvPCapturePoint const& right) = delete; + OPvPCapturePoint(OPvPCapturePoint&& right) = delete; + OPvPCapturePoint& operator=(OPvPCapturePoint const& right) = delete; + OPvPCapturePoint& operator=(OPvPCapturePoint&& right) = delete; + virtual void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& /*packet*/) { } // send world state update to all players present diff --git a/src/server/game/Phasing/PhaseShift.cpp b/src/server/game/Phasing/PhaseShift.cpp index f0655bf01fa..0c11581b545 100644 --- a/src/server/game/Phasing/PhaseShift.cpp +++ b/src/server/game/Phasing/PhaseShift.cpp @@ -18,6 +18,13 @@ #include "PhaseShift.h" #include "Containers.h" +PhaseShift::PhaseShift() = default; +PhaseShift::PhaseShift(PhaseShift const& right) = default; +PhaseShift::PhaseShift(PhaseShift&& right) noexcept = default; +PhaseShift& PhaseShift::operator=(PhaseShift const& right) = default; +PhaseShift& PhaseShift::operator=(PhaseShift&& right) noexcept = default; +PhaseShift::~PhaseShift() = default; + bool PhaseShift::AddPhase(uint32 phaseId, PhaseFlags flags, std::vector<Condition*> const* areaConditions, int32 references /*= 1*/) { auto insertResult = Phases.emplace(phaseId, flags, nullptr); diff --git a/src/server/game/Phasing/PhaseShift.h b/src/server/game/Phasing/PhaseShift.h index 32fc4455877..7d483ce12a9 100644 --- a/src/server/game/Phasing/PhaseShift.h +++ b/src/server/game/Phasing/PhaseShift.h @@ -86,6 +86,13 @@ public: using VisibleMapIdContainer = std::map<uint32, VisibleMapIdRef>; using UiMapPhaseIdContainer = std::map<uint32, UiMapPhaseIdRef>; + PhaseShift(); + PhaseShift(PhaseShift const& right); + PhaseShift(PhaseShift&& right) noexcept; + PhaseShift& operator=(PhaseShift const& right); + PhaseShift& operator=(PhaseShift&& right) noexcept; + ~PhaseShift(); + ObjectGuid GetPersonalGuid() const { return PersonalGuid; } bool AddPhase(uint32 phaseId, PhaseFlags flags, std::vector<Condition*> const* areaConditions, int32 references = 1); diff --git a/src/server/game/Pools/PoolMgr.cpp b/src/server/game/Pools/PoolMgr.cpp index fdae087c09c..52e8c4cfa1e 100644 --- a/src/server/game/Pools/PoolMgr.cpp +++ b/src/server/game/Pools/PoolMgr.cpp @@ -32,6 +32,9 @@ PoolObject::PoolObject(uint64 _guid, float _chance) : guid(_guid), chance(std::f //////////////////////////////////////////////////////////// // template class ActivePoolData +ActivePoolData::ActivePoolData() = default; +ActivePoolData::~ActivePoolData() = default; + // Method that tell amount spawned objects/subpools uint32 ActivePoolData::GetActiveObjectCount(uint32 pool_id) const { @@ -111,6 +114,14 @@ void ActivePoolData::RemoveObject<Pool>(uint64 sub_pool_id, uint32 pool_id) //////////////////////////////////////////////////////////// // Methods of template class PoolGroup +template <class T> +PoolGroup<T>::PoolGroup(): poolId(0) +{ +} + +template <class T> +PoolGroup<T>::~PoolGroup() = default; + // Method to add a gameobject/creature guid to the proper list depending on pool type and chance value template <class T> void PoolGroup<T>::AddEntry(PoolObject& poolitem, uint32 maxentries) @@ -422,7 +433,8 @@ void PoolGroup<Pool>::RemoveRespawnTimeFromDB(uint64 /*guid*/) { } //////////////////////////////////////////////////////////// // Methods of class PoolMgr -PoolMgr::PoolMgr() { } +PoolMgr::PoolMgr() = default; +PoolMgr::~PoolMgr() = default; void PoolMgr::Initialize() { diff --git a/src/server/game/Pools/PoolMgr.h b/src/server/game/Pools/PoolMgr.h index a37733c66fc..867e7e275ae 100644 --- a/src/server/game/Pools/PoolMgr.h +++ b/src/server/game/Pools/PoolMgr.h @@ -51,6 +51,14 @@ typedef std::map<uint64, uint32> ActivePoolPools; class TC_GAME_API ActivePoolData { public: + explicit ActivePoolData(); + ~ActivePoolData(); + + ActivePoolData(ActivePoolData const& right) = delete; + ActivePoolData(ActivePoolData&& right) = delete; + ActivePoolData& operator=(ActivePoolData const& right) = delete; + ActivePoolData& operator=(ActivePoolData&& right) = delete; + template<typename T> bool IsActiveObject(uint64 db_guid_or_pool_id) const; @@ -72,9 +80,15 @@ class TC_GAME_API PoolGroup { typedef std::vector<PoolObject> PoolObjectList; public: - explicit PoolGroup() : poolId(0) { } + explicit PoolGroup(); + ~PoolGroup(); + + PoolGroup(PoolGroup const& right) = delete; + PoolGroup(PoolGroup&& right) = delete; + PoolGroup& operator=(PoolGroup const& right) = delete; + PoolGroup& operator=(PoolGroup&& right) = delete; + void SetPoolId(uint32 pool_id) { poolId = pool_id; } - ~PoolGroup() { }; bool isEmpty() const { return ExplicitlyChanced.empty() && EqualChanced.empty(); } void AddEntry(PoolObject& poolitem, uint32 maxentries); bool CheckPool() const; @@ -103,9 +117,14 @@ class TC_GAME_API PoolMgr { private: PoolMgr(); - ~PoolMgr() { }; + ~PoolMgr(); public: + PoolMgr(PoolMgr const& right) = delete; + PoolMgr(PoolMgr&& right) = delete; + PoolMgr& operator=(PoolMgr const& right) = delete; + PoolMgr& operator=(PoolMgr&& right) = delete; + static PoolMgr* instance(); void LoadFromDB(); diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 1ca7264aa2d..cbec3f39834 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -1196,7 +1196,7 @@ ScriptMgr::ScriptMgr() { } -ScriptMgr::~ScriptMgr() { } +ScriptMgr::~ScriptMgr() = default; ScriptMgr* ScriptMgr::instance() { @@ -2374,24 +2374,32 @@ ServerScript::ServerScript(char const* name) ScriptRegistry<ServerScript>::Instance()->AddScript(this); } +ServerScript::~ServerScript() = default; + WorldScript::WorldScript(char const* name) : ScriptObject(name) { ScriptRegistry<WorldScript>::Instance()->AddScript(this); } +WorldScript::~WorldScript() = default; + FormulaScript::FormulaScript(char const* name) : ScriptObject(name) { ScriptRegistry<FormulaScript>::Instance()->AddScript(this); } +FormulaScript::~FormulaScript() = default; + UnitScript::UnitScript(char const* name) : ScriptObject(name) { ScriptRegistry<UnitScript>::Instance()->AddScript(this); } +UnitScript::~UnitScript() = default; + WorldMapScript::WorldMapScript(char const* name, uint32 mapId) : ScriptObject(name), MapScript<Map>(sMapStore.LookupEntry(mapId)) { @@ -2404,6 +2412,8 @@ WorldMapScript::WorldMapScript(char const* name, uint32 mapId) ScriptRegistry<WorldMapScript>::Instance()->AddScript(this); } +WorldMapScript::~WorldMapScript() = default; + InstanceMapScript::InstanceMapScript(char const* name, uint32 mapId) : ScriptObject(name), MapScript<InstanceMap>(sMapStore.LookupEntry(mapId)) { @@ -2416,6 +2426,8 @@ InstanceMapScript::InstanceMapScript(char const* name, uint32 mapId) ScriptRegistry<InstanceMapScript>::Instance()->AddScript(this); } +InstanceMapScript::~InstanceMapScript() = default; + BattlegroundMapScript::BattlegroundMapScript(char const* name, uint32 mapId) : ScriptObject(name), MapScript<BattlegroundMap>(sMapStore.LookupEntry(mapId)) { @@ -2428,30 +2440,42 @@ BattlegroundMapScript::BattlegroundMapScript(char const* name, uint32 mapId) ScriptRegistry<BattlegroundMapScript>::Instance()->AddScript(this); } +BattlegroundMapScript::~BattlegroundMapScript() = default; + ItemScript::ItemScript(char const* name) : ScriptObject(name) { ScriptRegistry<ItemScript>::Instance()->AddScript(this); } +ItemScript::~ItemScript() = default; + CreatureScript::CreatureScript(char const* name) : ScriptObject(name) { ScriptRegistry<CreatureScript>::Instance()->AddScript(this); } +CreatureScript::~CreatureScript() = default; + GameObjectScript::GameObjectScript(char const* name) : ScriptObject(name) { ScriptRegistry<GameObjectScript>::Instance()->AddScript(this); } +GameObjectScript::~GameObjectScript() = default; + AreaTriggerScript::AreaTriggerScript(char const* name) : ScriptObject(name) { ScriptRegistry<AreaTriggerScript>::Instance()->AddScript(this); } +AreaTriggerScript::~AreaTriggerScript() = default; + +OnlyOnceAreaTriggerScript::~OnlyOnceAreaTriggerScript() = default; + bool OnlyOnceAreaTriggerScript::OnTrigger(Player* player, AreaTriggerEntry const* trigger) { uint32 const triggerId = trigger->ID; @@ -2473,95 +2497,111 @@ BattlefieldScript::BattlefieldScript(char const* name) ScriptRegistry<BattlefieldScript>::Instance()->AddScript(this); } +BattlefieldScript::~BattlefieldScript() = default; + BattlegroundScript::BattlegroundScript(char const* name) : ScriptObject(name) { ScriptRegistry<BattlegroundScript>::Instance()->AddScript(this); } +BattlegroundScript::~BattlegroundScript() = default; + OutdoorPvPScript::OutdoorPvPScript(char const* name) : ScriptObject(name) { ScriptRegistry<OutdoorPvPScript>::Instance()->AddScript(this); } +OutdoorPvPScript::~OutdoorPvPScript() = default; + CommandScript::CommandScript(char const* name) : ScriptObject(name) { ScriptRegistry<CommandScript>::Instance()->AddScript(this); } +CommandScript::~CommandScript() = default; + WeatherScript::WeatherScript(char const* name) : ScriptObject(name) { ScriptRegistry<WeatherScript>::Instance()->AddScript(this); } +WeatherScript::~WeatherScript() = default; + AuctionHouseScript::AuctionHouseScript(char const* name) : ScriptObject(name) { ScriptRegistry<AuctionHouseScript>::Instance()->AddScript(this); } +AuctionHouseScript::~AuctionHouseScript() = default; + ConditionScript::ConditionScript(char const* name) : ScriptObject(name) { ScriptRegistry<ConditionScript>::Instance()->AddScript(this); } +ConditionScript::~ConditionScript() = default; + VehicleScript::VehicleScript(char const* name) : ScriptObject(name) { ScriptRegistry<VehicleScript>::Instance()->AddScript(this); } +VehicleScript::~VehicleScript() = default; + DynamicObjectScript::DynamicObjectScript(char const* name) : ScriptObject(name) { ScriptRegistry<DynamicObjectScript>::Instance()->AddScript(this); } +DynamicObjectScript::~DynamicObjectScript() = default; + TransportScript::TransportScript(char const* name) : ScriptObject(name) { ScriptRegistry<TransportScript>::Instance()->AddScript(this); } +TransportScript::~TransportScript() = default; + AchievementScript::AchievementScript(char const* name) : ScriptObject(name) { ScriptRegistry<AchievementScript>::Instance()->AddScript(this); } +AchievementScript::~AchievementScript() = default; + AchievementCriteriaScript::AchievementCriteriaScript(char const* name) : ScriptObject(name) { ScriptRegistry<AchievementCriteriaScript>::Instance()->AddScript(this); } +AchievementCriteriaScript::~AchievementCriteriaScript() = default; + PlayerScript::PlayerScript(char const* name) : ScriptObject(name) { ScriptRegistry<PlayerScript>::Instance()->AddScript(this); } +PlayerScript::~PlayerScript() = default; + AccountScript::AccountScript(char const* name) : ScriptObject(name) { ScriptRegistry<AccountScript>::Instance()->AddScript(this); } -SceneScript::SceneScript(char const* name) - : ScriptObject(name) -{ - ScriptRegistry<SceneScript>::Instance()->AddScript(this); -} - -QuestScript::QuestScript(char const* name) - : ScriptObject(name) -{ - ScriptRegistry<QuestScript>::Instance()->AddScript(this); -} +AccountScript::~AccountScript() = default; GuildScript::GuildScript(char const* name) : ScriptObject(name) @@ -2569,24 +2609,48 @@ GuildScript::GuildScript(char const* name) ScriptRegistry<GuildScript>::Instance()->AddScript(this); } +GuildScript::~GuildScript() = default; + GroupScript::GroupScript(char const* name) : ScriptObject(name) { ScriptRegistry<GroupScript>::Instance()->AddScript(this); } +GroupScript::~GroupScript() = default; + AreaTriggerEntityScript::AreaTriggerEntityScript(char const* name) : ScriptObject(name) { ScriptRegistry<AreaTriggerEntityScript>::Instance()->AddScript(this); } +AreaTriggerEntityScript::~AreaTriggerEntityScript() = default; + ConversationScript::ConversationScript(char const* name) : ScriptObject(name) { ScriptRegistry<ConversationScript>::Instance()->AddScript(this); } +ConversationScript::~ConversationScript() = default; + +SceneScript::SceneScript(char const* name) + : ScriptObject(name) +{ + ScriptRegistry<SceneScript>::Instance()->AddScript(this); +} + +SceneScript::~SceneScript() = default; + +QuestScript::QuestScript(char const* name) + : ScriptObject(name) +{ + ScriptRegistry<QuestScript>::Instance()->AddScript(this); +} + +QuestScript::~QuestScript() = default; + // Specialize for each script type class like so: template class TC_GAME_API ScriptRegistry<SpellScriptLoader>; template class TC_GAME_API ScriptRegistry<ServerScript>; diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 7aae463cd86..9d420542cae 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -176,6 +176,11 @@ class TC_GAME_API ScriptObject public: + ScriptObject(ScriptObject const& right) = delete; + ScriptObject(ScriptObject&& right) = delete; + ScriptObject& operator=(ScriptObject const& right) = delete; + ScriptObject& operator=(ScriptObject&& right) = delete; + const std::string& GetName() const { return _name; } protected: @@ -200,6 +205,11 @@ template<class TObject> class UpdatableScript public: + UpdatableScript(UpdatableScript const& right) = delete; + UpdatableScript(UpdatableScript&& right) = delete; + UpdatableScript& operator=(UpdatableScript const& right) = delete; + UpdatableScript& operator=(UpdatableScript&& right) = delete; + virtual void OnUpdate(TObject* /*obj*/, uint32 /*diff*/) { } }; @@ -226,6 +236,8 @@ class TC_GAME_API ServerScript : public ScriptObject public: + ~ServerScript(); + // Called when reactive socket I/O is started (WorldTcpSessionMgr). virtual void OnNetworkStart() { } @@ -256,6 +268,8 @@ class TC_GAME_API WorldScript : public ScriptObject public: + ~WorldScript(); + // Called when the open/closed state of the world changes. virtual void OnOpenStateChange(bool /*open*/) { } @@ -289,6 +303,8 @@ class TC_GAME_API FormulaScript : public ScriptObject public: + ~FormulaScript(); + // Called after calculating honor. virtual void OnHonorCalculation(float& /*honor*/, uint8 /*level*/, float /*multiplier*/) { } @@ -349,6 +365,10 @@ class TC_GAME_API WorldMapScript : public ScriptObject, public MapScript<Map> protected: WorldMapScript(char const* name, uint32 mapId); + + public: + + ~WorldMapScript(); }; class TC_GAME_API InstanceMapScript @@ -360,6 +380,8 @@ class TC_GAME_API InstanceMapScript public: + ~InstanceMapScript(); + // Gets an InstanceScript object for this instance. virtual InstanceScript* GetInstanceScript(InstanceMap* /*map*/) const { return nullptr; } }; @@ -369,6 +391,10 @@ class TC_GAME_API BattlegroundMapScript : public ScriptObject, public MapScript< protected: BattlegroundMapScript(char const* name, uint32 mapId); + + public: + + ~BattlegroundMapScript(); }; class TC_GAME_API ItemScript : public ScriptObject @@ -379,6 +405,8 @@ class TC_GAME_API ItemScript : public ScriptObject public: + ~ItemScript(); + // Called when a player accepts a quest from the item. virtual bool OnQuestAccept(Player* /*player*/, Item* /*item*/, Quest const* /*quest*/) { return false; } @@ -402,6 +430,9 @@ class TC_GAME_API UnitScript : public ScriptObject UnitScript(char const* name); public: + + ~UnitScript(); + // Called when a unit deals healing to another unit virtual void OnHeal(Unit* /*healer*/, Unit* /*reciever*/, uint32& /*gain*/) { } @@ -428,6 +459,9 @@ class TC_GAME_API CreatureScript : public ScriptObject CreatureScript(char const* name); public: + + ~CreatureScript(); + // Called when an unit exits a vehicle virtual void ModifyVehiclePassengerExitPos(Unit* /*passenger*/, Vehicle* /*vehicle*/, Position& /*pos*/) { } @@ -443,6 +477,8 @@ class TC_GAME_API GameObjectScript : public ScriptObject public: + ~GameObjectScript(); + // Called when a GameObjectAI object is needed for the gameobject. virtual GameObjectAI* GetAI(GameObject* /*go*/) const = 0; }; @@ -455,6 +491,8 @@ class TC_GAME_API AreaTriggerScript : public ScriptObject public: + ~AreaTriggerScript(); + // Called when the area trigger is activated by a player. virtual bool OnTrigger(Player* /*player*/, AreaTriggerEntry const* /*trigger*/) { return false; } @@ -464,9 +502,12 @@ class TC_GAME_API AreaTriggerScript : public ScriptObject class TC_GAME_API OnlyOnceAreaTriggerScript : public AreaTriggerScript { - using AreaTriggerScript::AreaTriggerScript; + using AreaTriggerScript::AreaTriggerScript; public: + + ~OnlyOnceAreaTriggerScript(); + bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) final; protected: @@ -484,6 +525,8 @@ class TC_GAME_API BattlefieldScript : public ScriptObject public: + ~BattlefieldScript(); + virtual Battlefield* GetBattlefield() const = 0; }; @@ -495,6 +538,8 @@ class TC_GAME_API BattlegroundScript : public ScriptObject public: + ~BattlegroundScript(); + // Should return a fully valid Battleground object for the type ID. virtual Battleground* GetBattleground() const = 0; }; @@ -507,6 +552,8 @@ class TC_GAME_API OutdoorPvPScript : public ScriptObject public: + ~OutdoorPvPScript(); + // Should return a fully valid OutdoorPvP object for the type ID. virtual OutdoorPvP* GetOutdoorPvP() const = 0; }; @@ -519,6 +566,8 @@ class TC_GAME_API CommandScript : public ScriptObject public: + ~CommandScript(); + // Should return a pointer to a valid command table (ChatCommand array) to be used by ChatHandler. virtual std::vector<ChatCommand> GetCommands() const = 0; }; @@ -531,6 +580,8 @@ class TC_GAME_API WeatherScript : public ScriptObject, public UpdatableScript<We public: + ~WeatherScript(); + // Called when the weather changes in the zone this script is associated with. virtual void OnChange(Weather* /*weather*/, WeatherState /*state*/, float /*grade*/) { } }; @@ -543,6 +594,8 @@ class TC_GAME_API AuctionHouseScript : public ScriptObject public: + ~AuctionHouseScript(); + // Called when an auction is added to an auction house. virtual void OnAuctionAdd(AuctionHouseObject* /*ah*/, AuctionPosting* /*auction*/) { } @@ -564,6 +617,8 @@ class TC_GAME_API ConditionScript : public ScriptObject public: + ~ConditionScript(); + // Called when a single condition is checked for a player. virtual bool OnConditionCheck(Condition const* /*condition*/, ConditionSourceInfo& /*sourceInfo*/) { return true; } }; @@ -576,6 +631,8 @@ class TC_GAME_API VehicleScript : public ScriptObject public: + ~VehicleScript(); + // Called after a vehicle is installed. virtual void OnInstall(Vehicle* /*veh*/) { } @@ -600,6 +657,10 @@ class TC_GAME_API DynamicObjectScript : public ScriptObject, public UpdatableScr protected: DynamicObjectScript(char const* name); + + public: + + ~DynamicObjectScript(); }; class TC_GAME_API TransportScript : public ScriptObject, public UpdatableScript<Transport> @@ -610,6 +671,8 @@ class TC_GAME_API TransportScript : public ScriptObject, public UpdatableScript< public: + ~TransportScript(); + // Called when a player boards the transport. virtual void OnAddPassenger(Transport* /*transport*/, Player* /*player*/) { } @@ -631,6 +694,8 @@ class TC_GAME_API AchievementScript : public ScriptObject public: + ~AchievementScript(); + // Called when an achievement is completed. virtual void OnCompleted(Player* /*player*/, AchievementEntry const* /*achievement*/) { } }; @@ -643,6 +708,8 @@ class TC_GAME_API AchievementCriteriaScript : public ScriptObject public: + ~AchievementCriteriaScript(); + // Called when an additional criteria is checked. virtual bool OnCheck(Player* source, Unit* target) = 0; }; @@ -655,6 +722,8 @@ class TC_GAME_API PlayerScript : public ScriptObject public: + ~PlayerScript(); + // Called when a player kills another player virtual void OnPVPKill(Player* /*killer*/, Player* /*killed*/) { } @@ -761,6 +830,8 @@ class TC_GAME_API AccountScript : public ScriptObject public: + ~AccountScript(); + // Called when an account logged in succesfully virtual void OnAccountLogin(uint32 /*accountId*/) {} @@ -788,6 +859,8 @@ class TC_GAME_API GuildScript : public ScriptObject public: + ~GuildScript(); + // Called when a member is added to the guild. virtual void OnAddMember(Guild* /*guild*/, Player* /*player*/, uint8 /*plRank*/) { } @@ -829,6 +902,8 @@ class TC_GAME_API GroupScript : public ScriptObject public: + ~GroupScript(); + // Called when a member is added to a group. virtual void OnAddMember(Group* /*group*/, ObjectGuid /*guid*/) { } @@ -853,6 +928,8 @@ class TC_GAME_API AreaTriggerEntityScript : public ScriptObject public: + ~AreaTriggerEntityScript(); + // Called when a AreaTriggerAI object is needed for the areatrigger. virtual AreaTriggerAI* GetAI(AreaTrigger* /*at*/) const { return nullptr; } }; @@ -864,6 +941,8 @@ class TC_GAME_API ConversationScript : public ScriptObject public: + ~ConversationScript(); + // Called when Conversation is created but not added to Map yet. virtual void OnConversationCreate(Conversation* /*conversation*/, Unit* /*creator*/) { } @@ -878,6 +957,9 @@ class TC_GAME_API SceneScript : public ScriptObject SceneScript(char const* name); public: + + ~SceneScript(); + // Called when a player start a scene virtual void OnSceneStart(Player* /*player*/, uint32 /*sceneInstanceID*/, SceneTemplate const* /*sceneTemplate*/) { } @@ -898,6 +980,9 @@ class TC_GAME_API QuestScript : public ScriptObject QuestScript(char const* name); public: + + ~QuestScript(); + // Called when a quest status change virtual void OnQuestStatusChange(Player* /*player*/, Quest const* /*quest*/, QuestStatus /*oldStatus*/, QuestStatus /*newStatus*/) { } @@ -915,7 +1000,12 @@ class TC_GAME_API ScriptMgr private: ScriptMgr(); - virtual ~ScriptMgr(); + ~ScriptMgr(); + + ScriptMgr(ScriptMgr const& right) = delete; + ScriptMgr(ScriptMgr&& right) = delete; + ScriptMgr& operator=(ScriptMgr const& right) = delete; + ScriptMgr& operator=(ScriptMgr&& right) = delete; void FillSpellSummary(); void LoadDatabase(); diff --git a/src/server/game/Spells/Auras/SpellAuras.h b/src/server/game/Spells/Auras/SpellAuras.h index 675c0e159f1..38bcac57d27 100644 --- a/src/server/game/Spells/Auras/SpellAuras.h +++ b/src/server/game/Spells/Auras/SpellAuras.h @@ -307,6 +307,12 @@ class TC_GAME_API Aura virtual std::string GetDebugInfo() const; + Aura(Aura const&) = delete; + Aura(Aura&&) = delete; + + Aura& operator=(Aura const&) = delete; + Aura& operator=(Aura&&) = delete; + private: AuraScript* GetScriptByType(std::type_info const& type) const; void _DeleteRemovedApplications(); diff --git a/src/server/game/Spells/SpellHistory.cpp b/src/server/game/Spells/SpellHistory.cpp index 95a9582063f..e4298f9f7e3 100644 --- a/src/server/game/Spells/SpellHistory.cpp +++ b/src/server/game/Spells/SpellHistory.cpp @@ -136,6 +136,12 @@ struct SpellHistory::PersistenceHelper<Pet> } }; +SpellHistory::SpellHistory(Unit* owner) : _owner(owner), _schoolLockouts() +{ +} + +SpellHistory::~SpellHistory() = default; + template<class OwnerType> void SpellHistory::LoadFromDB(PreparedQueryResult cooldownsResult, PreparedQueryResult chargesResult) { diff --git a/src/server/game/Spells/SpellHistory.h b/src/server/game/Spells/SpellHistory.h index a14c9c37a1b..1a32371153e 100644 --- a/src/server/game/Spells/SpellHistory.h +++ b/src/server/game/Spells/SpellHistory.h @@ -75,7 +75,14 @@ public: using ChargeStorageType = std::unordered_map<uint32 /*categoryId*/, ChargeEntryCollection>; using GlobalCooldownStorageType = std::unordered_map<uint32 /*categoryId*/, Clock::time_point>; - explicit SpellHistory(Unit* owner) : _owner(owner), _schoolLockouts() { } + explicit SpellHistory(Unit* owner); + ~SpellHistory(); + + SpellHistory(SpellHistory const&) = delete; + SpellHistory(SpellHistory&&) = delete; + + SpellHistory& operator=(SpellHistory const&) = delete; + SpellHistory& operator=(SpellHistory&&) = delete; template<class OwnerType> void LoadFromDB(PreparedQueryResult cooldownsResult, PreparedQueryResult chargesResult); diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index e2d3bacd848..17afab842cf 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -216,6 +216,13 @@ uint32 SpellImplicitTargetInfo::GetExplicitTargetMask(bool& srcSet, bool& dstSet return targetMask; } +ImmunityInfo::ImmunityInfo() = default; +ImmunityInfo::~ImmunityInfo() = default; +ImmunityInfo::ImmunityInfo(ImmunityInfo const&) = default; +ImmunityInfo::ImmunityInfo(ImmunityInfo&&) noexcept = default; +ImmunityInfo& ImmunityInfo::operator=(ImmunityInfo const&) = default; +ImmunityInfo& ImmunityInfo::operator=(ImmunityInfo&&) noexcept = default; + std::array<SpellImplicitTargetInfo::StaticData, TOTAL_SPELL_TARGETS> SpellImplicitTargetInfo::_data = { { {TARGET_OBJECT_TYPE_NONE, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // @@ -372,6 +379,15 @@ std::array<SpellImplicitTargetInfo::StaticData, TOTAL_SPELL_TARGETS> SpellImplic {TARGET_OBJECT_TYPE_UNIT, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_AREA, TARGET_CHECK_ENEMY, TARGET_DIR_NONE}, // 151 } }; +SpellEffectInfo::SpellEffectInfo(SpellInfo const* spellInfo): _spellInfo(spellInfo), EffectIndex(EFFECT_0), Effect(SPELL_EFFECT_NONE), ApplyAuraName(AuraType(0)), ApplyAuraPeriod(0), + BasePoints(0), RealPointsPerLevel(0), PointsPerResource(0), Amplitude(0), ChainAmplitude(0), + BonusCoefficient(0), MiscValue(0), MiscValueB(0), Mechanic(MECHANIC_NONE), PositionFacing(0), + RadiusEntry(nullptr), MaxRadiusEntry(nullptr), ChainTargets(0), ItemType(0), TriggerSpell(0), + BonusCoefficientFromAP(0.0f), ImplicitTargetConditions(nullptr), + EffectAttributes(SpellEffectAttributes::None), Scaling() +{ +} + SpellEffectInfo::SpellEffectInfo(SpellInfo const* spellInfo, SpellEffectEntry const& _effect) : EffectAttributes(SpellEffectAttributes::None) { @@ -409,6 +425,12 @@ SpellEffectInfo::SpellEffectInfo(SpellInfo const* spellInfo, SpellEffectEntry co EffectAttributes = _effect.GetEffectAttributes(); } +SpellEffectInfo::SpellEffectInfo(SpellEffectInfo const&) = default; +SpellEffectInfo::SpellEffectInfo(SpellEffectInfo&&) noexcept = default; +SpellEffectInfo::~SpellEffectInfo() = default; +SpellEffectInfo& SpellEffectInfo::operator=(SpellEffectInfo const&) = default; +SpellEffectInfo& SpellEffectInfo::operator=(SpellEffectInfo&&) noexcept = default; + bool SpellEffectInfo::IsEffect() const { return Effect != 0; diff --git a/src/server/game/Spells/SpellInfo.h b/src/server/game/Spells/SpellInfo.h index a2b1070903f..21425d1b595 100644 --- a/src/server/game/Spells/SpellInfo.h +++ b/src/server/game/Spells/SpellInfo.h @@ -213,6 +213,14 @@ private: struct TC_GAME_API ImmunityInfo { + ImmunityInfo(); + ~ImmunityInfo(); + + ImmunityInfo(ImmunityInfo const&); + ImmunityInfo(ImmunityInfo&&) noexcept; + ImmunityInfo& operator=(ImmunityInfo const&); + ImmunityInfo& operator=(ImmunityInfo&&) noexcept; + uint32 SchoolImmuneMask = 0; uint32 ApplyHarmfulAuraImmuneMask = 0; uint32 MechanicImmuneMask = 0; @@ -262,13 +270,14 @@ public: float ResourceCoefficient; } Scaling; - SpellEffectInfo(SpellInfo const* spellInfo) : _spellInfo(spellInfo), EffectIndex(EFFECT_0), Effect(SPELL_EFFECT_NONE), ApplyAuraName(AuraType(0)), ApplyAuraPeriod(0), - BasePoints(0), RealPointsPerLevel(0), PointsPerResource(0), Amplitude(0), ChainAmplitude(0), - BonusCoefficient(0), MiscValue(0), MiscValueB(0), Mechanic(MECHANIC_NONE), PositionFacing(0), - RadiusEntry(nullptr), MaxRadiusEntry(nullptr), ChainTargets(0), ItemType(0), TriggerSpell(0), - BonusCoefficientFromAP(0.0f), ImplicitTargetConditions(nullptr), - EffectAttributes(SpellEffectAttributes::None), Scaling() { } - SpellEffectInfo(SpellInfo const* spellInfo, SpellEffectEntry const& effect); + explicit SpellEffectInfo(SpellInfo const* spellInfo); + explicit SpellEffectInfo(SpellInfo const* spellInfo, SpellEffectEntry const& effect); + SpellEffectInfo(SpellEffectInfo const&); + SpellEffectInfo(SpellEffectInfo&&) noexcept; + ~SpellEffectInfo(); + + SpellEffectInfo& operator=(SpellEffectInfo const&); + SpellEffectInfo& operator=(SpellEffectInfo&&) noexcept; bool IsEffect() const; bool IsEffect(SpellEffectName effectName) const; @@ -434,10 +443,15 @@ class TC_GAME_API SpellInfo uint32 ExplicitTargetMask = 0; SpellChainNode const* ChainEntry = nullptr; - SpellInfo(SpellNameEntry const* spellName, ::Difficulty difficulty, SpellInfoLoadHelper const& data); - SpellInfo(SpellNameEntry const* spellName, ::Difficulty difficulty, std::vector<SpellEffectEntry> const& effects); + explicit SpellInfo(SpellNameEntry const* spellName, ::Difficulty difficulty, SpellInfoLoadHelper const& data); + explicit SpellInfo(SpellNameEntry const* spellName, ::Difficulty difficulty, std::vector<SpellEffectEntry> const& effects); + SpellInfo(SpellInfo const&) = delete; + SpellInfo(SpellInfo&&) = delete; ~SpellInfo(); + SpellInfo& operator=(SpellInfo const&) = delete; + SpellInfo& operator=(SpellInfo&&) noexcept = delete; + uint32 GetCategory() const; bool HasEffect(SpellEffectName effect) const; bool HasAura(AuraType aura) const; diff --git a/src/server/game/Spells/SpellMgr.h b/src/server/game/Spells/SpellMgr.h index 6e1fe9ea80e..812ecf23b0a 100644 --- a/src/server/game/Spells/SpellMgr.h +++ b/src/server/game/Spells/SpellMgr.h @@ -676,6 +676,11 @@ class TC_GAME_API SpellMgr // Accessors (const or static functions) public: + SpellMgr(SpellMgr const& right) = delete; + SpellMgr(SpellMgr&& right) = delete; + SpellMgr& operator=(SpellMgr const& right) = delete; + SpellMgr& operator=(SpellMgr&& right) = delete; + static SpellMgr* instance(); // Spell correctness for client using diff --git a/src/server/game/Spells/SpellScript.cpp b/src/server/game/Spells/SpellScript.cpp index 0029986471a..65adc36a019 100644 --- a/src/server/game/Spells/SpellScript.cpp +++ b/src/server/game/Spells/SpellScript.cpp @@ -35,6 +35,12 @@ bool _SpellScript::_Validate(SpellInfo const* entry) return true; } +_SpellScript::_SpellScript(): m_currentScriptState(SPELL_SCRIPT_STATE_NONE), m_scriptName(nullptr), m_scriptSpellId(0) +{ +} + +_SpellScript::~_SpellScript() = default; + bool _SpellScript::_ValidateSpellInfo(uint32 spellId) { if (!sSpellMgr->GetSpellInfo(spellId, DIFFICULTY_NONE)) @@ -84,6 +90,10 @@ _SpellScript::EffectHook::EffectHook(uint8 _effIndex) effIndex = _effIndex; } +_SpellScript::EffectHook::EffectHook(EffectHook&& right) noexcept = default; +_SpellScript::EffectHook& _SpellScript::EffectHook::operator=(EffectHook&& right) noexcept = default; +_SpellScript::EffectHook::~EffectHook() = default; + uint32 _SpellScript::EffectHook::GetAffectedEffectsMask(SpellInfo const* spellEntry) const { uint32 mask = 0; @@ -121,6 +131,14 @@ std::string _SpellScript::EffectHook::EffIndexToString() const return "Invalid Value"; } +_SpellScript::EffectNameCheck::EffectNameCheck(uint16 _effName) : effName(_effName) +{ +} + +_SpellScript::EffectNameCheck::EffectNameCheck(EffectNameCheck&& right) noexcept = default; +_SpellScript::EffectNameCheck& _SpellScript::EffectNameCheck::operator=(EffectNameCheck&& right) noexcept = default; +_SpellScript::EffectNameCheck::~EffectNameCheck() = default; + bool _SpellScript::EffectNameCheck::Check(SpellInfo const* spellEntry, uint8 effIndex) const { if (spellEntry->GetEffects().size() <= effIndex) @@ -146,6 +164,14 @@ std::string _SpellScript::EffectNameCheck::ToString() const } } +_SpellScript::EffectAuraNameCheck::EffectAuraNameCheck(uint16 _effAurName) : effAurName(_effAurName) +{ +} + +_SpellScript::EffectAuraNameCheck::EffectAuraNameCheck(EffectAuraNameCheck&& right) noexcept = default; +_SpellScript::EffectAuraNameCheck& _SpellScript::EffectAuraNameCheck::operator=(EffectAuraNameCheck&& right) noexcept = default; +_SpellScript::EffectAuraNameCheck::~EffectAuraNameCheck() = default; + bool _SpellScript::EffectAuraNameCheck::Check(SpellInfo const* spellEntry, uint8 effIndex) const { if (spellEntry->GetEffects().size() <= effIndex) @@ -171,42 +197,55 @@ std::string _SpellScript::EffectAuraNameCheck::ToString() const } } -SpellScript::CastHandler::CastHandler(SpellCastFnType _pCastHandlerScript) +SpellScript::CastHandler::CastHandler(SpellCastFnType _pCastHandlerScript) : pCastHandlerScript(_pCastHandlerScript) { - pCastHandlerScript = _pCastHandlerScript; } +SpellScript::CastHandler::CastHandler(CastHandler&& right) noexcept = default; +SpellScript::CastHandler& SpellScript::CastHandler::operator=(CastHandler&& right) noexcept = default; +SpellScript::CastHandler::~CastHandler() = default; + void SpellScript::CastHandler::Call(SpellScript* spellScript) { (spellScript->*pCastHandlerScript)(); } -SpellScript::CheckCastHandler::CheckCastHandler(SpellCheckCastFnType checkCastHandlerScript) +SpellScript::CheckCastHandler::CheckCastHandler(SpellCheckCastFnType checkCastHandlerScript) : _checkCastHandlerScript(checkCastHandlerScript) { - _checkCastHandlerScript = checkCastHandlerScript; } +SpellScript::CheckCastHandler::CheckCastHandler(CheckCastHandler&& right) noexcept = default; +SpellScript::CheckCastHandler& SpellScript::CheckCastHandler::operator=(CheckCastHandler&& right) noexcept = default; +SpellScript::CheckCastHandler::~CheckCastHandler() = default; + SpellCastResult SpellScript::CheckCastHandler::Call(SpellScript* spellScript) { return (spellScript->*_checkCastHandlerScript)(); } -SpellScript::OnCalculateResistAbsorbHandler::OnCalculateResistAbsorbHandler(SpellOnResistAbsorbCalculateFnType onResistAbsorbCalculateHandlerScript) +SpellScript::OnCalculateResistAbsorbHandler::OnCalculateResistAbsorbHandler(SpellOnResistAbsorbCalculateFnType onResistAbsorbCalculateHandlerScript) : + pOnCalculateResistAbsorbHandlerScript(onResistAbsorbCalculateHandlerScript) { - pOnCalculateResistAbsorbHandlerScript = onResistAbsorbCalculateHandlerScript; } +SpellScript::OnCalculateResistAbsorbHandler::OnCalculateResistAbsorbHandler(OnCalculateResistAbsorbHandler&& right) noexcept = default; +SpellScript::OnCalculateResistAbsorbHandler& SpellScript::OnCalculateResistAbsorbHandler::operator=(OnCalculateResistAbsorbHandler&& right) noexcept = default; +SpellScript::OnCalculateResistAbsorbHandler::~OnCalculateResistAbsorbHandler() = default; + void SpellScript::OnCalculateResistAbsorbHandler::Call(SpellScript* spellScript, DamageInfo const& damageInfo, uint32& resistAmount, int32& absorbAmount) { return (spellScript->*pOnCalculateResistAbsorbHandlerScript)(damageInfo, resistAmount, absorbAmount); } SpellScript::EffectHandler::EffectHandler(SpellEffectFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) - : _SpellScript::EffectNameCheck(_effName), _SpellScript::EffectHook(_effIndex) + : _SpellScript::EffectNameCheck(_effName), _SpellScript::EffectHook(_effIndex), pEffectHandlerScript(_pEffectHandlerScript) { - pEffectHandlerScript = _pEffectHandlerScript; } +SpellScript::EffectHandler::EffectHandler(EffectHandler&& right) noexcept = default; +SpellScript::EffectHandler& SpellScript::EffectHandler::operator=(EffectHandler&& right) noexcept = default; +SpellScript::EffectHandler::~EffectHandler() = default; + std::string SpellScript::EffectHandler::ToString() const { return "Index: " + EffIndexToString() + " Name: " +_SpellScript::EffectNameCheck::ToString(); @@ -222,31 +261,41 @@ void SpellScript::EffectHandler::Call(SpellScript* spellScript, SpellEffIndex ef (spellScript->*pEffectHandlerScript)(effIndexToHandle); } -SpellScript::BeforeHitHandler::BeforeHitHandler(SpellBeforeHitFnType pBeforeHitHandlerScript) +SpellScript::BeforeHitHandler::BeforeHitHandler(SpellBeforeHitFnType pBeforeHitHandlerScript) : _pBeforeHitHandlerScript(pBeforeHitHandlerScript) { - _pBeforeHitHandlerScript = pBeforeHitHandlerScript; } +SpellScript::BeforeHitHandler::BeforeHitHandler(BeforeHitHandler&& right) noexcept = default; +SpellScript::BeforeHitHandler& SpellScript::BeforeHitHandler::operator=(BeforeHitHandler&& right) noexcept = default; +SpellScript::BeforeHitHandler::~BeforeHitHandler() = default; + void SpellScript::BeforeHitHandler::Call(SpellScript* spellScript, SpellMissInfo missInfo) { (spellScript->*_pBeforeHitHandlerScript)(missInfo); } -SpellScript::HitHandler::HitHandler(SpellHitFnType _pHitHandlerScript) +SpellScript::HitHandler::HitHandler(SpellHitFnType _pHitHandlerScript) : pHitHandlerScript(_pHitHandlerScript) { - pHitHandlerScript = _pHitHandlerScript; } +SpellScript::HitHandler::HitHandler(HitHandler&& right) noexcept = default; +SpellScript::HitHandler& SpellScript::HitHandler::operator=(HitHandler&& right) noexcept = default; +SpellScript::HitHandler::~HitHandler() = default; + void SpellScript::HitHandler::Call(SpellScript* spellScript) { (spellScript->*pHitHandlerScript)(); } -SpellScript::OnCalcCritChanceHandler::OnCalcCritChanceHandler(SpellOnCalcCritChanceFnType onCalcCritChanceHandlerScript) +SpellScript::OnCalcCritChanceHandler::OnCalcCritChanceHandler(SpellOnCalcCritChanceFnType onCalcCritChanceHandlerScript) : _onCalcCritChanceHandlerScript( + onCalcCritChanceHandlerScript) { - _onCalcCritChanceHandlerScript = onCalcCritChanceHandlerScript; } +SpellScript::OnCalcCritChanceHandler::OnCalcCritChanceHandler(OnCalcCritChanceHandler&& right) noexcept = default; +SpellScript::OnCalcCritChanceHandler& SpellScript::OnCalcCritChanceHandler::operator=(OnCalcCritChanceHandler&& right) noexcept = default; +SpellScript::OnCalcCritChanceHandler::~OnCalcCritChanceHandler() = default; + void SpellScript::OnCalcCritChanceHandler::Call(SpellScript* spellScript, Unit const* victim, float& critChance) const { (spellScript->*_onCalcCritChanceHandlerScript)(victim, critChance); @@ -255,6 +304,10 @@ void SpellScript::OnCalcCritChanceHandler::Call(SpellScript* spellScript, Unit c SpellScript::TargetHook::TargetHook(uint8 _effectIndex, uint16 _targetType, bool _area, bool _dest) : _SpellScript::EffectHook(_effectIndex), targetType(_targetType), area(_area), dest(_dest) { } +SpellScript::TargetHook::TargetHook(TargetHook&& right) noexcept = default; +SpellScript::TargetHook& SpellScript::TargetHook::operator=(TargetHook&& right) noexcept = default; +SpellScript::TargetHook::~TargetHook() = default; + std::string SpellScript::TargetHook::ToString() const { std::ostringstream oss; @@ -317,33 +370,42 @@ bool SpellScript::TargetHook::CheckEffect(SpellInfo const* spellEntry, uint8 eff } SpellScript::ObjectAreaTargetSelectHandler::ObjectAreaTargetSelectHandler(SpellObjectAreaTargetSelectFnType _pObjectAreaTargetSelectHandlerScript, uint8 _effIndex, uint16 _targetType) - : TargetHook(_effIndex, _targetType, true, false) + : TargetHook(_effIndex, _targetType, true, false), pObjectAreaTargetSelectHandlerScript(_pObjectAreaTargetSelectHandlerScript) { - pObjectAreaTargetSelectHandlerScript = _pObjectAreaTargetSelectHandlerScript; } +SpellScript::ObjectAreaTargetSelectHandler::ObjectAreaTargetSelectHandler(ObjectAreaTargetSelectHandler&& right) noexcept = default; +SpellScript::ObjectAreaTargetSelectHandler& SpellScript::ObjectAreaTargetSelectHandler::operator=(ObjectAreaTargetSelectHandler&& right) noexcept = default; +SpellScript::ObjectAreaTargetSelectHandler::~ObjectAreaTargetSelectHandler() = default; + void SpellScript::ObjectAreaTargetSelectHandler::Call(SpellScript* spellScript, std::list<WorldObject*>& targets) { (spellScript->*pObjectAreaTargetSelectHandlerScript)(targets); } SpellScript::ObjectTargetSelectHandler::ObjectTargetSelectHandler(SpellObjectTargetSelectFnType _pObjectTargetSelectHandlerScript, uint8 _effIndex, uint16 _targetType) - : TargetHook(_effIndex, _targetType, false, false) + : TargetHook(_effIndex, _targetType, false, false), pObjectTargetSelectHandlerScript(_pObjectTargetSelectHandlerScript) { - pObjectTargetSelectHandlerScript = _pObjectTargetSelectHandlerScript; } +SpellScript::ObjectTargetSelectHandler::ObjectTargetSelectHandler(ObjectTargetSelectHandler&& right) noexcept = default; +SpellScript::ObjectTargetSelectHandler& SpellScript::ObjectTargetSelectHandler::operator=(ObjectTargetSelectHandler&& right) noexcept = default; +SpellScript::ObjectTargetSelectHandler::~ObjectTargetSelectHandler() = default; + void SpellScript::ObjectTargetSelectHandler::Call(SpellScript* spellScript, WorldObject*& target) { (spellScript->*pObjectTargetSelectHandlerScript)(target); } SpellScript::DestinationTargetSelectHandler::DestinationTargetSelectHandler(SpellDestinationTargetSelectFnType _DestinationTargetSelectHandlerScript, uint8 _effIndex, uint16 _targetType) - : TargetHook(_effIndex, _targetType, false, true) + : TargetHook(_effIndex, _targetType, false, true), DestinationTargetSelectHandlerScript(_DestinationTargetSelectHandlerScript) { - DestinationTargetSelectHandlerScript = _DestinationTargetSelectHandlerScript; } +SpellScript::DestinationTargetSelectHandler::DestinationTargetSelectHandler(DestinationTargetSelectHandler&& right) noexcept = default; +SpellScript::DestinationTargetSelectHandler& SpellScript::DestinationTargetSelectHandler::operator=(DestinationTargetSelectHandler&& right) noexcept = default; +SpellScript::DestinationTargetSelectHandler::~DestinationTargetSelectHandler() = default; + void SpellScript::DestinationTargetSelectHandler::Call(SpellScript* spellScript, SpellDestination& target) { (spellScript->*DestinationTargetSelectHandlerScript)(target); @@ -928,21 +990,27 @@ bool AuraScript::_Validate(SpellInfo const* entry) return _SpellScript::_Validate(entry); } -AuraScript::CheckAreaTargetHandler::CheckAreaTargetHandler(AuraCheckAreaTargetFnType _pHandlerScript) +AuraScript::CheckAreaTargetHandler::CheckAreaTargetHandler(AuraCheckAreaTargetFnType _pHandlerScript) : pHandlerScript(_pHandlerScript) { - pHandlerScript = _pHandlerScript; } +AuraScript::CheckAreaTargetHandler::CheckAreaTargetHandler(CheckAreaTargetHandler&& right) noexcept = default; +AuraScript::CheckAreaTargetHandler& AuraScript::CheckAreaTargetHandler::operator=(CheckAreaTargetHandler&& right) noexcept = default; +AuraScript::CheckAreaTargetHandler::~CheckAreaTargetHandler() = default; + bool AuraScript::CheckAreaTargetHandler::Call(AuraScript* auraScript, Unit* _target) { return (auraScript->*pHandlerScript)(_target); } -AuraScript::AuraDispelHandler::AuraDispelHandler(AuraDispelFnType _pHandlerScript) +AuraScript::AuraDispelHandler::AuraDispelHandler(AuraDispelFnType _pHandlerScript) : pHandlerScript(_pHandlerScript) { - pHandlerScript = _pHandlerScript; } +AuraScript::AuraDispelHandler::AuraDispelHandler(AuraDispelHandler&& right) noexcept = default; +AuraScript::AuraDispelHandler& AuraScript::AuraDispelHandler::operator=(AuraDispelHandler&& right) noexcept = default; +AuraScript::AuraDispelHandler::~AuraDispelHandler() = default; + void AuraScript::AuraDispelHandler::Call(AuraScript* auraScript, DispelInfo* _dispelInfo) { (auraScript->*pHandlerScript)(_dispelInfo); @@ -951,6 +1019,10 @@ void AuraScript::AuraDispelHandler::Call(AuraScript* auraScript, DispelInfo* _di AuraScript::EffectBase::EffectBase(uint8 _effIndex, uint16 _effName) : _SpellScript::EffectAuraNameCheck(_effName), _SpellScript::EffectHook(_effIndex) { } +AuraScript::EffectBase::EffectBase(EffectBase&& right) noexcept = default; +AuraScript::EffectBase& AuraScript::EffectBase::operator=(EffectBase&& right) noexcept = default; +AuraScript::EffectBase::~EffectBase() = default; + bool AuraScript::EffectBase::CheckEffect(SpellInfo const* spellEntry, uint8 effIndexToCheck) const { return _SpellScript::EffectAuraNameCheck::Check(spellEntry, effIndexToCheck); @@ -962,78 +1034,98 @@ std::string AuraScript::EffectBase::ToString() const } AuraScript::EffectPeriodicHandler::EffectPeriodicHandler(AuraEffectPeriodicFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) - : AuraScript::EffectBase(_effIndex, _effName) + : AuraScript::EffectBase(_effIndex, _effName), pEffectHandlerScript(_pEffectHandlerScript) { - pEffectHandlerScript = _pEffectHandlerScript; } +AuraScript::EffectPeriodicHandler::EffectPeriodicHandler(EffectPeriodicHandler&& right) noexcept = default; +AuraScript::EffectPeriodicHandler& AuraScript::EffectPeriodicHandler::operator=(EffectPeriodicHandler&& right) noexcept = default; +AuraScript::EffectPeriodicHandler::~EffectPeriodicHandler() = default; + void AuraScript::EffectPeriodicHandler::Call(AuraScript* auraScript, AuraEffect const* _aurEff) { (auraScript->*pEffectHandlerScript)(_aurEff); } AuraScript::EffectUpdatePeriodicHandler::EffectUpdatePeriodicHandler(AuraEffectUpdatePeriodicFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) - : AuraScript::EffectBase(_effIndex, _effName) + : AuraScript::EffectBase(_effIndex, _effName), pEffectHandlerScript(_pEffectHandlerScript) { - pEffectHandlerScript = _pEffectHandlerScript; } +AuraScript::EffectUpdatePeriodicHandler::EffectUpdatePeriodicHandler(EffectUpdatePeriodicHandler&& right) noexcept = default; +AuraScript::EffectUpdatePeriodicHandler& AuraScript::EffectUpdatePeriodicHandler::operator=(EffectUpdatePeriodicHandler&& right) noexcept = default; +AuraScript::EffectUpdatePeriodicHandler::~EffectUpdatePeriodicHandler() = default; + void AuraScript::EffectUpdatePeriodicHandler::Call(AuraScript* auraScript, AuraEffect* aurEff) { (auraScript->*pEffectHandlerScript)(aurEff); } AuraScript::EffectCalcAmountHandler::EffectCalcAmountHandler(AuraEffectCalcAmountFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) - : AuraScript::EffectBase(_effIndex, _effName) + : AuraScript::EffectBase(_effIndex, _effName), pEffectHandlerScript(_pEffectHandlerScript) { - pEffectHandlerScript = _pEffectHandlerScript; } +AuraScript::EffectCalcAmountHandler::EffectCalcAmountHandler(EffectCalcAmountHandler&& right) noexcept = default; +AuraScript::EffectCalcAmountHandler& AuraScript::EffectCalcAmountHandler::operator=(EffectCalcAmountHandler&& right) noexcept = default; +AuraScript::EffectCalcAmountHandler::~EffectCalcAmountHandler() = default; + void AuraScript::EffectCalcAmountHandler::Call(AuraScript* auraScript, AuraEffect const* aurEff, int32& amount, bool& canBeRecalculated) { (auraScript->*pEffectHandlerScript)(aurEff, amount, canBeRecalculated); } AuraScript::EffectCalcPeriodicHandler::EffectCalcPeriodicHandler(AuraEffectCalcPeriodicFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) - : AuraScript::EffectBase(_effIndex, _effName) + : AuraScript::EffectBase(_effIndex, _effName), pEffectHandlerScript(_pEffectHandlerScript) { - pEffectHandlerScript = _pEffectHandlerScript; } +AuraScript::EffectCalcPeriodicHandler::EffectCalcPeriodicHandler(EffectCalcPeriodicHandler&& right) noexcept = default; +AuraScript::EffectCalcPeriodicHandler& AuraScript::EffectCalcPeriodicHandler::operator=(EffectCalcPeriodicHandler&& right) noexcept = default; +AuraScript::EffectCalcPeriodicHandler::~EffectCalcPeriodicHandler() = default; + void AuraScript::EffectCalcPeriodicHandler::Call(AuraScript* auraScript, AuraEffect const* aurEff, bool& isPeriodic, int32& periodicTimer) { (auraScript->*pEffectHandlerScript)(aurEff, isPeriodic, periodicTimer); } AuraScript::EffectCalcSpellModHandler::EffectCalcSpellModHandler(AuraEffectCalcSpellModFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) - : AuraScript::EffectBase(_effIndex, _effName) + : AuraScript::EffectBase(_effIndex, _effName), pEffectHandlerScript(_pEffectHandlerScript) { - pEffectHandlerScript = _pEffectHandlerScript; } +AuraScript::EffectCalcSpellModHandler::EffectCalcSpellModHandler(EffectCalcSpellModHandler&& right) noexcept = default; +AuraScript::EffectCalcSpellModHandler& AuraScript::EffectCalcSpellModHandler::operator=(EffectCalcSpellModHandler&& right) noexcept = default; +AuraScript::EffectCalcSpellModHandler::~EffectCalcSpellModHandler() = default; + void AuraScript::EffectCalcSpellModHandler::Call(AuraScript* auraScript, AuraEffect const* aurEff, SpellModifier*& spellMod) { (auraScript->*pEffectHandlerScript)(aurEff, spellMod); } AuraScript::EffectCalcCritChanceHandler::EffectCalcCritChanceHandler(AuraEffectCalcCritChanceFnType effectHandlerScript, uint8 effIndex, uint16 effName) - : AuraScript::EffectBase(effIndex, effName) + : AuraScript::EffectBase(effIndex, effName), _effectHandlerScript(effectHandlerScript) { - _effectHandlerScript = effectHandlerScript; } +AuraScript::EffectCalcCritChanceHandler::EffectCalcCritChanceHandler(EffectCalcCritChanceHandler&& right) noexcept = default; +AuraScript::EffectCalcCritChanceHandler& AuraScript::EffectCalcCritChanceHandler::operator=(EffectCalcCritChanceHandler&& right) noexcept = default; +AuraScript::EffectCalcCritChanceHandler::~EffectCalcCritChanceHandler() = default; + void AuraScript::EffectCalcCritChanceHandler::Call(AuraScript* auraScript, AuraEffect const* aurEff, Unit const* victim, float& critChance) const { (auraScript->*_effectHandlerScript)(aurEff, victim, critChance); } AuraScript::EffectApplyHandler::EffectApplyHandler(AuraEffectApplicationModeFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName, AuraEffectHandleModes _mode) - : AuraScript::EffectBase(_effIndex, _effName) + : AuraScript::EffectBase(_effIndex, _effName), pEffectHandlerScript(_pEffectHandlerScript), mode(_mode) { - pEffectHandlerScript = _pEffectHandlerScript; - mode = _mode; } +AuraScript::EffectApplyHandler::EffectApplyHandler(EffectApplyHandler&& right) noexcept = default; +AuraScript::EffectApplyHandler& AuraScript::EffectApplyHandler::operator=(EffectApplyHandler&& right) noexcept = default; +AuraScript::EffectApplyHandler::~EffectApplyHandler() = default; + void AuraScript::EffectApplyHandler::Call(AuraScript* auraScript, AuraEffect const* _aurEff, AuraEffectHandleModes _mode) { if (_mode & mode) @@ -1041,85 +1133,109 @@ void AuraScript::EffectApplyHandler::Call(AuraScript* auraScript, AuraEffect con } AuraScript::EffectAbsorbHandler::EffectAbsorbHandler(AuraEffectAbsorbFnType _pEffectHandlerScript, uint8 _effIndex, bool overKill) - : AuraScript::EffectBase(_effIndex, overKill ? SPELL_AURA_SCHOOL_ABSORB_OVERKILL : SPELL_AURA_SCHOOL_ABSORB) + : AuraScript::EffectBase(_effIndex, overKill ? SPELL_AURA_SCHOOL_ABSORB_OVERKILL : SPELL_AURA_SCHOOL_ABSORB), pEffectHandlerScript(_pEffectHandlerScript) { - pEffectHandlerScript = _pEffectHandlerScript; } +AuraScript::EffectAbsorbHandler::EffectAbsorbHandler(EffectAbsorbHandler&& right) noexcept = default; +AuraScript::EffectAbsorbHandler& AuraScript::EffectAbsorbHandler::operator=(EffectAbsorbHandler&& right) noexcept = default; +AuraScript::EffectAbsorbHandler::~EffectAbsorbHandler() = default; + void AuraScript::EffectAbsorbHandler::Call(AuraScript* auraScript, AuraEffect* aurEff, DamageInfo& dmgInfo, uint32& absorbAmount) { (auraScript->*pEffectHandlerScript)(aurEff, dmgInfo, absorbAmount); } AuraScript::EffectManaShieldHandler::EffectManaShieldHandler(AuraEffectAbsorbFnType _pEffectHandlerScript, uint8 _effIndex) - : AuraScript::EffectBase(_effIndex, SPELL_AURA_MANA_SHIELD) + : AuraScript::EffectBase(_effIndex, SPELL_AURA_MANA_SHIELD), pEffectHandlerScript(_pEffectHandlerScript) { - pEffectHandlerScript = _pEffectHandlerScript; } +AuraScript::EffectManaShieldHandler::EffectManaShieldHandler(EffectManaShieldHandler&& right) noexcept = default; +AuraScript::EffectManaShieldHandler& AuraScript::EffectManaShieldHandler::operator=(EffectManaShieldHandler&& right) noexcept = default; +AuraScript::EffectManaShieldHandler::~EffectManaShieldHandler() = default; + void AuraScript::EffectManaShieldHandler::Call(AuraScript* auraScript, AuraEffect* aurEff, DamageInfo& dmgInfo, uint32& absorbAmount) { (auraScript->*pEffectHandlerScript)(aurEff, dmgInfo, absorbAmount); } AuraScript::EffectSplitHandler::EffectSplitHandler(AuraEffectSplitFnType _pEffectHandlerScript, uint8 _effIndex) - : AuraScript::EffectBase(_effIndex, SPELL_AURA_SPLIT_DAMAGE_PCT) + : AuraScript::EffectBase(_effIndex, SPELL_AURA_SPLIT_DAMAGE_PCT), pEffectHandlerScript(_pEffectHandlerScript) { - pEffectHandlerScript = _pEffectHandlerScript; } +AuraScript::EffectSplitHandler::EffectSplitHandler(EffectSplitHandler&& right) noexcept = default; +AuraScript::EffectSplitHandler& AuraScript::EffectSplitHandler::operator=(EffectSplitHandler&& right) noexcept = default; +AuraScript::EffectSplitHandler::~EffectSplitHandler() = default; + void AuraScript::EffectSplitHandler::Call(AuraScript* auraScript, AuraEffect* aurEff, DamageInfo& dmgInfo, uint32& splitAmount) { (auraScript->*pEffectHandlerScript)(aurEff, dmgInfo, splitAmount); } -AuraScript::CheckProcHandler::CheckProcHandler(AuraCheckProcFnType handlerScript) +AuraScript::CheckProcHandler::CheckProcHandler(AuraCheckProcFnType handlerScript) : _HandlerScript(handlerScript) { - _HandlerScript = handlerScript; } +AuraScript::CheckProcHandler::CheckProcHandler(CheckProcHandler&& right) noexcept = default; +AuraScript::CheckProcHandler& AuraScript::CheckProcHandler::operator=(CheckProcHandler&& right) noexcept = default; +AuraScript::CheckProcHandler::~CheckProcHandler() = default; + bool AuraScript::CheckProcHandler::Call(AuraScript* auraScript, ProcEventInfo& eventInfo) { return (auraScript->*_HandlerScript)(eventInfo); } AuraScript::CheckEffectProcHandler::CheckEffectProcHandler(AuraCheckEffectProcFnType handlerScript, uint8 effIndex, uint16 effName) - : AuraScript::EffectBase(effIndex, effName) + : AuraScript::EffectBase(effIndex, effName), _HandlerScript(handlerScript) { - _HandlerScript = handlerScript; } +AuraScript::CheckEffectProcHandler::CheckEffectProcHandler(CheckEffectProcHandler&& right) noexcept = default; +AuraScript::CheckEffectProcHandler& AuraScript::CheckEffectProcHandler::operator=(CheckEffectProcHandler&& right) noexcept = default; +AuraScript::CheckEffectProcHandler::~CheckEffectProcHandler() = default; + bool AuraScript::CheckEffectProcHandler::Call(AuraScript* auraScript, AuraEffect const* aurEff, ProcEventInfo& eventInfo) { return (auraScript->*_HandlerScript)(aurEff, eventInfo); } -AuraScript::AuraProcHandler::AuraProcHandler(AuraProcFnType handlerScript) +AuraScript::AuraProcHandler::AuraProcHandler(AuraProcFnType handlerScript) : _HandlerScript(handlerScript) { - _HandlerScript = handlerScript; } +AuraScript::AuraProcHandler::AuraProcHandler(AuraProcHandler&& right) noexcept = default; +AuraScript::AuraProcHandler& AuraScript::AuraProcHandler::operator=(AuraProcHandler&& right) noexcept = default; +AuraScript::AuraProcHandler::~AuraProcHandler() = default; + void AuraScript::AuraProcHandler::Call(AuraScript* auraScript, ProcEventInfo& eventInfo) { (auraScript->*_HandlerScript)(eventInfo); } AuraScript::EffectProcHandler::EffectProcHandler(AuraEffectProcFnType effectHandlerScript, uint8 effIndex, uint16 effName) - : AuraScript::EffectBase(effIndex, effName) + : AuraScript::EffectBase(effIndex, effName), _EffectHandlerScript(effectHandlerScript) { - _EffectHandlerScript = effectHandlerScript; } +AuraScript::EffectProcHandler::EffectProcHandler(EffectProcHandler&& right) noexcept = default; +AuraScript::EffectProcHandler& AuraScript::EffectProcHandler::operator=(EffectProcHandler&& right) noexcept = default; +AuraScript::EffectProcHandler::~EffectProcHandler() = default; + void AuraScript::EffectProcHandler::Call(AuraScript* auraScript, AuraEffect* aurEff, ProcEventInfo& eventInfo) { (auraScript->*_EffectHandlerScript)(aurEff, eventInfo); } -AuraScript::EnterLeaveCombatHandler::EnterLeaveCombatHandler(AuraEnterLeaveCombatFnType handlerScript) +AuraScript::EnterLeaveCombatHandler::EnterLeaveCombatHandler(AuraEnterLeaveCombatFnType handlerScript) : _handlerScript(handlerScript) { - _handlerScript = handlerScript; } +AuraScript::EnterLeaveCombatHandler::EnterLeaveCombatHandler(EnterLeaveCombatHandler&& right) noexcept = default; +AuraScript::EnterLeaveCombatHandler& AuraScript::EnterLeaveCombatHandler::operator=(EnterLeaveCombatHandler&& right) noexcept = default; +AuraScript::EnterLeaveCombatHandler::~EnterLeaveCombatHandler() = default; + void AuraScript::EnterLeaveCombatHandler::Call(AuraScript* auraScript, bool isNowInCombat) const { (auraScript->*_handlerScript)(isNowInCombat); diff --git a/src/server/game/Spells/SpellScript.h b/src/server/game/Spells/SpellScript.h index ebb5addd9c0..66521681d99 100644 --- a/src/server/game/Spells/SpellScript.h +++ b/src/server/game/Spells/SpellScript.h @@ -72,19 +72,28 @@ class TC_GAME_API _SpellScript virtual bool _Validate(SpellInfo const* entry); public: - _SpellScript() : m_currentScriptState(SPELL_SCRIPT_STATE_NONE), m_scriptName(nullptr), m_scriptSpellId(0) {} - virtual ~_SpellScript() { } + _SpellScript(); + virtual ~_SpellScript(); void _Register(); void _Unload(); void _Init(std::string const* scriptname, uint32 spellId); std::string const* _GetScriptName() const; + _SpellScript(_SpellScript const& right) = delete; + _SpellScript(_SpellScript&& right) = delete; + _SpellScript& operator=(_SpellScript const& right) = delete; + _SpellScript& operator=(_SpellScript&& right) = delete; + protected: class TC_GAME_API EffectHook { public: EffectHook(uint8 _effIndex); - virtual ~EffectHook() { } + EffectHook(EffectHook const& right) = delete; + EffectHook(EffectHook&& right) noexcept; + EffectHook& operator=(EffectHook const& right) = delete; + EffectHook& operator=(EffectHook&& right) noexcept; + virtual ~EffectHook(); uint32 GetAffectedEffectsMask(SpellInfo const* spellInfo) const; bool IsEffectAffected(SpellInfo const* spellInfo, uint8 effIndex) const; @@ -97,7 +106,12 @@ class TC_GAME_API _SpellScript class TC_GAME_API EffectNameCheck { public: - EffectNameCheck(uint16 _effName) { effName = _effName; } + EffectNameCheck(uint16 _effName); + EffectNameCheck(EffectNameCheck const& right) = delete; + EffectNameCheck(EffectNameCheck&& right) noexcept; + EffectNameCheck& operator=(EffectNameCheck const& right) = delete; + EffectNameCheck& operator=(EffectNameCheck&& right) noexcept; + virtual ~EffectNameCheck(); bool Check(SpellInfo const* spellInfo, uint8 effIndex) const; std::string ToString() const; private: @@ -107,7 +121,12 @@ class TC_GAME_API _SpellScript class TC_GAME_API EffectAuraNameCheck { public: - EffectAuraNameCheck(uint16 _effAurName) { effAurName = _effAurName; } + EffectAuraNameCheck(uint16 _effAurName); + EffectAuraNameCheck(EffectAuraNameCheck const& right) = delete; + EffectAuraNameCheck(EffectAuraNameCheck&& right) noexcept; + EffectAuraNameCheck& operator=(EffectAuraNameCheck const& right) = delete; + EffectAuraNameCheck& operator=(EffectAuraNameCheck&& right) noexcept; + virtual ~EffectAuraNameCheck(); bool Check(SpellInfo const* spellInfo, uint8 effIndex) const; std::string ToString() const; private: @@ -222,6 +241,11 @@ class TC_GAME_API SpellScript : public _SpellScript { public: CastHandler(SpellCastFnType _pCastHandlerScript); + CastHandler(CastHandler const& right) = delete; + CastHandler(CastHandler&& right) noexcept; + CastHandler& operator=(CastHandler const& right) = delete; + CastHandler& operator=(CastHandler&& right) noexcept; + virtual ~CastHandler(); void Call(SpellScript* spellScript); private: SpellCastFnType pCastHandlerScript; @@ -231,6 +255,11 @@ class TC_GAME_API SpellScript : public _SpellScript { public: CheckCastHandler(SpellCheckCastFnType checkCastHandlerScript); + CheckCastHandler(CheckCastHandler const& right) = delete; + CheckCastHandler(CheckCastHandler&& right) noexcept; + CheckCastHandler& operator=(CheckCastHandler const& right) = delete; + CheckCastHandler& operator=(CheckCastHandler&& right) noexcept; + virtual ~CheckCastHandler(); SpellCastResult Call(SpellScript* spellScript); private: SpellCheckCastFnType _checkCastHandlerScript; @@ -240,6 +269,11 @@ class TC_GAME_API SpellScript : public _SpellScript { public: EffectHandler(SpellEffectFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName); + EffectHandler(EffectHandler const& right) = delete; + EffectHandler(EffectHandler&& right) noexcept; + EffectHandler& operator=(EffectHandler const& right) = delete; + EffectHandler& operator=(EffectHandler&& right) noexcept; + virtual ~EffectHandler(); std::string ToString() const; bool CheckEffect(SpellInfo const* spellInfo, uint8 effIndex) const override; void Call(SpellScript* spellScript, SpellEffIndex effIndex); @@ -251,6 +285,11 @@ class TC_GAME_API SpellScript : public _SpellScript { public: HitHandler(SpellHitFnType _pHitHandlerScript); + HitHandler(HitHandler const& right) = delete; + HitHandler(HitHandler&& right) noexcept; + HitHandler& operator=(HitHandler const& right) = delete; + HitHandler& operator=(HitHandler&& right) noexcept; + virtual ~HitHandler(); void Call(SpellScript* spellScript); private: SpellHitFnType pHitHandlerScript; @@ -260,6 +299,11 @@ class TC_GAME_API SpellScript : public _SpellScript { public: BeforeHitHandler(SpellBeforeHitFnType pBeforeHitHandlerScript); + BeforeHitHandler(BeforeHitHandler const& right) = delete; + BeforeHitHandler(BeforeHitHandler&& right) noexcept; + BeforeHitHandler& operator=(BeforeHitHandler const& right) = delete; + BeforeHitHandler& operator=(BeforeHitHandler&& right) noexcept; + virtual ~BeforeHitHandler(); void Call(SpellScript* spellScript, SpellMissInfo missInfo); private: SpellBeforeHitFnType _pBeforeHitHandlerScript; @@ -269,6 +313,11 @@ class TC_GAME_API SpellScript : public _SpellScript { public: OnCalcCritChanceHandler(SpellOnCalcCritChanceFnType onCalcCritChanceHandlerScript); + OnCalcCritChanceHandler(OnCalcCritChanceHandler const& right) = delete; + OnCalcCritChanceHandler(OnCalcCritChanceHandler&& right) noexcept; + OnCalcCritChanceHandler& operator=(OnCalcCritChanceHandler const& right) = delete; + OnCalcCritChanceHandler& operator=(OnCalcCritChanceHandler&& right) noexcept; + virtual ~OnCalcCritChanceHandler(); void Call(SpellScript* spellScript, Unit const* victim, float& critChance) const; private: SpellOnCalcCritChanceFnType _onCalcCritChanceHandlerScript; @@ -278,6 +327,11 @@ class TC_GAME_API SpellScript : public _SpellScript { public: TargetHook(uint8 _effectIndex, uint16 _targetType, bool _area, bool _dest); + TargetHook(TargetHook const& right) = delete; + TargetHook(TargetHook&& right) noexcept; + TargetHook& operator=(TargetHook const& right) = delete; + TargetHook& operator=(TargetHook&& right) noexcept; + virtual ~TargetHook(); bool CheckEffect(SpellInfo const* spellInfo, uint8 effIndex) const override; std::string ToString() const; uint16 GetTarget() const { return targetType; } @@ -291,6 +345,11 @@ class TC_GAME_API SpellScript : public _SpellScript { public: ObjectAreaTargetSelectHandler(SpellObjectAreaTargetSelectFnType _pObjectAreaTargetSelectHandlerScript, uint8 _effIndex, uint16 _targetType); + ObjectAreaTargetSelectHandler(ObjectAreaTargetSelectHandler const& right) = delete; + ObjectAreaTargetSelectHandler(ObjectAreaTargetSelectHandler&& right) noexcept; + ObjectAreaTargetSelectHandler& operator=(ObjectAreaTargetSelectHandler const& right) = delete; + ObjectAreaTargetSelectHandler& operator=(ObjectAreaTargetSelectHandler&& right) noexcept; + virtual ~ObjectAreaTargetSelectHandler(); void Call(SpellScript* spellScript, std::list<WorldObject*>& targets); private: SpellObjectAreaTargetSelectFnType pObjectAreaTargetSelectHandlerScript; @@ -300,6 +359,11 @@ class TC_GAME_API SpellScript : public _SpellScript { public: ObjectTargetSelectHandler(SpellObjectTargetSelectFnType _pObjectTargetSelectHandlerScript, uint8 _effIndex, uint16 _targetType); + ObjectTargetSelectHandler(ObjectTargetSelectHandler const& right) = delete; + ObjectTargetSelectHandler(ObjectTargetSelectHandler&& right) noexcept; + ObjectTargetSelectHandler& operator=(ObjectTargetSelectHandler const& right) = delete; + ObjectTargetSelectHandler& operator=(ObjectTargetSelectHandler&& right) noexcept; + virtual ~ObjectTargetSelectHandler(); void Call(SpellScript* spellScript, WorldObject*& target); private: SpellObjectTargetSelectFnType pObjectTargetSelectHandlerScript; @@ -309,6 +373,11 @@ class TC_GAME_API SpellScript : public _SpellScript { public: DestinationTargetSelectHandler(SpellDestinationTargetSelectFnType _DestinationTargetSelectHandlerScript, uint8 _effIndex, uint16 _targetType); + DestinationTargetSelectHandler(DestinationTargetSelectHandler const& right) = delete; + DestinationTargetSelectHandler(DestinationTargetSelectHandler&& right) noexcept; + DestinationTargetSelectHandler& operator=(DestinationTargetSelectHandler const& right) = delete; + DestinationTargetSelectHandler& operator=(DestinationTargetSelectHandler&& right) noexcept; + virtual ~DestinationTargetSelectHandler(); void Call(SpellScript* spellScript, SpellDestination& target); private: SpellDestinationTargetSelectFnType DestinationTargetSelectHandlerScript; @@ -318,6 +387,11 @@ class TC_GAME_API SpellScript : public _SpellScript { public: OnCalculateResistAbsorbHandler(SpellOnResistAbsorbCalculateFnType _pOnCalculateResistAbsorbHandlerScript); + OnCalculateResistAbsorbHandler(OnCalculateResistAbsorbHandler const& right) = delete; + OnCalculateResistAbsorbHandler(OnCalculateResistAbsorbHandler&& right) noexcept; + OnCalculateResistAbsorbHandler& operator=(OnCalculateResistAbsorbHandler const& right) = delete; + OnCalculateResistAbsorbHandler& operator=(OnCalculateResistAbsorbHandler&& right) noexcept; + virtual ~OnCalculateResistAbsorbHandler(); void Call(SpellScript* spellScript, DamageInfo const& damageInfo, uint32& resistAmount, int32& absorbAmount); private: SpellOnResistAbsorbCalculateFnType pOnCalculateResistAbsorbHandlerScript; @@ -624,6 +698,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: CheckAreaTargetHandler(AuraCheckAreaTargetFnType pHandlerScript); + CheckAreaTargetHandler(CheckAreaTargetHandler const& right) = delete; + CheckAreaTargetHandler(CheckAreaTargetHandler&& right) noexcept; + CheckAreaTargetHandler& operator=(CheckAreaTargetHandler const& right) = delete; + CheckAreaTargetHandler& operator=(CheckAreaTargetHandler&& right) noexcept; + virtual ~CheckAreaTargetHandler(); bool Call(AuraScript* auraScript, Unit* target); private: AuraCheckAreaTargetFnType pHandlerScript; @@ -632,6 +711,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: AuraDispelHandler(AuraDispelFnType pHandlerScript); + AuraDispelHandler(AuraDispelHandler const& right) = delete; + AuraDispelHandler(AuraDispelHandler&& right) noexcept; + AuraDispelHandler& operator=(AuraDispelHandler const& right) = delete; + AuraDispelHandler& operator=(AuraDispelHandler&& right) noexcept; + virtual ~AuraDispelHandler(); void Call(AuraScript* auraScript, DispelInfo* dispelInfo); private: AuraDispelFnType pHandlerScript; @@ -640,6 +724,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: EffectBase(uint8 _effIndex, uint16 _effName); + EffectBase(EffectBase const& right) = delete; + EffectBase(EffectBase&& right) noexcept; + EffectBase& operator=(EffectBase const& right) = delete; + EffectBase& operator=(EffectBase&& right) noexcept; + virtual ~EffectBase(); std::string ToString() const; bool CheckEffect(SpellInfo const* spellInfo, uint8 effIndex) const override; }; @@ -647,6 +736,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: EffectPeriodicHandler(AuraEffectPeriodicFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName); + EffectPeriodicHandler(EffectPeriodicHandler const& right) = delete; + EffectPeriodicHandler(EffectPeriodicHandler&& right) noexcept; + EffectPeriodicHandler& operator=(EffectPeriodicHandler const& right) = delete; + EffectPeriodicHandler& operator=(EffectPeriodicHandler&& right) noexcept; + virtual ~EffectPeriodicHandler(); void Call(AuraScript* auraScript, AuraEffect const* _aurEff); private: AuraEffectPeriodicFnType pEffectHandlerScript; @@ -655,6 +749,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: EffectUpdatePeriodicHandler(AuraEffectUpdatePeriodicFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName); + EffectUpdatePeriodicHandler(EffectUpdatePeriodicHandler const& right) = delete; + EffectUpdatePeriodicHandler(EffectUpdatePeriodicHandler&& right) noexcept; + EffectUpdatePeriodicHandler& operator=(EffectUpdatePeriodicHandler const& right) = delete; + EffectUpdatePeriodicHandler& operator=(EffectUpdatePeriodicHandler&& right) noexcept; + virtual ~EffectUpdatePeriodicHandler(); void Call(AuraScript* auraScript, AuraEffect* aurEff); private: AuraEffectUpdatePeriodicFnType pEffectHandlerScript; @@ -663,6 +762,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: EffectCalcAmountHandler(AuraEffectCalcAmountFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName); + EffectCalcAmountHandler(EffectCalcAmountHandler const& right) = delete; + EffectCalcAmountHandler(EffectCalcAmountHandler&& right) noexcept; + EffectCalcAmountHandler& operator=(EffectCalcAmountHandler const& right) = delete; + EffectCalcAmountHandler& operator=(EffectCalcAmountHandler&& right) noexcept; + virtual ~EffectCalcAmountHandler(); void Call(AuraScript* auraScript, AuraEffect const* aurEff, int32 & amount, bool & canBeRecalculated); private: AuraEffectCalcAmountFnType pEffectHandlerScript; @@ -671,6 +775,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: EffectCalcPeriodicHandler(AuraEffectCalcPeriodicFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName); + EffectCalcPeriodicHandler(EffectCalcPeriodicHandler const& right) = delete; + EffectCalcPeriodicHandler(EffectCalcPeriodicHandler&& right) noexcept; + EffectCalcPeriodicHandler& operator=(EffectCalcPeriodicHandler const& right) = delete; + EffectCalcPeriodicHandler& operator=(EffectCalcPeriodicHandler&& right) noexcept; + virtual ~EffectCalcPeriodicHandler(); void Call(AuraScript* auraScript, AuraEffect const* aurEff, bool & isPeriodic, int32 & periodicTimer); private: AuraEffectCalcPeriodicFnType pEffectHandlerScript; @@ -679,6 +788,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: EffectCalcSpellModHandler(AuraEffectCalcSpellModFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName); + EffectCalcSpellModHandler(EffectCalcSpellModHandler const& right) = delete; + EffectCalcSpellModHandler(EffectCalcSpellModHandler&& right) noexcept; + EffectCalcSpellModHandler& operator=(EffectCalcSpellModHandler const& right) = delete; + EffectCalcSpellModHandler& operator=(EffectCalcSpellModHandler&& right) noexcept; + virtual ~EffectCalcSpellModHandler(); void Call(AuraScript* auraScript, AuraEffect const* aurEff, SpellModifier* & spellMod); private: AuraEffectCalcSpellModFnType pEffectHandlerScript; @@ -687,6 +801,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: EffectCalcCritChanceHandler(AuraEffectCalcCritChanceFnType effectHandlerScript, uint8 effIndex, uint16 effName); + EffectCalcCritChanceHandler(EffectCalcCritChanceHandler const& right) = delete; + EffectCalcCritChanceHandler(EffectCalcCritChanceHandler&& right) noexcept; + EffectCalcCritChanceHandler& operator=(EffectCalcCritChanceHandler const& right) = delete; + EffectCalcCritChanceHandler& operator=(EffectCalcCritChanceHandler&& right) noexcept; + virtual ~EffectCalcCritChanceHandler(); void Call(AuraScript* auraScript, AuraEffect const* aurEff, Unit const* victim, float& critChance) const; private: AuraEffectCalcCritChanceFnType _effectHandlerScript; @@ -695,6 +814,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: EffectApplyHandler(AuraEffectApplicationModeFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName, AuraEffectHandleModes _mode); + EffectApplyHandler(EffectApplyHandler const& right) = delete; + EffectApplyHandler(EffectApplyHandler&& right) noexcept; + EffectApplyHandler& operator=(EffectApplyHandler const& right) = delete; + EffectApplyHandler& operator=(EffectApplyHandler&& right) noexcept; + virtual ~EffectApplyHandler(); void Call(AuraScript* auraScript, AuraEffect const* _aurEff, AuraEffectHandleModes _mode); private: AuraEffectApplicationModeFnType pEffectHandlerScript; @@ -704,6 +828,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: EffectAbsorbHandler(AuraEffectAbsorbFnType _pEffectHandlerScript, uint8 _effIndex, bool overKill); + EffectAbsorbHandler(EffectAbsorbHandler const& right) = delete; + EffectAbsorbHandler(EffectAbsorbHandler&& right) noexcept; + EffectAbsorbHandler& operator=(EffectAbsorbHandler const& right) = delete; + EffectAbsorbHandler& operator=(EffectAbsorbHandler&& right) noexcept; + virtual ~EffectAbsorbHandler(); void Call(AuraScript* auraScript, AuraEffect* aurEff, DamageInfo & dmgInfo, uint32 & absorbAmount); private: AuraEffectAbsorbFnType pEffectHandlerScript; @@ -712,6 +841,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: EffectManaShieldHandler(AuraEffectAbsorbFnType _pEffectHandlerScript, uint8 _effIndex); + EffectManaShieldHandler(EffectManaShieldHandler const& right) = delete; + EffectManaShieldHandler(EffectManaShieldHandler&& right) noexcept; + EffectManaShieldHandler& operator=(EffectManaShieldHandler const& right) = delete; + EffectManaShieldHandler& operator=(EffectManaShieldHandler&& right) noexcept; + virtual ~EffectManaShieldHandler(); void Call(AuraScript* auraScript, AuraEffect* aurEff, DamageInfo & dmgInfo, uint32 & absorbAmount); private: AuraEffectAbsorbFnType pEffectHandlerScript; @@ -720,6 +854,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: EffectSplitHandler(AuraEffectSplitFnType _pEffectHandlerScript, uint8 _effIndex); + EffectSplitHandler(EffectSplitHandler const& right) = delete; + EffectSplitHandler(EffectSplitHandler&& right) noexcept; + EffectSplitHandler& operator=(EffectSplitHandler const& right) = delete; + EffectSplitHandler& operator=(EffectSplitHandler&& right) noexcept; + virtual ~EffectSplitHandler(); void Call(AuraScript* auraScript, AuraEffect* aurEff, DamageInfo & dmgInfo, uint32 & splitAmount); private: AuraEffectSplitFnType pEffectHandlerScript; @@ -728,6 +867,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: CheckProcHandler(AuraCheckProcFnType handlerScript); + CheckProcHandler(CheckProcHandler const& right) = delete; + CheckProcHandler(CheckProcHandler&& right) noexcept; + CheckProcHandler& operator=(CheckProcHandler const& right) = delete; + CheckProcHandler& operator=(CheckProcHandler&& right) noexcept; + virtual ~CheckProcHandler(); bool Call(AuraScript* auraScript, ProcEventInfo& eventInfo); private: AuraCheckProcFnType _HandlerScript; @@ -736,6 +880,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: CheckEffectProcHandler(AuraCheckEffectProcFnType handlerScript, uint8 effIndex, uint16 effName); + CheckEffectProcHandler(CheckEffectProcHandler const& right) = delete; + CheckEffectProcHandler(CheckEffectProcHandler&& right) noexcept; + CheckEffectProcHandler& operator=(CheckEffectProcHandler const& right) = delete; + CheckEffectProcHandler& operator=(CheckEffectProcHandler&& right) noexcept; + virtual ~CheckEffectProcHandler(); bool Call(AuraScript* auraScript, AuraEffect const* aurEff, ProcEventInfo& eventInfo); private: AuraCheckEffectProcFnType _HandlerScript; @@ -744,6 +893,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: AuraProcHandler(AuraProcFnType handlerScript); + AuraProcHandler(AuraProcHandler const& right) = delete; + AuraProcHandler(AuraProcHandler&& right) noexcept; + AuraProcHandler& operator=(AuraProcHandler const& right) = delete; + AuraProcHandler& operator=(AuraProcHandler&& right) noexcept; + virtual ~AuraProcHandler(); void Call(AuraScript* auraScript, ProcEventInfo& eventInfo); private: AuraProcFnType _HandlerScript; @@ -752,6 +906,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: EffectProcHandler(AuraEffectProcFnType effectHandlerScript, uint8 effIndex, uint16 effName); + EffectProcHandler(EffectProcHandler const& right) = delete; + EffectProcHandler(EffectProcHandler&& right) noexcept; + EffectProcHandler& operator=(EffectProcHandler const& right) = delete; + EffectProcHandler& operator=(EffectProcHandler&& right) noexcept; + virtual ~EffectProcHandler(); void Call(AuraScript* auraScript, AuraEffect* aurEff, ProcEventInfo& eventInfo); private: AuraEffectProcFnType _EffectHandlerScript; @@ -760,6 +919,11 @@ class TC_GAME_API AuraScript : public _SpellScript { public: EnterLeaveCombatHandler(AuraEnterLeaveCombatFnType handlerScript); + EnterLeaveCombatHandler(EnterLeaveCombatHandler const& right) = delete; + EnterLeaveCombatHandler(EnterLeaveCombatHandler&& right) noexcept; + EnterLeaveCombatHandler& operator=(EnterLeaveCombatHandler const& right) = delete; + EnterLeaveCombatHandler& operator=(EnterLeaveCombatHandler&& right) noexcept; + virtual ~EnterLeaveCombatHandler(); void Call(AuraScript* auraScript, bool isNowInCombat) const; private: AuraEnterLeaveCombatFnType _handlerScript; diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp index 37ceba5032a..489cd3c3d92 100644 --- a/src/server/game/Texts/CreatureTextMgr.cpp +++ b/src/server/game/Texts/CreatureTextMgr.cpp @@ -30,6 +30,9 @@ #include "ObjectMgr.h" #include "World.h" +CreatureTextMgr::CreatureTextMgr() = default; +CreatureTextMgr::~CreatureTextMgr() = default; + CreatureTextMgr* CreatureTextMgr::instance() { static CreatureTextMgr instance; diff --git a/src/server/game/Texts/CreatureTextMgr.h b/src/server/game/Texts/CreatureTextMgr.h index 69302c0e8dd..4f6522147d0 100644 --- a/src/server/game/Texts/CreatureTextMgr.h +++ b/src/server/game/Texts/CreatureTextMgr.h @@ -92,10 +92,16 @@ typedef std::map<CreatureTextId, CreatureTextLocale> LocaleCreatureTextMap; class TC_GAME_API CreatureTextMgr { private: - CreatureTextMgr() { } - ~CreatureTextMgr() { } + CreatureTextMgr(); + ~CreatureTextMgr(); public: + CreatureTextMgr(CreatureTextMgr const&) = delete; + CreatureTextMgr(CreatureTextMgr&&) = delete; + + CreatureTextMgr& operator=(CreatureTextMgr const&) = delete; + CreatureTextMgr& operator=(CreatureTextMgr&&) = delete; + static CreatureTextMgr* instance(); void LoadCreatureTexts(); diff --git a/src/server/shared/Dynamic/LinkedList.h b/src/server/shared/Dynamic/LinkedList.h index 0e9e44a2da4..ce1fb314329 100644 --- a/src/server/shared/Dynamic/LinkedList.h +++ b/src/server/shared/Dynamic/LinkedList.h @@ -78,7 +78,9 @@ class LinkedListElement private: LinkedListElement(LinkedListElement const&) = delete; + LinkedListElement(LinkedListElement&&) = delete; LinkedListElement& operator=(LinkedListElement const&) = delete; + LinkedListElement& operator=(LinkedListElement&&) = delete; protected: ~LinkedListElement() @@ -249,7 +251,9 @@ class LinkedListHead private: LinkedListHead(LinkedListHead const&) = delete; + LinkedListHead(LinkedListHead&&) = delete; LinkedListHead& operator=(LinkedListHead const&) = delete; + LinkedListHead& operator=(LinkedListHead&&) = delete; protected: ~LinkedListHead() { } |