diff --git a/src/server/game/AI/CreatureAIImpl.h b/src/server/game/AI/CreatureAIImpl.h index cde7706e4..c3b112a3f 100644 --- a/src/server/game/AI/CreatureAIImpl.h +++ b/src/server/game/AI/CreatureAIImpl.h @@ -53,4 +53,12 @@ struct AISpellInfoType AISpellInfoType* GetAISpellInfo(uint32 i); +bool InstanceHasScript(WorldObject const* obj, char const* scriptName); + +template +inline AI* GetInstanceAI(T* obj, char const* scriptName) +{ + return InstanceHasScript(obj, scriptName) ? new AI(obj) : nullptr; +} + #endif diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 5f472ed8d..00f79e2ec 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -5288,7 +5288,7 @@ void ObjectMgr::ValidateSpellScripts() bool valid = true; if (!spellScript && !auraScript) { - sLog->outError("TSCR: Functions GetSpellScript() and GetAuraScript() of script `%s` do not return objects - script skipped", GetScriptName(sitr->second->second)); + sLog->outError("TSCR: Functions GetSpellScript() and GetAuraScript() of script `%s` do not return objects - script skipped", GetScriptName(sitr->second->second).c_str()); valid = false; } if (spellScript) @@ -8849,6 +8849,12 @@ void ObjectMgr::LoadScriptNames() sLog->outString(); } +std::string const& ObjectMgr::GetScriptName(uint32 id) const +{ + static std::string const empty = ""; + return (id < _scriptNamesStore.size()) ? _scriptNamesStore[id] : empty; +} + uint32 ObjectMgr::GetScriptId(const char* name) { // use binary search to find the script name in the sorted vector diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 5fa51f629..333f29a27 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -1299,7 +1299,7 @@ public: void LoadScriptNames(); ScriptNameContainer& GetScriptNames() { return _scriptNamesStore; } - [[nodiscard]] const char* GetScriptName(uint32 id) const { return id < _scriptNamesStore.size() ? _scriptNamesStore[id].c_str() : ""; } + [[nodiscard]] std::string const& GetScriptName(uint32 id) const; uint32 GetScriptId(const char* name); [[nodiscard]] SpellClickInfoMapBounds GetSpellClickInfoMapBounds(uint32 creature_id) const diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index 5df92da2d..c2510d715 100644 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -468,3 +468,13 @@ std::string InstanceScript::GetBossStateName(uint8 state) return "INVALID"; } } + +bool InstanceHasScript(WorldObject const* obj, char const* scriptName) +{ + if (InstanceMap* instance = obj->GetMap()->ToInstanceMap()) + { + return instance->GetScriptName() == scriptName; + } + + return false; +} diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h index 76117726a..1bf4075f7 100644 --- a/src/server/game/Instances/InstanceScript.h +++ b/src/server/game/Instances/InstanceScript.h @@ -231,25 +231,4 @@ private: uint32 completedEncounters; // completed encounter mask, bit indexes are DungeonEncounter.dbc boss numbers, used for packets }; -template -AI* GetInstanceAI(T* obj, char const* scriptName) -{ - if (InstanceMap* instance = obj->GetMap()->ToInstanceMap()) - if (instance->GetInstanceScript()) - if (instance->GetScriptId() == sObjectMgr->GetScriptId(scriptName)) - return new AI(obj); - - return nullptr; -}; - -template -AI* GetInstanceAI(T* obj) -{ - if (InstanceMap* instance = obj->GetMap()->ToInstanceMap()) - if (instance->GetInstanceScript()) - return new AI(obj); - - return nullptr; -}; - #endif diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 112b27cc4..f7f54b846 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -2592,7 +2592,7 @@ template void Map::RemoveFromMap(DynamicObject*, bool); InstanceMap::InstanceMap(uint32 id, uint32 InstanceId, uint8 SpawnMode, Map* _parent) : Map(id, InstanceId, SpawnMode, _parent), m_resetAfterUnload(false), m_unloadWhenEmpty(false), - instance_script(nullptr), i_script_id(0) + instance_data(nullptr), i_script_id(0) { //lets initialize visibility distance for dungeons InstanceMap::InitVisibilityDistance(); @@ -2610,9 +2610,8 @@ InstanceMap::InstanceMap(uint32 id, uint32 InstanceId, uint8 SpawnMode, Map* _pa InstanceMap::~InstanceMap() { - delete instance_script; - instance_script = nullptr; - sInstanceSaveMgr->DeleteInstanceSaveIfNeeded(GetInstanceId(), true); + delete instance_data; + instance_data = nullptr; } void InstanceMap::InitVisibilityDistance() @@ -2768,7 +2767,7 @@ bool InstanceMap::AddPlayerToMap(Player* player) { WorldPacket data(SMSG_INSTANCE_LOCK_WARNING_QUERY, 9); data << uint32(60000); - data << uint32(instance_script ? instance_script->GetCompletedEncounterMask() : 0); + data << uint32(instance_data ? instance_data->GetCompletedEncounterMask() : 0); data << uint8(0); player->GetSession()->SendPacket(&data); player->SetPendingBind(mapSave->GetInstanceId(), 60000); @@ -2783,8 +2782,8 @@ bool InstanceMap::AddPlayerToMap(Player* player) // this will acquire the same mutex so it cannot be in the previous block Map::AddPlayerToMap(player); - if (instance_script) - instance_script->OnPlayerEnter(player); + if (instance_data) + instance_data->OnPlayerEnter(player); return true; } @@ -2794,8 +2793,8 @@ void InstanceMap::Update(const uint32 t_diff, const uint32 s_diff, bool /*thread Map::Update(t_diff, s_diff); if (t_diff) - if (instance_script) - instance_script->Update(t_diff); + if (instance_data) + instance_data->Update(t_diff); } void InstanceMap::RemovePlayerFromMap(Player* player, bool remove) @@ -2815,12 +2814,12 @@ void InstanceMap::AfterPlayerUnlinkFromMap() void InstanceMap::CreateInstanceScript(bool load, std::string data, uint32 completedEncounterMask) { - if (instance_script != nullptr) + if (instance_data != nullptr) return; #ifdef ELUNA bool isElunaAI = false; - instance_script = sEluna->GetInstanceData(this); - if (instance_script) + instance_data = sEluna->GetInstanceData(this); + if (instance_data) isElunaAI = true; // if Eluna AI was fetched succesfully we should not call CreateInstanceData nor set the unused scriptID @@ -2831,13 +2830,13 @@ void InstanceMap::CreateInstanceScript(bool load, std::string data, uint32 compl if (mInstance) { i_script_id = mInstance->ScriptId; - instance_script = sScriptMgr->CreateInstanceScript(this); + instance_data = sScriptMgr->CreateInstanceScript(this); } #ifdef ELUNA } #endif - if (!instance_script) + if (!instance_data) return; #ifdef ELUNA @@ -2845,13 +2844,13 @@ void InstanceMap::CreateInstanceScript(bool load, std::string data, uint32 compl // initialize should then be called only if load is false if (!isElunaAI || !load) #endif - instance_script->Initialize(); + instance_data->Initialize(); if (load) { - instance_script->SetCompletedEncountersMask(completedEncounterMask, false); + instance_data->SetCompletedEncountersMask(completedEncounterMask, false); if (data != "") - instance_script->Load(data.c_str()); + instance_data->Load(data.c_str()); } } @@ -2900,6 +2899,11 @@ bool InstanceMap::Reset(uint8 method, std::list* globalResetSkipList) return m_mapRefManager.isEmpty(); } +std::string const& InstanceMap::GetScriptName() const +{ + return sObjectMgr->GetScriptName(i_script_id); +} + void InstanceMap::PermBindAllPlayers() { if (!IsDungeon()) diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h index bc3df54fa..6ecafeda1 100644 --- a/src/server/game/Maps/Map.h +++ b/src/server/game/Maps/Map.h @@ -685,8 +685,10 @@ public: void Update(const uint32, const uint32, bool thread = true) override; void CreateInstanceScript(bool load, std::string data, uint32 completedEncounterMask); bool Reset(uint8 method, std::list* globalSkipList = nullptr); - uint32 GetScriptId() { return i_script_id; } - InstanceScript* GetInstanceScript() { return instance_script; } + [[nodiscard]] uint32 GetScriptId() const { return i_script_id; } + [[nodiscard]] std::string const& GetScriptName() const; + [[nodiscard]] InstanceScript* GetInstanceScript() { return instance_data; } + [[nodiscard]] InstanceScript const* GetInstanceScript() const { return instance_data; } void PermBindAllPlayers(); void UnloadAll() override; bool CanEnter(Player* player, bool loginCheck = false) override; @@ -699,7 +701,7 @@ public: private: bool m_resetAfterUnload; bool m_unloadWhenEmpty; - InstanceScript* instance_script; + InstanceScript* instance_data; uint32 i_script_id; }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp index 60c2c9e38..967ee08de 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp @@ -134,7 +134,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackrockDepthsAI(creature); } struct npc_grimstoneAI : public npc_escortAI @@ -331,7 +331,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_phalanxAI(creature); + return GetBlackrockDepthsAI(creature); } struct npc_phalanxAI : public ScriptedAI @@ -500,7 +500,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackrockDepthsAI(creature); } struct npc_rocknotAI : public npc_escortAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h index e05e9cff6..f9f7788fa 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h @@ -7,6 +7,9 @@ #ifndef DEF_BRD_H #define DEF_BRD_H +#include "CreatureAIImpl.h" +#define BRDScriptName "instance_blackrock_depths" + enum FactionIds { FACTION_NEUTRAL = 734, @@ -56,4 +59,10 @@ enum DataTypes DATA_OPEN_COFFER_DOORS = 30 }; +template +inline AI* GetBlackrockDepthsAI(T* obj) +{ + return GetInstanceAI(obj, BRDScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp index ce3c1c178..dbbce4205 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp @@ -47,7 +47,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackrockDepthsAI(creature); } struct boss_ambassador_flamelashAI : public BossAI @@ -208,7 +208,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackrockDepthsAI(creature); } struct npc_burning_spiritAI : public CreatureAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp index 5ec5c6920..71d59686c 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2005-2009 MaNGOS */ +#include "blackrock_depths.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" @@ -23,7 +24,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_anubshiahAI(creature); + return GetBlackrockDepthsAI(creature); } struct boss_anubshiahAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp index 9b5f01f2b..f065648c1 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp @@ -27,7 +27,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackrockDepthsAI(creature); } struct boss_draganthaurissanAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp index 166bdc636..e2cf83dc0 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2005-2009 MaNGOS */ +#include "blackrock_depths.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" @@ -21,7 +22,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_general_angerforgeAI(creature); + return GetBlackrockDepthsAI(creature); } struct boss_general_angerforgeAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp index 5b63a590b..536516ef3 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2005-2009 MaNGOS */ +#include "blackrock_depths.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" @@ -20,7 +21,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_gorosh_the_dervishAI(creature); + return GetBlackrockDepthsAI(creature); } struct boss_gorosh_the_dervishAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp index 26738db39..971ac87ca 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2005-2009 MaNGOS */ +#include "blackrock_depths.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" @@ -21,7 +22,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_grizzleAI(creature); + return GetBlackrockDepthsAI(creature); } struct boss_grizzleAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp index 581533f31..eaede1369 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2005-2009 MaNGOS */ +#include "blackrock_depths.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" @@ -22,7 +23,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_high_interrogator_gerstahnAI(creature); + return GetBlackrockDepthsAI(creature); } struct boss_high_interrogator_gerstahnAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp index b7823032f..e800e3190 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2005-2009 MaNGOS */ +#include "blackrock_depths.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" @@ -13,11 +14,6 @@ enum Spells SPELL_WARSTOMP = 24375 }; -enum Misc -{ - DATA_THRONE_DOOR = 24 // not id or guid of doors but number of enum in blackrock_depths.h -}; - class boss_magmus : public CreatureScript { public: @@ -25,7 +21,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_magmusAI(creature); + return GetBlackrockDepthsAI(creature); } struct boss_magmusAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp index cf44f3c1d..8ba10fb48 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2005-2009 MaNGOS */ +#include "blackrock_depths.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" @@ -24,7 +25,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_moira_bronzebeardAI(creature); + return GetBlackrockDepthsAI(creature); } struct boss_moira_bronzebeardAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp index 9b3523ae8..01b386fc0 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp @@ -126,7 +126,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackrockDepthsAI(creature); } struct boss_doomrelAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h index c19adbe36..d3f1c88cb 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h @@ -9,6 +9,8 @@ #ifndef DEF_BLACKROCK_SPIRE_H #define DEF_BLACKROCK_SPIRE_H +#include "CreatureAIImpl.h" + uint32 const EncounterCount = 23; #define BRSScriptName "instance_blackrock_spire" @@ -115,4 +117,10 @@ enum npcspells SPELL_FINKLE_IS_EINHORN = 16710 }; +template +inline AI* GetBlackrockSpireAI(T* obj) +{ + return GetInstanceAI(obj, BRSScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp index a4ffd133d..e0d6e1723 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp @@ -120,7 +120,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_drakkisathAI(creature); + return GetBlackrockSpireAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp index df8cd1658..f5c1a0cbd 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp @@ -91,7 +91,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_gizrul_the_slavenerAI(creature); + return GetBlackrockSpireAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp index 1c67ea32e..5a2581fbd 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp @@ -157,7 +157,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackrockSpireAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp index 4435bf2e8..c1591eb99 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp @@ -90,7 +90,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_halyconAI(creature); + return GetBlackrockSpireAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp index 42b7ee89c..e056c93ea 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp @@ -27,7 +27,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_highlordomokkAI(creature); + return GetBlackrockSpireAI(creature); } struct boss_highlordomokkAI : public BossAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp index e85968e58..568b15a12 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp @@ -116,7 +116,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackrockSpireAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp index a6403ac01..5715c2652 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp @@ -40,7 +40,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_overlordwyrmthalakAI(creature); + return GetBlackrockSpireAI(creature); } struct boss_overlordwyrmthalakAI : public BossAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp index 9d47d3318..97326d49b 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp @@ -295,7 +295,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackrockSpireAI(creature); } }; @@ -416,7 +416,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_blackhand_incarceratorAI(creature); + return GetBlackrockSpireAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp index 5f5a5a80a..7cab0685c 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp @@ -78,7 +78,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_quatermasterzigrisAI(creature); + return GetBlackrockSpireAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp index 20240a277..a9aa22405 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp @@ -471,7 +471,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackrockSpireAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp index 305ff5814..dc95018e2 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp @@ -29,7 +29,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_shadowvoshAI(creature); + return GetBlackrockSpireAI(creature); } struct boss_shadowvoshAI : public BossAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp index 07fc7f34d..6425935c8 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp @@ -29,7 +29,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_thebeastAI(creature); + return GetBlackrockSpireAI(creature); } struct boss_thebeastAI : public BossAI diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp index 70659e1ce..b6f1ecbc8 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp @@ -94,7 +94,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_urok_doomhowlAI(creature); + return GetBlackrockSpireAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp index 5f643f34c..e6637cb3d 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp @@ -104,7 +104,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_warmastervooneAI(creature); + return GetBlackrockSpireAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h index 3a5edb2db..09ab3d830 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h @@ -80,4 +80,10 @@ enum BWLMisc SAY_NEFARIAN_VAEL_INTRO = 100003, // latest id in broadcast_text atm }; +template +inline AI* GetBlackwingLairAI(T* obj) +{ + return GetInstanceAI(obj, BWLScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp index 2ee482c53..59a901443 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp @@ -120,7 +120,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackwingLairAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp index 04160d1c5..a556794e4 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp @@ -281,7 +281,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackwingLairAI(creature); } }; @@ -319,7 +319,7 @@ class go_chromaggus_lever : public GameObjectScript GameObjectAI* GetAI(GameObject* go) const override { - return GetInstanceAI(go); + return GetBlackwingLairAI(go); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp index fcb049284..20bc4936c 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp @@ -78,7 +78,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackwingLairAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp index 05d03d097..89f3ad58b 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp @@ -80,7 +80,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackwingLairAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp index 09c0b321a..9d69c8a2f 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp @@ -86,7 +86,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackwingLairAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp index 0069353d6..cefdab63a 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp @@ -387,7 +387,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackwingLairAI(creature); } }; @@ -595,7 +595,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackwingLairAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp index 5b2227d36..09b4dff0c 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp @@ -145,7 +145,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackwingLairAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp index 773088ab5..9d6343c96 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp @@ -267,7 +267,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackwingLairAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp index 7255c47c1..b83acde25 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp @@ -103,7 +103,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_baron_geddonAI(creature); + return GetMoltenCoreAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp index daa9a0db8..af617d0b8 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp @@ -85,7 +85,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_garrAI(creature); + return GetMoltenCoreAI(creature); } }; @@ -137,7 +137,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_fireswornAI(creature); + return GetMoltenCoreAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp index dc57f6f8a..d5280830b 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp @@ -88,7 +88,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_gehennasAI(creature); + return GetMoltenCoreAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp index 8674d606e..a1e79bbc2 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp @@ -117,7 +117,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_golemaggAI(creature); + return GetMoltenCoreAI(creature); } }; @@ -178,7 +178,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetMoltenCoreAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp index 53cb447aa..2e65a2a55 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp @@ -86,7 +86,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_lucifronAI(creature); + return GetMoltenCoreAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp index dedbbedf6..d5b61ac4c 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp @@ -105,7 +105,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_magmadarAI(creature); + return GetMoltenCoreAI(creature); } }; @@ -239,7 +239,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_magmadar_core_houndAI(creature); + return GetMoltenCoreAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp index 473f7d079..0b3e0bc57 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp @@ -195,7 +195,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetMoltenCoreAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp index 221a503ec..73e1c25ea 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp @@ -291,7 +291,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetMoltenCoreAI(creature); } }; @@ -323,7 +323,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetMoltenCoreAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp index 3e5213974..dcd7a31c1 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp @@ -101,7 +101,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_shazzrahAI(creature); + return GetMoltenCoreAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp index 89ab93879..e14476a7d 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp @@ -117,7 +117,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_sulfuronAI(creature); + return GetMoltenCoreAI(creature); } }; @@ -193,7 +193,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_flamewaker_priestAI(creature); + return GetMoltenCoreAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h index d6d5a2440..558b73d09 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h @@ -9,6 +9,10 @@ #ifndef DEF_MOLTEN_CORE_H #define DEF_MOLTEN_CORE_H +#include "CreatureAIImpl.h" + +#define MCScriptName "instance_molten_core" + enum Encounters { BOSS_LUCIFRON = 0, @@ -68,4 +72,10 @@ enum Data DATA_RAGNAROS_ADDS = 0, }; +template +inline AI* GetMoltenCoreAI(T* obj) +{ + return GetInstanceAI(obj, MCScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/CMakeLists.txt b/src/server/scripts/EasternKingdoms/CMakeLists.txt index 0e1340f42..6c25f9fc0 100644 --- a/src/server/scripts/EasternKingdoms/CMakeLists.txt +++ b/src/server/scripts/EasternKingdoms/CMakeLists.txt @@ -90,6 +90,7 @@ set(scripts_STAT_SRCS ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_wetlands.cpp ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_arathi_highlands.cpp ${AC_SCRIPTS_DIR}/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp + ${AC_SCRIPTS_DIR}/EasternKingdoms/Gnomeregan/gnomeregan.h ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_redridge_mountains.cpp ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_ironforge.cpp ${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletEnclave/chapter2.cpp @@ -125,6 +126,7 @@ set(scripts_STAT_SRCS ${AC_SCRIPTS_DIR}/EasternKingdoms/Deadmines/deadmines.h ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_duskwood.cpp ${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp + ${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletMonastery/scarletmonastery.h ${AC_SCRIPTS_DIR}/EasternKingdoms/zone_undercity.cpp ${AC_SCRIPTS_DIR}/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp ${AC_SCRIPTS_DIR}/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h diff --git a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp index fca8dde94..881d61c6c 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp +++ b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp @@ -2,6 +2,7 @@ * Originally written by Xinef - Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 */ +#include "deadmines.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" @@ -33,7 +34,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetDeadminesAI(creature); } struct boss_mr_smiteAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h index 636d0ebf9..ababa532a 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h +++ b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h @@ -5,6 +5,10 @@ #ifndef DEF_DEADMINES_H #define DEF_DEADMINES_H +#include "CreatureAIImpl.h" + +#define DeadminesScriptName "instance_deadmines" + enum DataTypes { TYPE_RHAHK_ZOR = 0, @@ -18,4 +22,10 @@ enum GameObjects GO_IRON_CLAD_DOOR = 16397 }; +template +inline AI* GetDeadminesAI(T* obj) +{ + return GetInstanceAI(obj, DeadminesScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h new file mode 100644 index 000000000..5e64be0f6 --- /dev/null +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h @@ -0,0 +1,18 @@ +/* + * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + */ + +#ifndef DEF_GNOMEREGAN_H +#define DEF_GNOMEREGAN_H + +#include "CreatureAIImpl.h" + +#define GnomereganScriptName "instance_gnomeregan" + +template +inline AI* GetGnomereganAI(T* obj) +{ + return GetInstanceAI(obj, GnomereganScriptName); +} + +#endif diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp index 3f232f095..6fad05fef 100644 --- a/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp @@ -2,6 +2,7 @@ * Originally written by Xinef - Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 */ +#include "gnomeregan.h" #include "InstanceScript.h" #include "PassiveAI.h" #include "Player.h" @@ -38,7 +39,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_kernobeeAI(creature); + return GetGnomereganAI(creature); } bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) override diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp index e90d2363c..1f4b13318 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp @@ -152,7 +152,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp index 4a7cc067d..f1c9e021a 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp @@ -104,7 +104,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp index 1814681e9..2baef74ac 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp @@ -186,7 +186,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } }; @@ -299,7 +299,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } }; @@ -404,7 +404,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp index ad4c992e7..a2efe95f1 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp @@ -241,7 +241,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp index 8a5e37937..defb5872d 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp @@ -59,7 +59,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } struct boss_netherspiteAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp index 12ca42d29..1297d9491 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp @@ -60,7 +60,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_nightbaneAI (creature); + return GetKarazhanAI(creature); } struct boss_nightbaneAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp index eedbf8fcd..b8f44aa56 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp @@ -155,7 +155,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } struct boss_malchezaarAI : public ScriptedAI @@ -448,7 +448,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } struct prince_axesAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_servant_quarters.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_servant_quarters.cpp index 9b5ae5338..1d8decd38 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_servant_quarters.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_servant_quarters.cpp @@ -155,7 +155,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp index 6afdc9c0c..9280b0022 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp @@ -546,7 +546,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp index dcc2a13a1..94728f35b 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp @@ -58,7 +58,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } struct npc_kilrekAI : public ScriptedAI @@ -123,7 +123,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_demon_chainAI(creature); + return GetKarazhanAI(creature); } struct npc_demon_chainAI : public ScriptedAI @@ -160,7 +160,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_fiendish_portalAI(creature); + return GetKarazhanAI(creature); } struct npc_fiendish_portalAI : public PassiveAI @@ -194,7 +194,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_fiendish_impAI(creature); + return GetKarazhanAI(creature); } struct npc_fiendish_impAI : public ScriptedAI @@ -236,7 +236,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } struct boss_terestianAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp index 0d51f1d7f..c059def14 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp @@ -108,7 +108,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } struct boss_dorotheeAI : public ScriptedAI @@ -235,7 +235,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_titoAI(creature); + return GetKarazhanAI(creature); } struct npc_titoAI : public ScriptedAI @@ -306,7 +306,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } struct boss_strawmanAI : public ScriptedAI @@ -427,7 +427,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } struct boss_tinheadAI : public ScriptedAI @@ -543,7 +543,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } struct boss_roarAI : public ScriptedAI @@ -660,7 +660,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } struct boss_croneAI : public ScriptedAI @@ -739,7 +739,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_cycloneAI(creature); + return GetKarazhanAI(creature); } struct npc_cycloneAI : public ScriptedAI @@ -832,7 +832,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } struct boss_bigbadwolfAI : public ScriptedAI @@ -1032,7 +1032,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } struct boss_julianneAI : public ScriptedAI @@ -1151,7 +1151,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetKarazhanAI(creature); } struct boss_romuloAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp index b78dce766..ea06c6325 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp @@ -395,7 +395,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_barnesAI(creature); + return GetKarazhanAI(creature); } }; @@ -423,7 +423,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_image_of_medivhAI(creature); + return GetKarazhanAI(creature); } struct npc_image_of_medivhAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h index a290ffa55..9af08227d 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h @@ -21,6 +21,9 @@ #ifndef DEF_KARAZHAN_H #define DEF_KARAZHAN_H +#include "CreatureAIImpl.h" + +#define KarazhanScriptName "instance_karazhan" #define DataHeader "KZ" uint32 const EncounterCount = 12; @@ -121,4 +124,10 @@ enum KarazhanSpells SPELL_BLINK = 29884 }; +template +inline AI* GetKarazhanAI(T* obj) +{ + return GetInstanceAI(obj, KarazhanScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp index 177e9b2dd..56a0172aa 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp @@ -71,7 +71,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_felblood_kaelthasAI(creature); + return GetMagistersTerraceAI(creature); } struct boss_felblood_kaelthasAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp index 2ea104580..df3591cde 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp @@ -71,7 +71,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_priestess_delrissaAI(creature); + return GetMagistersTerraceAI(creature); } struct boss_priestess_delrissaAI : public ScriptedAI @@ -414,7 +414,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_kagani_nightstrikeAI(creature); + return GetMagistersTerraceAI(creature); } struct boss_kagani_nightstrikeAI : public boss_priestess_lackey_commonAI @@ -514,7 +514,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_ellris_duskhallowAI(creature); + return GetMagistersTerraceAI(creature); } struct boss_ellris_duskhallowAI : public boss_priestess_lackey_commonAI @@ -592,7 +592,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_eramas_brightblazeAI(creature); + return GetMagistersTerraceAI(creature); } struct boss_eramas_brightblazeAI : public boss_priestess_lackey_commonAI @@ -666,7 +666,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_yazzaiAI(creature); + return GetMagistersTerraceAI(creature); } struct boss_yazzaiAI : public boss_priestess_lackey_commonAI @@ -774,7 +774,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_warlord_salarisAI(creature); + return GetMagistersTerraceAI(creature); } struct boss_warlord_salarisAI : public boss_priestess_lackey_commonAI @@ -860,7 +860,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_garaxxasAI(creature); + return GetMagistersTerraceAI(creature); } struct boss_garaxxasAI : public boss_priestess_lackey_commonAI @@ -949,7 +949,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_apokoAI(creature); + return GetMagistersTerraceAI(creature); } struct boss_apokoAI : public boss_priestess_lackey_commonAI @@ -1047,7 +1047,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_zelfanAI(creature); + return GetMagistersTerraceAI(creature); } struct boss_zelfanAI : public boss_priestess_lackey_commonAI diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp index 76cdb07f6..d0f52bd9f 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp @@ -46,7 +46,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetMagistersTerraceAI(creature); }; struct boss_selin_fireheartAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp index 042256305..9ec7538f1 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp @@ -52,7 +52,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_vexallusAI(creature); + return GetMagistersTerraceAI(creature); }; struct boss_vexallusAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h index 376e44496..e7b3a3eb2 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h @@ -8,6 +8,9 @@ #include "CreatureAI.h" #include "Player.h" #include "SpellScript.h" +#include "CreatureAIImpl.h" + +#define MTScriptName "instance_magisters_terrace" enum MTData { @@ -37,4 +40,10 @@ enum MTGameObjects GO_ESCAPE_ORB = 188173 }; +template +inline AI* GetMagistersTerraceAI(T* obj) +{ + return GetInstanceAI(obj, MTScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp index 9cbba6268..8eb2f07be 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp @@ -4,6 +4,7 @@ REWRITTEN BY XINEF */ +#include "scarletmonastery.h" #include "ScriptedCreature.h" #include "ScriptedGossip.h" #include "ScriptMgr.h" @@ -227,7 +228,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_scarlet_guardAI(creature); + return GetScarletMonasteryAI(creature); } }; @@ -504,7 +505,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_mograineAI(creature); + return GetScarletMonasteryAI(creature); } }; @@ -646,7 +647,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_high_inquisitor_whitemaneAI(creature); + return GetScarletMonasteryAI(creature); } }; @@ -787,7 +788,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_fairbanksAI(creature); + return GetScarletMonasteryAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/scarletmonastery.h b/src/server/scripts/EasternKingdoms/ScarletMonastery/scarletmonastery.h new file mode 100644 index 000000000..0cd4fe259 --- /dev/null +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/scarletmonastery.h @@ -0,0 +1,18 @@ +/* + * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + */ + +#ifndef DEF_SCARLETMONANSTERY_H +#define DEF_SCARLETMONANSTERY_H + +#include "CreatureAIImpl.h" + +#define ScarletMonasteryScriptName "instance_scarlet_monastery" + +template +inline AI* GetScarletMonasteryAI(T* obj) +{ + return GetInstanceAI(obj, ScarletMonasteryScriptName); +} + +#endif diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp index 786ba1579..50ddd2fcf 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp @@ -212,7 +212,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetScholomanceAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp b/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp index 5203c9fec..516ecf9b2 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp @@ -13,7 +13,7 @@ class instance_scholomance : public InstanceMapScript { public: - instance_scholomance() : InstanceMapScript("instance_scholomance", 289) { } + instance_scholomance() : InstanceMapScript(ScholomanceScriptName, 289) { } InstanceScript* GetInstanceScript(InstanceMap* map) const override { diff --git a/src/server/scripts/EasternKingdoms/Scholomance/scholomance.h b/src/server/scripts/EasternKingdoms/Scholomance/scholomance.h index cc92b7fc2..224e88a7e 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/scholomance.h +++ b/src/server/scripts/EasternKingdoms/Scholomance/scholomance.h @@ -5,6 +5,10 @@ #ifndef DEF_SCHOLOMANCE_H #define DEF_SCHOLOMANCE_H +#include "CreatureAIImpl.h" + +#define ScholomanceScriptName "instance_scholomance" + enum DataTypes { DATA_KIRTONOS_THE_HERALD = 0, @@ -58,4 +62,10 @@ enum SpellIds SPELL_SHADOW_PORTAL_VAULTOFTHERAVENIAN = 17948 }; +template +inline AI* GetScholomanceAI(T* obj) +{ + return GetInstanceAI(obj, ScholomanceScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp index 04cd95ce5..6b98d41ee 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp @@ -142,7 +142,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); } }; @@ -386,7 +386,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp index 70a8efdcc..473fb25ee 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp @@ -209,7 +209,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); }; }; @@ -347,7 +347,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); }; }; diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp index 7a0aca478..51cc80d9f 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp @@ -373,7 +373,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); } }; @@ -384,7 +384,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_demonic_vaporAI(creature); + return GetSunwellPlateauAI(creature); } struct npc_demonic_vaporAI : public NullCreatureAI @@ -420,7 +420,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_demonic_vapor_trailAI(creature); + return GetSunwellPlateauAI(creature); } struct npc_demonic_vapor_trailAI : public NullCreatureAI diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp index e4f9b9a75..07a429130 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp @@ -341,7 +341,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); } }; @@ -362,7 +362,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); } struct boss_kalecAI : public ScriptedAI @@ -479,7 +479,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); } struct boss_sathrovarrAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index 184e3b2e5..a023e0fcb 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -153,7 +153,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); } struct npc_kiljaeden_controllerAI : public NullCreatureAI @@ -650,7 +650,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); } }; @@ -762,7 +762,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); } struct npc_kalecgos_kjAI : public NullCreatureAI diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index 10299fb2b..3e46bf85c 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -138,7 +138,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); } }; @@ -248,7 +248,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); } }; @@ -259,7 +259,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSunwellPlateauAI(creature); } struct npc_singularityAI : public NullCreatureAI diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h b/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h index 20c037bd0..9beff10f8 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h @@ -11,6 +11,8 @@ #include "SpellAuraEffects.h" #include "SpellScript.h" +#define SWPScriptName "instance_sunwell_plateau" + enum DataTypes { DATA_KALECGOS = 0, @@ -86,4 +88,10 @@ enum SpellIds SPELL_SUNWELL_RADIANCE = 45769, }; +template +inline AI* GetSunwellPlateauAI(T* obj) +{ + return GetInstanceAI(obj, SWPScriptName); +} + #endif // SUNWELL_PLATEAU_H diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp index 5af1b7fb4..ddb73b22c 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp @@ -363,7 +363,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -444,7 +444,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_akilzon_eagleAI(creature); + return GetZulAmanAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp index 72fe69263..40281b1a3 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp @@ -305,7 +305,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -367,7 +367,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_halazzi_lynxAI(creature); + return GetZulAmanAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp index d6fd7b42f..28ac0db08 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp @@ -498,7 +498,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -555,7 +555,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -652,7 +652,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -746,7 +746,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -787,7 +787,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -845,7 +845,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -887,7 +887,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -935,7 +935,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp index 0d2b03185..71de8c8f5 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp @@ -436,7 +436,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -471,7 +471,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_janalai_firebombAI(creature); + return GetZulAmanAI(creature); } }; @@ -603,7 +603,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -662,7 +662,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -673,7 +673,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_janalai_eggAI(creature); + return GetZulAmanAI(creature); } struct npc_janalai_eggAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp index 8ce05bc92..4eebcfa8d 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp @@ -451,7 +451,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp index 80d3c97b9..d6423b3ab 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp @@ -552,7 +552,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -588,7 +588,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_zuljin_vortexAI(creature); + return GetZulAmanAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index e86a5686c..5ddc822d6 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -428,7 +428,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; @@ -475,7 +475,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_zulaman_hostageAI(creature); + return GetZulAmanAI(creature); } bool OnGossipHello(Player* player, Creature* creature) override @@ -768,7 +768,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulAmanAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h index 99a685431..2cdecd7de 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h @@ -7,6 +7,10 @@ #ifndef DEF_ZULAMAN_H #define DEF_ZULAMAN_H +#include "CreatureAIImpl.h" + +#define ZulAmanScriptName "instance_zulaman" + enum DataTypes { DATA_GONGEVENT = 0, @@ -46,4 +50,10 @@ enum GameobjectIds GO_STRANGE_GONG = 187359 }; +template +inline AI* GetZulAmanAI(T* obj) +{ + return GetInstanceAI(obj, ZulAmanScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp index d77fbed98..623e433d6 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp @@ -93,7 +93,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_gahzrankaAI(creature); + return GetZulGurubAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp index f4a0591a9..5fd413892 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp @@ -94,7 +94,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_grilekAI(creature); + return GetZulGurubAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp index c527b2d49..3487f79ac 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp @@ -160,7 +160,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulGurubAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp index 3bd100ecb..8631dd2c4 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp @@ -102,7 +102,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_hazzarahAI(creature); + return GetZulGurubAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp index 8f41c1241..310eb7c2e 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp @@ -236,7 +236,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_batriderAI(creature); + return GetZulGurubAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp index 8b0287ba6..154691f30 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp @@ -167,7 +167,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_jindoAI(creature); + return GetZulGurubAI(creature); } }; @@ -218,7 +218,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulGurubAI(creature); } }; @@ -261,7 +261,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_shade_of_jindoAI(creature); + return GetZulGurubAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp index c6ff18833..a0c15a208 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp @@ -384,7 +384,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulGurubAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp index a62b0f6d4..f0d89b12a 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp @@ -204,7 +204,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_marliAI(creature); + return GetZulGurubAI(creature); } }; @@ -249,7 +249,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_spawn_of_marliAI(creature); + return GetZulGurubAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp index 8b300dfad..4af599021 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp @@ -154,7 +154,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_renatakiAI(creature); + return GetZulGurubAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp index d461cbd92..0eff6221d 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp @@ -239,7 +239,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulGurubAI(creature); } }; @@ -392,7 +392,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulGurubAI(creature); } }; @@ -545,7 +545,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetZulGurubAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp index dbc42e06b..9af44f8b1 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp @@ -253,7 +253,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_venoxisAI(creature); + return GetZulGurubAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp index 269a055ec..92611ba8e 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp @@ -86,7 +86,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_wushoolayAI(creature); + return GetZulGurubAI(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h index bf9202670..fd067a4f6 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h +++ b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h @@ -7,6 +7,8 @@ #ifndef DEF_ZULGURUB_H #define DEF_ZULGURUB_H +#include "CreatureAIImpl.h" + uint32 const EncounterCount = 13; #define ZGScriptName "instance_zulgurub" @@ -53,10 +55,10 @@ enum GameobjectIds GO_GONG_OF_BETHEKK = 180526 // Arlokk Event }; -template -AI* GetZulGurubAI(Creature* creature) +template +inline AI* GetZulGurubAI(T* obj) { - return GetInstanceAI(creature, ZGScriptName); + return GetInstanceAI(obj, ZGScriptName); } #endif diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp index 36f0d5646..ff75f1d1d 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp @@ -36,7 +36,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct boss_anetheronAI : public hyjal_trashAI @@ -170,7 +170,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct npc_towering_infernalAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp index 2e15064b8..68cb15280 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp @@ -93,7 +93,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct npc_ancient_wispAI : public ScriptedAI @@ -151,7 +151,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_doomfireAI(creature); + return GetHyjalAI(creature); } struct npc_doomfireAI : public ScriptedAI @@ -180,7 +180,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_doomfire_targettingAI(creature); + return GetHyjalAI(creature); } struct npc_doomfire_targettingAI : public ScriptedAI @@ -250,7 +250,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct boss_archimondeAI : public BossAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp index 92491d4a7..d44ad587a 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp @@ -37,7 +37,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct boss_azgalorAI : public hyjal_trashAI @@ -177,7 +177,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct npc_lesser_doomguardAI : public hyjal_trashAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp index 124dc0452..5df7a0a46 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp @@ -38,7 +38,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct boss_kazrogalAI : public hyjal_trashAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp index 334f12908..bc6be3e03 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp @@ -33,7 +33,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct boss_rage_winterchillAI : public hyjal_trashAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h index ddabc9c39..972c3a485 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h @@ -8,7 +8,9 @@ #define DEF_HYJAL_H #include "GridNotifiers.h" +#include "CreatureAIImpl.h" +#define HyjalScriptName "instance_hyjal" #define ERROR_INST_DATA "TSCR: Instance data not set properly for Mount Hyjal. Encounters will be buggy." uint32 const EncounterCount = 5; @@ -84,4 +86,10 @@ enum GameobjectIds GO_ROARING_FLAME = 182592 }; +template +inline AI* GetHyjalAI(T* obj) +{ + return GetInstanceAI(obj, HyjalScriptName); +} + #endif diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp index 31c80143a..25b8f025d 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp @@ -523,7 +523,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } }; @@ -534,7 +534,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct npc_abominationAI : public hyjal_trashAI @@ -630,7 +630,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct npc_ghoulAI : public hyjal_trashAI @@ -730,7 +730,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct npc_necromancerAI : public hyjal_trashAI @@ -855,7 +855,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct npc_bansheeAI : public hyjal_trashAI @@ -958,7 +958,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct npc_crypt_fiendAI : public hyjal_trashAI @@ -1045,7 +1045,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct npc_fel_stalkerAI : public hyjal_trashAI @@ -1132,7 +1132,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct npc_frost_wyrmAI : public hyjal_trashAI @@ -1250,7 +1250,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHyjalAI(creature); } struct npc_gargoyleAI : public hyjal_trashAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp index 4f1985534..eb1d5d0f0 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp @@ -43,7 +43,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_epochAI (creature); + return GetCullingOfStratholmeAI(creature); } struct boss_epochAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp index b8c04e6aa..fb7515af5 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp @@ -34,7 +34,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_infinite_corruptorAI(creature); + return GetCullingOfStratholmeAI(creature); } struct boss_infinite_corruptorAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp index 36d5120b8..375298abc 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp @@ -46,7 +46,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_mal_ganisAI (creature); + return GetCullingOfStratholmeAI(creature); } struct boss_mal_ganisAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp index a391add96..0c610ead1 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp @@ -37,7 +37,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_meathookAI (creature); + return GetCullingOfStratholmeAI(creature); } struct boss_meathookAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp index 6ff818f06..9cc23c869 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp @@ -47,7 +47,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_salrammAI (creature); + return GetCullingOfStratholmeAI(creature); } struct boss_salrammAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp index 823cd70c8..44e47a5a1 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp @@ -356,7 +356,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_arthasAI(creature); + return GetCullingOfStratholmeAI(creature); } struct npc_arthasAI : public npc_escortAI @@ -1377,7 +1377,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_crate_helperAI(creature); + return GetCullingOfStratholmeAI(creature); } }; @@ -1588,7 +1588,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_cos_stratholme_citizienAI(creature); + return GetCullingOfStratholmeAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h index 41ae5dc7f..8605bc582 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h @@ -7,6 +7,10 @@ #ifndef DEF_CULLING_OF_STRATHOLME_H #define DEF_CULLING_OF_STRATHOLME_H +#include "CreatureAIImpl.h" + +#define CullingOfStratholmeScriptName "instance_culling_of_stratholme" + enum Data { DATA_ARTHAS_EVENT, @@ -170,4 +174,10 @@ const Position EventPos[] = {2298.25f, 1500.56f, 128.37f, 4.95f} // malganis final pos }; +template +inline AI* GetCullingOfStratholmeAI(T* obj) +{ + return GetInstanceAI(obj, CullingOfStratholmeScriptName); +} + #endif diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp index 52edd563c..dd68b6c91 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp @@ -46,7 +46,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetOldHillsbradAI(creature); } struct boss_captain_skarlocAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp index 351c8f978..8eb44e7a1 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp @@ -31,7 +31,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetOldHillsbradAI(creature); } struct boss_epoch_hunterAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_lieutenant_drake.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_lieutenant_drake.cpp index 4ea788d3a..4a5c357c2 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_lieutenant_drake.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_lieutenant_drake.cpp @@ -37,7 +37,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_lieutenant_drakeAI(creature); + return GetOldHillsbradAI(creature); } struct boss_lieutenant_drakeAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp index b4b27de0d..8f9129f72 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp @@ -183,7 +183,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetOldHillsbradAI(creature); } bool OnGossipHello(Player* player, Creature* creature) override @@ -850,7 +850,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetOldHillsbradAI(creature); } bool OnGossipHello(Player* /*player*/, Creature* /*creature*/) override diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h index f21186a89..cff5a2991 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h @@ -5,6 +5,10 @@ #ifndef DEF_OLD_HILLSBRAD_H #define DEF_OLD_HILLSBRAD_H +#include "CreatureAIImpl.h" + +#define OldHillsbradScriptName "instance_old_hillsbrad" + enum DataIds { DATA_ESCORT_PROGRESS = 0, @@ -74,4 +78,10 @@ enum MiscIds THRALL_POSITIONS_COUNT = 5 }; +template +inline AI* GetOldHillsbradAI(T* obj) +{ + return GetInstanceAI(obj, OldHillsbradScriptName); +} + #endif diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp index d2a25d524..58796db9c 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp @@ -143,7 +143,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_aeonusAI(creature); + return GetTheBlackMorassAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp index cdcf02d2e..5ffae002b 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp @@ -132,7 +132,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_chrono_lord_dejaAI(creature); + return GetTheBlackMorassAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp index 2d1c58fa1..858274e06 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp @@ -131,7 +131,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_temporusAI(creature); + return GetTheBlackMorassAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp index 17cff25a9..dc7c57690 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp @@ -80,7 +80,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_medivh_bmAI(creature); + return GetTheBlackMorassAI(creature); } struct npc_medivh_bmAI : public ScriptedAI @@ -277,7 +277,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_time_riftAI(creature); + return GetTheBlackMorassAI(creature); } struct npc_time_riftAI : public NullCreatureAI diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h index 1aff71c3d..9d96416da 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h +++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h @@ -5,9 +5,12 @@ #ifndef DEF_THEBLACKMORASS_H #define DEF_THEBLACKMORASS_H +#include "CreatureAIImpl.h" #include "PassiveAI.h" #include "SpellScript.h" +#define TheBlackMorassScriptName "instance_the_black_morass" + enum DataTypes { TYPE_CHRONO_LORD_DEJA = 0, @@ -72,4 +75,10 @@ enum Misc ACTION_OUTRO = 1 }; +template +inline AI* GetTheBlackMorassAI(T* obj) +{ + return GetInstanceAI(obj, TheBlackMorassScriptName); +} + #endif diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp index 303ec77b4..abbbb5655 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp +++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp @@ -102,7 +102,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_onyxiaAI (pCreature); + return GetOnyxiasLairAI(pCreature); } struct boss_onyxiaAI : public ScriptedAI @@ -532,7 +532,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_onyxian_lair_guardAI (pCreature); + return GetOnyxiasLairAI(pCreature); } struct npc_onyxian_lair_guardAI : public ScriptedAI @@ -601,7 +601,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_onyxia_whelpAI (pCreature); + return GetOnyxiasLairAI(pCreature); } struct npc_onyxia_whelpAI : public ScriptedAI @@ -626,7 +626,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_onyxia_triggerAI (pCreature); + return GetOnyxiasLairAI(pCreature); } struct npc_onyxia_triggerAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h b/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h index 4e866c991..fa08166a7 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h +++ b/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h @@ -5,6 +5,10 @@ #ifndef DEF_ONYXIAS_LAIR_H #define DEF_ONYXIAS_LAIR_H +#include "CreatureAIImpl.h" + +#define OnyxiasLairScriptName "instance_onyxias_lair" + enum eInstanceData { DATA_ONYXIA = 0, @@ -35,4 +39,10 @@ enum eAchievementData ACHIEV_TIMED_START_EVENT = 6601, // Timed event for achievement 4402, 4005: More Dots! (10,25 player) 5 min kill }; +template +inline AI* GetOnyxiasLairAI(T* obj) +{ + return GetInstanceAI(obj, OnyxiasLairScriptName); +} + #endif diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp index a7a03cb27..aa379934a 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp +++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp @@ -229,7 +229,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRazorfenDownsAI(creature); } }; @@ -261,7 +261,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRazorfenDownsAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h index 235f29923..50f4e6314 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h +++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h @@ -6,6 +6,9 @@ #define DEF_RAZORFEN_DOWNS_H #include "PassiveAI.h" +#include "CreatureAIImpl.h" + +#define RazorfenDownsScriptName "instance_razorfen_downs" enum CreatureIds { @@ -26,4 +29,10 @@ enum GameObjectIds GO_BELNISTRASZS_BRAZIER = 152097 }; +template +inline AI* GetRazorfenDownsAI(T* obj) +{ + return GetInstanceAI(obj, RazorfenDownsScriptName); +} + #endif diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp index 5845bfbbd..b8f7b61d0 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp @@ -222,7 +222,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRuinsOfAhnQirajAI(creature); } }; @@ -276,7 +276,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRuinsOfAhnQirajAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp index c5f78d728..15d9f8fc4 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp @@ -176,7 +176,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_buruAI(creature); + return GetRuinsOfAhnQirajAI(creature); } }; @@ -224,7 +224,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRuinsOfAhnQirajAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp index 8692558bb..100bebc1f 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp @@ -116,7 +116,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRuinsOfAhnQirajAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp index 356ccff4a..bf6f90068 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp @@ -166,7 +166,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_moamAI(creature); + return GetRuinsOfAhnQirajAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp index 98d9e5d76..ffba63365 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp @@ -260,7 +260,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRuinsOfAhnQirajAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp index 616465450..7e8b69fe1 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp @@ -110,7 +110,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_rajaxxAI(creature); + return GetRuinsOfAhnQirajAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h index 0b34cc683..2c85ff9fd 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h @@ -7,6 +7,10 @@ #ifndef DEF_RUINS_OF_AHNQIRAJ_H #define DEF_RUINS_OF_AHNQIRAJ_H +#include "CreatureAIImpl.h" + +#define RuinsOfAhnQirajScriptName "instance_ruins_of_ahnqiraj" + enum DataTypes { DATA_KURINNAXX = 0, @@ -44,4 +48,10 @@ enum GameObjects GO_OSSIRIAN_CRYSTAL = 180619 }; +template +inline AI* GetRuinsOfAhnQirajAI(T* obj) +{ + return GetInstanceAI(obj, RuinsOfAhnQirajScriptName); +} + #endif diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp index 2f844a40c..133ea021f 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp @@ -36,7 +36,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetTempleOfAhnQirajAI(creature); } struct boss_kriAI : public ScriptedAI @@ -131,7 +131,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetTempleOfAhnQirajAI(creature); } struct boss_vemAI : public ScriptedAI @@ -222,7 +222,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetTempleOfAhnQirajAI(creature); } struct boss_yaujAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp index 9afad4062..6dd05a02f 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp @@ -141,7 +141,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetTempleOfAhnQirajAI(creature); } struct eye_of_cthunAI : public ScriptedAI @@ -447,7 +447,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetTempleOfAhnQirajAI(creature); } struct cthunAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp index 9562a50ed..5e1ac9e23 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp @@ -13,6 +13,7 @@ EndScriptData */ #include "ScriptedCreature.h" #include "ScriptMgr.h" +#include "temple_of_ahnqiraj.h" #define SOUND_SENTENCE_YOU 8588 #define SOUND_SERVE_TO 8589 @@ -36,7 +37,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_fankrissAI(creature); + return GetTempleOfAhnQirajAI(creature); } struct boss_fankrissAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp index e104fff66..27b881394 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp @@ -13,6 +13,7 @@ EndScriptData */ #include "ScriptedCreature.h" #include "ScriptMgr.h" +#include "temple_of_ahnqiraj.h" enum Huhuran { @@ -34,7 +35,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_huhuranAI(creature); + return GetTempleOfAhnQirajAI(creature); } struct boss_huhuranAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp index 4b8279c2c..2423ebe5e 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp @@ -31,7 +31,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_ouroAI(creature); + return GetTempleOfAhnQirajAI(creature); } struct boss_ouroAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp index d0d7374c3..44b570197 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp @@ -13,6 +13,7 @@ EndScriptData */ #include "ScriptedCreature.h" #include "ScriptMgr.h" +#include "temple_of_ahnqiraj.h" enum Sartura { @@ -36,7 +37,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_sarturaAI(creature); + return GetTempleOfAhnQirajAI(creature); } struct boss_sarturaAI : public ScriptedAI @@ -183,7 +184,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_sartura_royal_guardAI(creature); + return GetTempleOfAhnQirajAI(creature); } struct npc_sartura_royal_guardAI : public ScriptedAI diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp index c652af3c2..c6643bdfc 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp @@ -179,7 +179,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_skeramAI(creature); + return GetTempleOfAhnQirajAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp index 47933820c..1491a8be4 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp @@ -373,7 +373,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetTempleOfAhnQirajAI(creature); } struct boss_veknilashAI : public boss_twinemperorsAI @@ -461,7 +461,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetTempleOfAhnQirajAI(creature); } struct boss_veklorAI : public boss_twinemperorsAI diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp index f50de0f2c..0bc0860bd 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp @@ -236,7 +236,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_viscidusAI(creature); + return GetTempleOfAhnQirajAI(creature); } }; @@ -284,7 +284,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetTempleOfAhnQirajAI(creature); } }; diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h index d66068a2c..aed923b75 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h @@ -7,6 +7,10 @@ #ifndef DEF_TEMPLE_OF_AHNQIRAJ_H #define DEF_TEMPLE_OF_AHNQIRAJ_H +#include "CreatureAIImpl.h" + +#define TempleOfAhnQirajScriptName "instance_temple_of_ahnqiraj" + enum DataTypes { DATA_SKERAM = 1, @@ -47,4 +51,11 @@ enum Creatures NPC_VEKLOR = 15276, NPC_VEKNILASH = 15275 }; + +template +inline AI* GetTempleOfAhnQirajAI(T* obj) +{ + return GetInstanceAI(obj, TempleOfAhnQirajScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h index 9e6a684ff..1670e50a3 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h @@ -5,10 +5,13 @@ #ifndef DEF_AZJOL_NERUB_H #define DEF_AZJOL_NERUB_H +#include "CreatureAIImpl.h" #include "SpellAuraEffects.h" #include "SpellAuras.h" #include "SpellScript.h" +#define AzjolNerubScriptName "instance_azjol_nerub" + enum ANData { DATA_KRIKTHIR_THE_GATEWATCHER_EVENT = 0, @@ -35,4 +38,10 @@ enum ANIds SPELL_WEB_WRAP_TRIGGER = 52087 }; +template +inline AI* GetAzjolNerubAI(T* obj) +{ + return GetInstanceAI(obj, AzjolNerubScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp index 6d3d1a80d..eacbbd759 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp @@ -224,7 +224,7 @@ class boss_anub_arak : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_anub_arakAI(creature); + return GetAzjolNerubAI(creature); } }; diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp index 9470f8dd8..cbe3b4d9f 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp @@ -194,7 +194,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_hadronoxAI(creature); + return GetAzjolNerubAI(creature); } }; @@ -291,7 +291,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_anub_ar_crusherAI(creature); + return GetAzjolNerubAI(creature); } }; diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp index d2340aaec..716ec1146 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp @@ -211,7 +211,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_krik_thirAI(creature); + return GetAzjolNerubAI(creature); } }; diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/ahnkahet.h b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/ahnkahet.h index 3465e874c..74866b171 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/ahnkahet.h +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/ahnkahet.h @@ -1,9 +1,16 @@ +/* + * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + */ #ifndef DEF_AHNKAHET_H #define DEF_AHNKAHET_H #define MAX_ENCOUNTER 5 +#include "CreatureAIImpl.h" + +#define AhnahetScriptName "instance_ahnkahet" + enum Data64 { DATA_ELDER_NADOX, @@ -40,4 +47,11 @@ enum Npc SPELL_SHADOW_SICKLE_H = 59104 // Shadow Sickle Heroic }; +template +inline AI* GetAhnkahetAI(T* obj) +{ + return GetInstanceAI(obj, AhnahetScriptName); +} + + #endif diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_amanitar.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_amanitar.cpp index b38db383d..0490f824d 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_amanitar.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_amanitar.cpp @@ -163,7 +163,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_amanitarAI(creature); + return GetAhnkahetAI(creature); } }; @@ -233,7 +233,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_amanitar_mushroomsAI(creature); + return GetAhnkahetAI(creature); } }; diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_elder_nadox.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_elder_nadox.cpp index b1aa61036..51244f071 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_elder_nadox.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_elder_nadox.cpp @@ -221,7 +221,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_elder_nadoxAI(creature); + return GetAhnkahetAI(creature); } }; @@ -279,7 +279,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_ahnkahar_nerubianAI(creature); + return GetAhnkahetAI(creature); } }; diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_herald_volazj.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_herald_volazj.cpp index 4c6222c90..2cb2f7469 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_herald_volazj.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_herald_volazj.cpp @@ -302,7 +302,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_volazjAI(creature); + return GetAhnkahetAI(creature); } }; diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_jedoga_shadowseeker.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_jedoga_shadowseeker.cpp index 97e385636..245bd7ea5 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_jedoga_shadowseeker.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_jedoga_shadowseeker.cpp @@ -391,7 +391,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_jedoga_shadowseekerAI(creature); + return GetAhnkahetAI(creature); } }; @@ -521,7 +521,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_jedoga_initiandAI(creature); + return GetAhnkahetAI(creature); } }; diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_prince_taldaram.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_prince_taldaram.cpp index 6ec38959e..84206994d 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_prince_taldaram.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_prince_taldaram.cpp @@ -257,7 +257,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_taldaramAI(creature); + return GetAhnkahetAI(creature); } }; @@ -319,7 +319,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_taldaram_flamesphereAI(creature); + return GetAhnkahetAI(creature); } }; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp index 97c5c0c9e..b612ad6cd 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp @@ -231,7 +231,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_sartharionAI (pCreature); + return GetObsidianSanctumAI (pCreature); } struct boss_sartharionAI : public BossAI @@ -1009,7 +1009,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_sartharion_tenebronAI (pCreature); + return GetObsidianSanctumAI(pCreature); } struct boss_sartharion_tenebronAI : public boss_sartharion_dragonAI @@ -1192,7 +1192,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_sartharion_shadronAI (pCreature); + return GetObsidianSanctumAI(pCreature); } struct boss_sartharion_shadronAI : public boss_sartharion_dragonAI @@ -1317,7 +1317,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_sartharion_vesperonAI (pCreature); + return GetObsidianSanctumAI(pCreature); } struct boss_sartharion_vesperonAI : public boss_sartharion_dragonAI @@ -1439,7 +1439,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_twilight_summonAI (pCreature); + return GetObsidianSanctumAI(pCreature); } struct npc_twilight_summonAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h index 4b9154ac8..3588ac21c 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.h @@ -7,6 +7,10 @@ #ifndef DEF_OBSIDIAN_SANCTUM_H #define DEF_OBSIDIAN_SANCTUM_H +#include "CreatureAIImpl.h" + +#define ObsidianSanctumScriptName "instance_obsidian_sanctum" + enum Data : uint32 { // Encounters @@ -42,4 +46,11 @@ enum OSActions ACTION_CLEAR_PORTAL = -1, ACTION_ADD_PORTAL = -2, }; + +template +inline AI* GetObsidianSanctumAI(T* obj) +{ + return GetInstanceAI(obj, ObsidianSanctumScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp index c56dba24d..beba9b03b 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp @@ -254,7 +254,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRubySanctumAI(creature); } }; @@ -313,7 +313,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRubySanctumAI(creature); } }; @@ -441,7 +441,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRubySanctumAI(creature); } }; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp index 075100c25..33b80f450 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp @@ -175,7 +175,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRubySanctumAI(creature); } }; @@ -275,7 +275,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRubySanctumAI(creature); } }; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index d15371b11..3cb223998 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -411,7 +411,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRubySanctumAI(creature); } }; @@ -564,7 +564,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRubySanctumAI(creature); } }; @@ -732,7 +732,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRubySanctumAI(creature); } }; @@ -784,7 +784,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRubySanctumAI(creature); } }; @@ -1461,7 +1461,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRubySanctumAI(creature); } }; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp index d8a456b3b..1245081d7 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_saviana_ragefire.cpp @@ -166,7 +166,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetRubySanctumAI(creature); } }; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.h b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.h index 3457ef6fc..148a07ac4 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.h +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.h @@ -6,6 +6,7 @@ #define RUBY_SANCTUM_H_ #include "Creature.h" +#include "CreatureAIImpl.h" #include "GameObjectAI.h" #include "Map.h" #include "Opcodes.h" @@ -13,6 +14,8 @@ #include "Player.h" #include "SpellScript.h" +#define RubySanctumScriptName "instance_ruby_sanctum" + enum DataTypes { // Encounter States/Boss GUIDs @@ -97,4 +100,10 @@ enum InstanceSpell SPELL_RALLY = 75416 }; +template +inline AI* GetRubySanctumAI(T* obj) +{ + return GetInstanceAI(obj, RubySanctumScriptName); +} + #endif // RUBY_SANCTUM_H_ diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp index 04dfd8722..222a6a20b 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp @@ -191,7 +191,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_eadricAI(pCreature); + return GetTrialOfTheChampionAI(pCreature); } }; @@ -374,7 +374,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_paletressAI(pCreature); + return GetTrialOfTheChampionAI(pCreature); } }; @@ -459,7 +459,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_memoryAI(pCreature); + return GetTrialOfTheChampionAI(pCreature); } }; @@ -721,7 +721,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_argent_soldierAI(pCreature); + return GetTrialOfTheChampionAI(pCreature); } }; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp index e7e25821b..fa33a61a8 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp @@ -312,7 +312,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_black_knightAI (pCreature); + return GetTrialOfTheChampionAI(pCreature); } }; @@ -365,7 +365,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_black_knight_skeletal_gryphonAI(pCreature); + return GetTrialOfTheChampionAI(pCreature); } }; @@ -464,7 +464,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_black_knight_ghoulAI (pCreature); + return GetTrialOfTheChampionAI(pCreature); } }; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp index a73df2f19..d2b4c980c 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp @@ -129,7 +129,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc5_player_vehicleAI(pCreature); + return GetTrialOfTheChampionAI(pCreature); } struct npc_toc5_player_vehicleAI : public NullCreatureAI @@ -210,7 +210,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc5_grand_champion_minionAI(pCreature); + return GetTrialOfTheChampionAI(pCreature); } struct npc_toc5_grand_champion_minionAI : public ScriptedAI @@ -929,7 +929,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_grand_championAI(pCreature); + return GetTrialOfTheChampionAI(pCreature); } }; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp index 4baba8568..3e8317143 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp @@ -82,7 +82,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_announcer_toc5AI(creature); + return GetTrialOfTheChampionAI(creature); } struct npc_announcer_toc5AI : public CreatureAI diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.h b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.h index e9e79331f..4ce123e78 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.h +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.h @@ -6,6 +6,9 @@ #define DEF_TOC_H #include "CombatAI.h" +#include "CreatureAIImpl.h" + +#define TrialOfTheChampionScriptName "instance_trial_of_the_champion" enum eData { @@ -222,4 +225,10 @@ enum eTexts TEXT_BK_DEATH = 56, }; +template +inline AI* GetTrialOfTheChampionAI(T* obj) +{ + return GetInstanceAI(obj, TrialOfTheChampionScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp index aa5f7a623..9809c5648 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp @@ -137,7 +137,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_anubarak_trialAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); }; struct boss_anubarak_trialAI : public ScriptedAI @@ -434,7 +434,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_swarm_scarabAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); }; struct npc_swarm_scarabAI : public ScriptedAI @@ -523,7 +523,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_frost_sphereAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); }; struct npc_frost_sphereAI : public NullCreatureAI @@ -612,7 +612,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_nerubian_burrowerAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); }; struct npc_nerubian_burrowerAI : public ScriptedAI @@ -731,7 +731,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_anubarak_spikeAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); }; struct npc_anubarak_spikeAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp index 25bfc72c2..c224ee846 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp @@ -256,7 +256,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_druidAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_druidAI : public boss_faction_championsAI @@ -386,7 +386,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_shamanAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_shamanAI : public boss_faction_championsAI @@ -508,7 +508,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_paladinAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_paladinAI : public boss_faction_championsAI @@ -643,7 +643,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_priestAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_priestAI : public boss_faction_championsAI @@ -763,7 +763,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_shadow_priestAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_shadow_priestAI : public boss_faction_championsAI @@ -917,7 +917,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_warlockAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_warlockAI : public boss_faction_championsAI @@ -1061,7 +1061,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_mageAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_mageAI : public boss_faction_championsAI @@ -1208,7 +1208,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_hunterAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_hunterAI : public boss_faction_championsAI @@ -1361,7 +1361,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_boomkinAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_boomkinAI : public boss_faction_championsAI @@ -1506,7 +1506,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_warriorAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_warriorAI : public boss_faction_championsAI @@ -1700,7 +1700,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_dkAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_dkAI : public boss_faction_championsAI @@ -1856,7 +1856,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_rogueAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_rogueAI : public boss_faction_championsAI @@ -2014,7 +2014,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_enh_shamanAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_enh_shamanAI : public boss_faction_championsAI @@ -2152,7 +2152,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_retro_paladinAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_retro_paladinAI : public boss_faction_championsAI @@ -2304,7 +2304,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_pet_warlockAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_pet_warlockAI : public boss_faction_championsAI @@ -2379,7 +2379,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_toc_pet_hunterAI (pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_toc_pet_hunterAI : public boss_faction_championsAI diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp index 1351e3ff6..700a267a6 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp @@ -83,7 +83,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_jaraxxusAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct boss_jaraxxusAI : public ScriptedAI @@ -286,7 +286,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_fel_infernalAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_fel_infernalAI : public ScriptedAI @@ -356,7 +356,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_mistress_of_painAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_mistress_of_painAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp index 3edc1c3f1..3a5617496 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp @@ -68,7 +68,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_snobold_vassalAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_snobold_vassalAI : public ScriptedAI @@ -219,7 +219,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_gormokAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct boss_gormokAI : public ScriptedAI @@ -685,7 +685,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_acidmawAI(creature); + return GetTrialOfTheCrusaderAI(creature); } }; @@ -710,7 +710,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_dreadscaleAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } }; @@ -754,7 +754,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_icehowlAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct boss_icehowlAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp index 56e32cc4c..351434b85 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp @@ -507,7 +507,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_eydisAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct boss_eydisAI : public boss_twin_valkyrAI @@ -533,7 +533,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_fjolaAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct boss_fjolaAI : public boss_twin_valkyrAI @@ -668,7 +668,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_concentrated_ballAI(pCreature); + return GetTrialOfTheCrusaderAI(pCreature); } struct npc_concentrated_ballAI : public NullCreatureAI diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h index 61216632a..a1541f347 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h @@ -7,6 +7,9 @@ #include "GridNotifiers.h" #include "SpellAuraEffects.h" +#include "CreatureAIImpl.h" + +#define TrialOfTheCrusaderScriptName "instance_trial_of_the_crusader" enum DataTypes { @@ -386,4 +389,10 @@ const uint32 dedicatedInsanityItems[405] = 48703, 48705, 48708, 48709, 48710, 48711, 48712, 48713, 48714, 48722, 48724, 49233, 49234, 49237, 49238 }; +template +inline AI* GetTrialOfTheCrusaderAI(T* obj) +{ + return GetInstanceAI(obj, TrialOfTheCrusaderScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp index 30bbcb270..dc16ddb40 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp @@ -40,7 +40,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetDraktharonKeepAI(creature); } struct boss_dredAI : public BossAI diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp index 9a23828ed..0b5a49d73 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp @@ -248,7 +248,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetDraktharonKeepAI(creature); } }; diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp index 2531aa838..2534a3cbe 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_tharon_ja.cpp @@ -59,7 +59,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetDraktharonKeepAI(creature); } struct boss_tharon_jaAI : public BossAI diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp index a886119f7..bd1a9eefe 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp @@ -153,7 +153,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetDraktharonKeepAI(creature); } }; diff --git a/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h b/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h index 2369286a1..fbf47184d 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h +++ b/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.h @@ -5,9 +5,12 @@ #ifndef DEF_DRAK_THARON_H #define DEF_DRAK_THARON_H +#include "CreatureAIImpl.h" #include "SpellAuraEffects.h" #include "SpellScript.h" +#define DraktharonKeepScriptName "instance_drak_tharon_keep" + enum Data { DATA_TROLLGORE = 0, @@ -39,4 +42,10 @@ enum DTKSpells SPELL_SUMMON_DRAKKARI_GUARDIAN = 49959 }; +template +inline AI* GetDraktharonKeepAI(T* obj) +{ + return GetInstanceAI(obj, DraktharonKeepScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp index f9f426f1e..d7b60e187 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp @@ -194,7 +194,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_bronjahmAI(creature); + return GetForgeOfSoulsAI(creature); } }; @@ -245,7 +245,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_fos_corrupted_soul_fragmentAI(creature); + return GetForgeOfSoulsAI(creature); } }; diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp index dcb409a98..8b7ef4dfa 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp @@ -290,7 +290,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_devourer_of_soulsAI(creature); + return GetForgeOfSoulsAI(creature); } }; diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp index 5ab62dea9..142e03032 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp @@ -206,7 +206,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_fos_leaderAI(creature); + return GetForgeOfSoulsAI(creature); } }; @@ -238,7 +238,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_fos_leader_secondAI(creature); + return GetForgeOfSoulsAI(creature); } }; diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.h b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.h index 2125ad740..88fcea441 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.h +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.h @@ -6,6 +6,9 @@ #define DEF_FORGE_OF_SOULS_H #include "GridNotifiers.h" +#include "CreatureAIImpl.h" + +#define ForgeOfSoulsScriptName "instance_forge_of_souls" enum Data { @@ -75,4 +78,10 @@ const outroPosition outroPositions[] = const Position outroSpawnPoint = {5618.139f, 2451.873f, 705.854f, 0.0f}; +template +inline AI* GetForgeOfSoulsAI(T* obj) +{ + return GetInstanceAI(obj, ForgeOfSoulsScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp index 0cd8f99eb..c803c2c8d 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_falric.cpp @@ -162,7 +162,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_falricAI(creature); + return GetHallsOfReflectionAI(creature); } }; diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp index 3efea2c2c..445a10eff 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/boss_marwyn.cpp @@ -150,7 +150,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_marwynAI(creature); + return GetHallsOfReflectionAI(creature); } }; diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp index 86a057e44..1a472ee80 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp @@ -156,7 +156,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_hor_leaderAI(creature); + return GetHallsOfReflectionAI(creature); } struct npc_hor_leaderAI : public NullCreatureAI @@ -658,7 +658,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_ghostly_priestAI(creature); + return GetHallsOfReflectionAI(creature); } struct npc_ghostly_priestAI: public ScriptedAI @@ -754,7 +754,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_phantom_mageAI(creature); + return GetHallsOfReflectionAI(creature); } struct npc_phantom_mageAI: public ScriptedAI @@ -850,7 +850,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_phantom_hallucinationAI(creature); + return GetHallsOfReflectionAI(creature); } struct npc_phantom_hallucinationAI : public npc_phantom_mage::npc_phantom_mageAI @@ -898,7 +898,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_shadowy_mercenaryAI(creature); + return GetHallsOfReflectionAI(creature); } struct npc_shadowy_mercenaryAI: public ScriptedAI @@ -993,7 +993,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_spectral_footmanAI(creature); + return GetHallsOfReflectionAI(creature); } struct npc_spectral_footmanAI: public ScriptedAI @@ -1076,7 +1076,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_tortured_riflemanAI(creature); + return GetHallsOfReflectionAI(creature); } struct npc_tortured_riflemanAI : public ScriptedAI @@ -1230,7 +1230,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_frostsworn_generalAI(creature); + return GetHallsOfReflectionAI(creature); } }; @@ -1293,7 +1293,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_hor_spiritual_reflectionAI(creature); + return GetHallsOfReflectionAI(creature); } }; @@ -1349,7 +1349,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_hor_lich_kingAI(creature); + return GetHallsOfReflectionAI(creature); } struct npc_hor_lich_kingAI : public NullCreatureAI @@ -1624,7 +1624,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_hor_leader_secondAI(creature); + return GetHallsOfReflectionAI(creature); } struct npc_hor_leader_secondAI : public NullCreatureAI @@ -1838,7 +1838,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_hor_raging_ghoulAI(creature); + return GetHallsOfReflectionAI(creature); } }; @@ -1907,7 +1907,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_hor_risen_witch_doctorAI(creature); + return GetHallsOfReflectionAI(creature); } }; @@ -1972,7 +1972,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_hor_lumbering_abominationAI(creature); + return GetHallsOfReflectionAI(creature); } }; diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h index 085896fac..c8f14567b 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.h @@ -5,6 +5,7 @@ #ifndef DEF_HALLS_OF_REFLECTION_H #define DEF_HALLS_OF_REFLECTION_H +#include "CreatureAIImpl.h" #include "PassiveAI.h" #include "Player.h" #include "ScriptedCreature.h" @@ -14,6 +15,8 @@ #include "SpellAuras.h" #include "SpellScript.h" +#define HallsOfReflectionScriptName "instance_halls_of_reflection" + enum Data { DATA_INTRO, @@ -333,4 +336,10 @@ const Position StairsPos[2][3] = } }; +template +inline AI* GetHallsOfReflectionAI(T* obj) +{ + return GetInstanceAI(obj, HallsOfReflectionScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp index 1c6ab845b..4c667647c 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp @@ -286,7 +286,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_garfrostAI(creature); + return GetPitOfSaronAI(creature); } }; diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp index c286c90db..c612f4720 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp @@ -267,7 +267,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_ickAI(creature); + return GetPitOfSaronAI(creature); } }; @@ -445,7 +445,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_krickAI(creature); + return GetPitOfSaronAI(creature); } }; diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index a7b2c83f4..6bb0761a8 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -222,7 +222,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_tyrannusAI(creature); + return GetPitOfSaronAI(creature); } }; diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp index bb4582a6c..bd8e517d9 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp @@ -364,7 +364,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_pos_leaderAI(creature); + return GetPitOfSaronAI(creature); } }; @@ -479,7 +479,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_pos_deathwhisper_necrolyteAI(creature); + return GetPitOfSaronAI(creature); } }; @@ -560,7 +560,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_pos_after_first_bossAI(creature); + return GetPitOfSaronAI(creature); } }; @@ -809,7 +809,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_pos_tyrannus_eventsAI(creature); + return GetPitOfSaronAI(creature); } }; @@ -846,7 +846,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_pos_icicle_triggerAI(creature); + return GetPitOfSaronAI(creature); } }; @@ -897,7 +897,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_pos_collapsing_icicleAI(creature); + return GetPitOfSaronAI(creature); } }; @@ -1084,7 +1084,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_pos_martin_or_gorkun_secondAI(creature); + return GetPitOfSaronAI(creature); } }; @@ -1125,7 +1125,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_pos_freed_slaveAI(creature); + return GetPitOfSaronAI(creature); } }; @@ -1285,7 +1285,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_pos_leader_secondAI(creature); + return GetPitOfSaronAI(creature); } }; @@ -1327,7 +1327,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_frostbite_invisible_stalkerAI(creature); + return GetPitOfSaronAI(creature); } }; diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h index 20a4f5728..db3acee91 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h @@ -8,6 +8,8 @@ #include "Chat.h" #include "CreatureAIImpl.h" +#define PitOfSaronScriptName "instance_pit_of_saron" + enum DataTypes { DATA_GARFROST, @@ -312,4 +314,10 @@ enum eTSTexts SAY_GENERAL_ALLIANCE_TRASH = 69, }; +template +inline AI* GetPitOfSaronAI(T* obj) +{ + return GetInstanceAI(obj, PitOfSaronScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp index 206a4dd5e..a9a463c75 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp @@ -83,7 +83,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_drakkari_colossusAI (creature); + return GetGundrakAI(creature); } struct boss_drakkari_colossusAI : public BossAI { @@ -233,7 +233,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_drakkari_elementalAI (pCreature); + return GetGundrakAI(pCreature); } struct boss_drakkari_elementalAI : public ScriptedAI @@ -313,7 +313,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_living_mojoAI (pCreature); + return GetGundrakAI(pCreature); } struct npc_living_mojoAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp index 324248920..1d793a537 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp @@ -32,7 +32,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetGundrakAI(creature); } struct boss_eckAI : public BossAI diff --git a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp index 9cd1286ef..268a025b0 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp @@ -50,7 +50,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetGundrakAI(creature); } struct boss_gal_darahAI : public BossAI diff --git a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp index 35a27f286..4c2078d03 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp @@ -50,7 +50,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetGundrakAI(creature); } struct boss_moorabiAI : public BossAI diff --git a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp index 14dba37ae..6b6778034 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp @@ -61,7 +61,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_slad_ranAI(creature); + return GetGundrakAI(creature); } struct boss_slad_ranAI : public BossAI diff --git a/src/server/scripts/Northrend/Gundrak/gundrak.h b/src/server/scripts/Northrend/Gundrak/gundrak.h index 5ae401ba8..b144a34a6 100644 --- a/src/server/scripts/Northrend/Gundrak/gundrak.h +++ b/src/server/scripts/Northrend/Gundrak/gundrak.h @@ -6,6 +6,9 @@ #define DEF_GUNDRAK_H #include "SpellScript.h" +#include "CreatureAIImpl.h" + +#define GundrakScriptName "instance_gundrak" enum Data { @@ -43,4 +46,10 @@ enum GameObjects GO_GAL_DARAH_DOORS2 = 193209 }; +template +inline AI* GetGundrakAI(T* obj) +{ + return GetInstanceAI(obj, GundrakScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp index 9f90a9754..0b048df6b 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp @@ -1386,7 +1386,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_icc_blood_beastAI(creature); + return GetIcecrownCitadelAI(creature); } }; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp index 1c4e230bd..fae1f3497 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp @@ -679,7 +679,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_the_lich_king_controllerAI(creature); + return GetIcecrownCitadelAI(creature); } }; @@ -1519,4 +1519,4 @@ void AddSC_boss_valithria_dreamwalker() new spell_valithria_suppression(); new achievement_portal_jockey(); -} \ No newline at end of file +} diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp index fedf21546..6d1ebf2dd 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -1784,7 +1784,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_frostwing_vrykulAI(creature); + return GetIcecrownCitadelAI(creature); } }; @@ -1822,7 +1822,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_impaling_spearAI(creature); + return GetIcecrownCitadelAI(creature); } }; @@ -2614,7 +2614,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_icc_skybreaker_hierophantAI(creature); + return GetIcecrownCitadelAI(creature); } }; @@ -2668,7 +2668,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_icc_skybreaker_marksmanAI(creature); + return GetIcecrownCitadelAI(creature); } }; @@ -2729,7 +2729,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_icc_skybreaker_vicarAI(creature); + return GetIcecrownCitadelAI(creature); } }; @@ -2796,7 +2796,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_icc_skybreaker_luminaryAI(creature); + return GetIcecrownCitadelAI(creature); } }; @@ -2909,7 +2909,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_icc_valkyr_heraldAI(creature); + return GetIcecrownCitadelAI(creature); } }; @@ -3035,7 +3035,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_icc_severed_essenceAI(creature); + return GetIcecrownCitadelAI(creature); } }; @@ -3128,7 +3128,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_icc_spire_frostwyrmAI(creature); + return GetIcecrownCitadelAI(creature); } }; @@ -3274,7 +3274,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_icc_vengeful_fleshreaperAI(creature); + return GetIcecrownCitadelAI(creature); } }; @@ -3418,7 +3418,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_icc_nerubar_broodkeeperAI(creature); + return GetIcecrownCitadelAI(creature); } }; @@ -3607,7 +3607,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetIcecrownCitadelAI(creature); } }; @@ -3707,7 +3707,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetIcecrownCitadelAI(creature); } }; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h index cd8737271..9e204941d 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h @@ -607,14 +607,10 @@ private: uint32 _triggerId; }; -template -CreatureAI* GetIcecrownCitadelAI(Creature* creature) +template +inline AI* GetIcecrownCitadelAI(T* obj) { - if (InstanceMap* instance = creature->GetMap()->ToInstanceMap()) - if (instance->GetInstanceScript()) - if (instance->GetScriptId() == sObjectMgr->GetScriptId(ICCScriptName)) - return new AI(creature); - return nullptr; + return GetInstanceAI(obj, ICCScriptName); } #endif // ICECROWN_CITADEL_H_ diff --git a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp index a68e7edf5..e49874263 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp @@ -54,7 +54,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_anubrekhanAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_anubrekhanAI : public BossAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp index e5aa49308..d5a50adc1 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp @@ -50,7 +50,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_faerlinaAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_faerlinaAI : public BossAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp index c03c21a38..013757946 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp @@ -111,7 +111,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_four_horsemenAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_four_horsemenAI : public BossAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp index 40570ec32..ef02e26f3 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp @@ -58,7 +58,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_gluthAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_gluthAI : public BossAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp index 9bb2e1d52..86646b888 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp @@ -178,7 +178,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_gothikAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_gothikAI : public BossAI @@ -504,7 +504,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_boss_gothik_minionAI (pCreature); + return GetNaxxramasAI(pCreature); } struct npc_boss_gothik_minionAI : public CombatAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp index 227eb4d24..7e1cca3e9 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp @@ -50,7 +50,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_grobbulusAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_grobbulusAI : public BossAI @@ -186,7 +186,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_grobbulus_poison_cloudAI(pCreature); + return GetNaxxramasAI(pCreature); } struct boss_grobbulus_poison_cloudAI : public NullCreatureAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp index 6e48ef31a..a51f8a199 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp @@ -50,7 +50,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_heiganAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_heiganAI : public BossAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp index 72a90993b..ccee4ae02 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp @@ -125,7 +125,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_kelthuzadAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_kelthuzadAI : public BossAI @@ -505,7 +505,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_kelthuzad_minionAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_kelthuzad_minionAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp b/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp index 8c28978fc..36136071d 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp @@ -42,7 +42,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_loathebAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_loathebAI : public BossAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp index 4b6a9f728..efd11e6d6 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp @@ -57,7 +57,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_maexxnaAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_maexxnaAI : public BossAI @@ -214,7 +214,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_maexxna_webwrapAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_maexxna_webwrapAI : public NullCreatureAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp index f04efd7f0..730777cbb 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp @@ -70,7 +70,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_nothAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_nothAI : public BossAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp index 69051ced1..d2a68655a 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp @@ -44,7 +44,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_patchwerkAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_patchwerkAI : public BossAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp index 7216c532e..d8b00c21b 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp @@ -45,7 +45,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_razuviousAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_razuviousAI : public BossAI @@ -168,7 +168,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_razuvious_minionAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_razuvious_minionAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp index 1af2ecf2b..cbc0f4249 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp @@ -72,7 +72,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_sapphironAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_sapphironAI : public BossAI diff --git a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp index ce7f0f60c..bc515d93a 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp @@ -102,7 +102,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_thaddiusAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_thaddiusAI : public BossAI @@ -356,7 +356,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_thaddius_summonAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_thaddius_summonAI : public ScriptedAI @@ -709,7 +709,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetNaxxramasAI(creature); } struct npc_teslaAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp index 65b7ac4e6..d0e9442d3 100644 --- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp +++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp @@ -1189,7 +1189,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_naxxramas_miscAI (pCreature); + return GetNaxxramasAI(pCreature); } struct boss_naxxramas_miscAI : public NullCreatureAI diff --git a/src/server/scripts/Northrend/Naxxramas/naxxramas.h b/src/server/scripts/Northrend/Naxxramas/naxxramas.h index 4a1375d1d..96d4462f1 100644 --- a/src/server/scripts/Northrend/Naxxramas/naxxramas.h +++ b/src/server/scripts/Northrend/Naxxramas/naxxramas.h @@ -6,6 +6,9 @@ #define DEF_NAXXRAMAS_H #include "SpellScript.h" +#include "CreatureAIImpl.h" + +#define NaxxramasScriptName "instance_naxxramas" enum Encouters { @@ -176,4 +179,10 @@ enum NXEvents EVENT_FROSTWYRM_WATERFALL_DOOR = 2 }; +template +inline AI* GetNaxxramasAI(T* obj) +{ + return GetInstanceAI(obj, NaxxramasScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp index 8ba6fdefd..4354c5e94 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp @@ -188,7 +188,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_malygosAI (pCreature); + return GetEyeOfEternityAI(pCreature); } struct boss_malygosAI : public ScriptedAI @@ -852,7 +852,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_vortex_rideAI (pCreature); + return GetEyeOfEternityAI (pCreature); } struct npc_vortex_rideAI : public VehicleAI @@ -950,7 +950,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_power_sparkAI (pCreature); + return GetEyeOfEternityAI(pCreature); } struct npc_power_sparkAI : public NullCreatureAI @@ -1046,7 +1046,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_nexus_lordAI (pCreature); + return GetEyeOfEternityAI(pCreature); } struct npc_nexus_lordAI : public ScriptedAI @@ -1139,7 +1139,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_scion_of_eternityAI (pCreature); + return GetEyeOfEternityAI(pCreature); } struct npc_scion_of_eternityAI : public ScriptedAI @@ -1213,7 +1213,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_hover_diskAI (pCreature); + return GetEyeOfEternityAI(pCreature); } struct npc_hover_diskAI : public VehicleAI @@ -1355,7 +1355,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_alexstraszaAI (pCreature); + return GetEyeOfEternityAI(pCreature); } struct npc_alexstraszaAI : public ScriptedAI @@ -1412,7 +1412,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_eoe_wyrmrest_skytalonAI (pCreature); + return GetEyeOfEternityAI(pCreature); } struct npc_eoe_wyrmrest_skytalonAI : public VehicleAI diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h b/src/server/scripts/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h index 563a065e3..0c2d2e9a9 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h @@ -8,6 +8,8 @@ #include "Chat.h" #include "CreatureAIImpl.h" +#define EyeOfEternityScriptName "instance_eye_of_eternity" + enum Objects { GO_NEXUS_PLATFORM = 193070, @@ -101,4 +103,10 @@ private: uint64 _playerGUID; }; +template +inline AI* GetEyeOfEternityAI(T* obj) +{ + return GetInstanceAI(obj, EyeOfEternityScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp index 04f3bc690..4d4188545 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp @@ -61,7 +61,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_anomalusAI (creature); + return GetNexusAI(creature); } struct boss_anomalusAI : public BossAI diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_stoutbeard_kolurg.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_stoutbeard_kolurg.cpp index a9f8b2b7c..62645e98b 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_stoutbeard_kolurg.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_commander_stoutbeard_kolurg.cpp @@ -37,7 +37,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetNexusAI(creature); } struct boss_commander_stoutbeardAI : public BossAI diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp index 80bb73e04..5b58efb1e 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp @@ -46,7 +46,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetNexusAI(creature); } struct boss_keristraszaAI : public BossAI @@ -199,4 +199,4 @@ void AddSC_boss_keristrasza() { new boss_keristrasza(); new achievement_intense_cold(); -} \ No newline at end of file +} diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp index ba8b8565a..000f7f88c 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp @@ -67,7 +67,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetNexusAI(creature); } struct boss_magus_telestraAI : public BossAI diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp index 3a4c5ee4d..7331fa270 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp @@ -54,7 +54,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetNexusAI(creature); } struct boss_ormorokAI : public BossAI @@ -174,7 +174,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return GetInstanceAI(pCreature); + return GetNexusAI(pCreature); } struct npc_crystal_spikeAI : public NullCreatureAI diff --git a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp index 001add23d..e51a26e65 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp @@ -185,7 +185,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetNexusAI(creature); } struct npc_crystalline_frayerAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Nexus/Nexus/nexus.h b/src/server/scripts/Northrend/Nexus/Nexus/nexus.h index 9deab037a..2648c5e4c 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/nexus.h +++ b/src/server/scripts/Northrend/Nexus/Nexus/nexus.h @@ -5,13 +5,18 @@ #ifndef DEF_NEXUS_H #define DEF_NEXUS_H +#include "CreatureAIImpl.h" #include "GameEventMgr.h" +#include "GameEventMgr.h" +#include "GridNotifiers.h" #include "GridNotifiers.h" #include "PassiveAI.h" #include "Player.h" #include "SpellAuras.h" #include "SpellScript.h" +#define NexusScriptName "instance_nexus" + enum eTypes { DATA_MAGUS_TELESTRA_EVENT = 0, @@ -44,4 +49,10 @@ enum Npcs GO_ORMOROK_SPHERE = 188528 }; +template +inline AI* GetNexusAI(T* obj) +{ + return GetInstanceAI(obj, NexusScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp index 5f8d9a903..e67eac48f 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp @@ -49,7 +49,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_drakosAI (pCreature); + return GetOculusAI(pCreature); } struct boss_drakosAI : public ScriptedAI @@ -174,7 +174,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_oculus_unstable_sphereAI (pCreature); + return GetOculusAI(pCreature); } struct npc_oculus_unstable_sphereAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp index b53855c9f..b161de363 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp @@ -60,7 +60,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_eregosAI (pCreature); + return GetOculusAI(pCreature); } struct boss_eregosAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp index 0bc9a3b5a..b3cd71ccf 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp @@ -82,7 +82,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_uromAI (pCreature); + return GetOculusAI(pCreature); } struct boss_uromAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp index 5bb6802f7..254102e43 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp @@ -69,7 +69,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_varosAI (pCreature); + return GetOculusAI(pCreature); } struct boss_varosAI : public ScriptedAI { diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp index eb65aedc3..46e6127bb 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp @@ -68,7 +68,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_oculus_drakegiverAI(creature); + return GetOculusAI(creature); } struct npc_oculus_drakegiverAI : public ScriptedAI { @@ -324,7 +324,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_oculus_drakeAI (creature); + return GetOculusAI(creature); } struct npc_oculus_drakeAI : public VehicleAI @@ -509,7 +509,7 @@ public: }; CreatureAI* GetAI(Creature* creature) const override { - return new npc_centrifuge_constructAI(creature); + return GetOculusAI(creature); } }; diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.h b/src/server/scripts/Northrend/Nexus/Oculus/oculus.h index 06f2bdedc..cba9ae320 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.h +++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.h @@ -5,10 +5,13 @@ #ifndef DEF_OCULUS_H #define DEF_OCULUS_H +#include "CreatureAIImpl.h" #include "SpellAuraEffects.h" #include "SpellAuras.h" #include "SpellScript.h" +#define OculusScriptName "instance_oculus" + Position const VerdisaPOS = { 949.056f, 1032.97f, 359.967f, 1.035795f }; Position const BelgaristraszPOS = { 941.355f, 1044.26f, 359.967f, 0.222459f }; Position const EternosPOS = { 943.202f, 1059.35f, 359.967f, 5.757278f }; @@ -91,4 +94,11 @@ enum MISC { POINT_MOVE_DRAKES }; + +template +inline AI* GetOculusAI(T* obj) +{ + return GetInstanceAI(obj, OculusScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp index 4a098444d..f33455af2 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp @@ -100,7 +100,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_bjarngrimAI (creature); + return GetHallsOfLightningAI(creature); } struct boss_bjarngrimAI : public npc_escortAI @@ -364,7 +364,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_stormforged_lieutenantAI (creature); + return GetHallsOfLightningAI(creature); } struct npc_stormforged_lieutenantAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp index 4020af902..2109e9513 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp @@ -59,7 +59,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_ionarAI (creature); + return GetHallsOfLightningAI(creature); } struct boss_ionarAI : public ScriptedAI @@ -220,7 +220,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_spark_of_ionarAI (creature); + return GetHallsOfLightningAI(creature); } struct npc_spark_of_ionarAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp index e0cc56559..0bf805494 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp @@ -53,7 +53,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_lokenAI (creature); + return GetHallsOfLightningAI(creature); } struct boss_lokenAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp index 6931b1cd7..f00d22211 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp @@ -72,7 +72,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_volkhanAI (creature); + return GetHallsOfLightningAI(creature); } struct boss_volkhanAI : public ScriptedAI @@ -313,7 +313,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_molten_golemAI (creature); + return GetHallsOfLightningAI(creature); } struct npc_molten_golemAI : public ScriptedAI @@ -437,7 +437,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_hol_monumentAI(creature); + return GetHallsOfLightningAI(creature); } struct npc_hol_monumentAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h index 96865f44f..3840cd692 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/halls_of_lightning.h @@ -5,6 +5,10 @@ #ifndef DEF_HALLS_OF_LIGHTNING_H #define DEF_HALLS_OF_LIGHTNING_H +#include "CreatureAIImpl.h" + +#define HallsOfLightningScriptName "instance_halls_of_lightning" + enum HoLEvents { TYPE_BJARNGRIM = 0, @@ -35,4 +39,10 @@ enum HoLGOs GO_LOKEN_THRONE = 192654, }; +template +inline AI* GetHallsOfLightningAI(T* obj) +{ + return GetInstanceAI(obj, HallsOfLightningScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp index 654fbd92d..a4ba16cba 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp @@ -47,7 +47,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_krystallusAI (pCreature); + return GetHallsOfStoneAI(pCreature); } struct boss_krystallusAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp index 995252211..0e92b21ae 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp @@ -40,7 +40,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_maiden_of_griefAI (pCreature); + return GetHallsOfStoneAI(pCreature); } struct boss_maiden_of_griefAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp index be76d5b7b..644e24cf0 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp @@ -98,7 +98,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_sjonnirAI (pCreature); + return GetHallsOfStoneAI(pCreature); } struct boss_sjonnirAI : public ScriptedAI @@ -379,7 +379,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_sjonnir_dwarfAI (pCreature); + return GetHallsOfStoneAI(pCreature); } struct boss_sjonnir_dwarfAI : public ScriptedAI @@ -403,7 +403,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_sjonnir_iron_sludgeAI (pCreature); + return GetHallsOfStoneAI(pCreature); } struct boss_sjonnir_iron_sludgeAI : public ScriptedAI @@ -459,7 +459,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_sjonnir_malformed_oozeAI (pCreature); + return GetHallsOfStoneAI(pCreature); } struct boss_sjonnir_malformed_oozeAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h index 587b4de45..54cf69d11 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h @@ -5,6 +5,10 @@ #ifndef DEF_HALLS_OF_STONE_H #define DEF_HALLS_OF_STONE_H +#include "CreatureAIImpl.h" + +#define HallsOfStoneScriptName "instance_halls_of_stone" + enum Encounter { BOSS_KRYSTALLUS = 0, @@ -44,4 +48,10 @@ enum npcs NPC_BRANN = 28070, }; +template +inline AI* GetHallsOfStoneAI(T* obj) +{ + return GetInstanceAI(obj, HallsOfStoneScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp index 797913d46..f894a1452 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp @@ -793,7 +793,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_algalon_the_observerAI(creature); + return GetUlduarAI(creature); } }; @@ -891,7 +891,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_brann_bronzebeard_algalonAI(creature); + return GetUlduarAI(creature); } }; @@ -927,7 +927,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_collapsing_starAI(creature); + return GetUlduarAI(creature); } }; @@ -1018,7 +1018,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_living_constellationAI(creature); + return GetUlduarAI(creature); } }; @@ -1066,7 +1066,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_algalon_worm_holeAI(creature); + return GetUlduarAI(creature); } }; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp index f1a1132c5..3e49691a2 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp @@ -184,7 +184,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_steelbreakerAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_steelbreakerAI : public ScriptedAI @@ -375,7 +375,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_runemaster_molgeimAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_runemaster_molgeimAI : public ScriptedAI @@ -540,7 +540,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_assembly_lightningAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_assembly_lightningAI : public ScriptedAI @@ -585,7 +585,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_stormcaller_brundirAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_stormcaller_brundirAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp index 378e9c352..830bca90e 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp @@ -95,7 +95,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_auriayaAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_auriayaAI : public ScriptedAI @@ -278,7 +278,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_auriaya_sanctum_sentryAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_auriaya_sanctum_sentryAI : public ScriptedAI @@ -340,7 +340,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_auriaya_feral_defenderAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_auriaya_feral_defenderAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index 7e992a592..0e091ffca 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -179,7 +179,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_flame_leviathanAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_flame_leviathanAI : public ScriptedAI @@ -691,7 +691,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_flame_leviathan_seatAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_flame_leviathan_seatAI : public VehicleAI @@ -832,7 +832,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_flame_leviathan_defense_turretAI(creature); + return GetUlduarAI(creature); } }; @@ -868,7 +868,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_flame_leviathan_overload_deviceAI(creature); + return GetUlduarAI(creature); } }; @@ -879,7 +879,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_freya_wardAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_freya_wardAI : public NullCreatureAI @@ -959,7 +959,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_hodirs_furyAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_hodirs_furyAI : public NullCreatureAI @@ -1038,7 +1038,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_mimirons_infernoAI(creature); + return GetUlduarAI(creature); } struct npc_mimirons_infernoAI : public npc_escortAI @@ -1100,7 +1100,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_thorims_hammerAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_thorims_hammerAI : public NullCreatureAI @@ -1156,7 +1156,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_pool_of_tarAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_pool_of_tarAI : public NullCreatureAI @@ -1204,7 +1204,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_brann_radioAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_brann_radioAI : public NullCreatureAI @@ -1309,7 +1309,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_storm_beacon_spawnAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_storm_beacon_spawnAI : public NullCreatureAI @@ -1350,7 +1350,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_flame_leviathan_safety_containerAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_flame_leviathan_safety_containerAI : public NullCreatureAI @@ -1398,7 +1398,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_mechanoliftAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_mechanoliftAI : public NullCreatureAI diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp index 2c7f14f40..fc828b783 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp @@ -249,7 +249,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_freyaAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_freyaAI : public ScriptedAI @@ -669,7 +669,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_freya_elder_stonebarkAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_freya_elder_stonebarkAI : public ScriptedAI @@ -775,7 +775,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_freya_elder_brightleafAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_freya_elder_brightleafAI : public ScriptedAI @@ -898,7 +898,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_freya_elder_ironbranchAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_freya_elder_ironbranchAI : public ScriptedAI @@ -992,7 +992,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_freya_iron_rootAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_freya_iron_rootAI : public NullCreatureAI @@ -1022,7 +1022,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_freya_lifebinderAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_freya_lifebinderAI : public NullCreatureAI @@ -1062,7 +1062,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_freya_healthy_sporeAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_freya_healthy_sporeAI : public NullCreatureAI @@ -1101,7 +1101,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_freya_summonsAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_freya_summonsAI : public ScriptedAI @@ -1244,7 +1244,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_freya_nature_bombAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_freya_nature_bombAI : public NullCreatureAI diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp index 06aa9fb5f..fcbf61940 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp @@ -101,7 +101,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_vezaxAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_vezaxAI : public ScriptedAI @@ -394,7 +394,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_saronite_vaporsAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_saronite_vaporsAI : public NullCreatureAI @@ -426,7 +426,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_saronite_animusAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_saronite_animusAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp index bdf8ecf56..d7be0728c 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp @@ -193,7 +193,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_hodirAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_hodirAI : public ScriptedAI @@ -595,7 +595,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_icicleAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_icicleAI : public NullCreatureAI @@ -638,7 +638,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_flash_freezeAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_flash_freezeAI : public NullCreatureAI @@ -698,7 +698,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_toasty_fireAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_toasty_fireAI : public NullCreatureAI @@ -741,7 +741,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_hodir_priestAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_hodir_priestAI : public ScriptedAI @@ -838,7 +838,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_hodir_druidAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_hodir_druidAI : public ScriptedAI @@ -935,7 +935,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_hodir_shamanAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_hodir_shamanAI : public ScriptedAI @@ -1035,7 +1035,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_hodir_mageAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_hodir_mageAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp index caab3540b..feaabcb27 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp @@ -83,7 +83,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_iron_constructAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_iron_constructAI : public ScriptedAI @@ -191,7 +191,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_ignisAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_ignisAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp index 940f533b7..ad9bdb106 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp @@ -132,7 +132,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_kologarnAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_kologarnAI : public ScriptedAI @@ -487,7 +487,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_kologarn_armsAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_kologarn_armsAI : public ScriptedAI @@ -587,7 +587,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_kologarn_eyebeamAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_kologarn_eyebeamAI : public ScriptedAI { diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp index 06f7bab90..03de90070 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp @@ -279,7 +279,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_mimironAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_mimironAI : public ScriptedAI @@ -986,7 +986,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_leviathan_mkiiAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_leviathan_mkiiAI : public ScriptedAI @@ -1268,7 +1268,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_vx001AI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_vx001AI : public ScriptedAI @@ -1613,7 +1613,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_aerial_command_unitAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_aerial_command_unitAI : public ScriptedAI @@ -1942,7 +1942,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_proximity_mineAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_proximity_mineAI : public ScriptedAI @@ -2007,7 +2007,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_mimiron_rocketAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_mimiron_rocketAI : public NullCreatureAI @@ -2050,7 +2050,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_magnetic_coreAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_magnetic_coreAI : public NullCreatureAI @@ -2099,7 +2099,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_bot_summon_triggerAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_bot_summon_triggerAI : public NullCreatureAI @@ -2275,7 +2275,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_flames_initialAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_flames_initialAI : public NullCreatureAI @@ -2395,7 +2395,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_flames_spreadAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_flames_spreadAI : public NullCreatureAI @@ -2437,7 +2437,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_emergency_fire_botAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_emergency_fire_botAI : public ScriptedAI @@ -2494,7 +2494,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_rocket_strike_triggerAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_rocket_strike_triggerAI : public NullCreatureAI diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp index 9d915f92c..236f8e0b8 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp @@ -113,7 +113,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_razorscaleAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_razorscaleAI : public ScriptedAI @@ -640,7 +640,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetUlduarAI(creature); } struct npc_ulduar_expedition_commanderAI : public NullCreatureAI @@ -677,7 +677,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_harpoonfirestateAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_harpoonfirestateAI : public NullCreatureAI @@ -777,7 +777,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_expedition_engineerAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_expedition_engineerAI : public NullCreatureAI @@ -941,7 +941,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_dark_rune_guardianAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_dark_rune_guardianAI : public ScriptedAI @@ -988,7 +988,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_dark_rune_watcherAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_dark_rune_watcherAI : public ScriptedAI @@ -1044,7 +1044,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ulduar_dark_rune_sentinelAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_ulduar_dark_rune_sentinelAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp index aae02178c..396f4aae5 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp @@ -308,7 +308,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_thorimAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_thorimAI : public ScriptedAI @@ -818,7 +818,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_thorim_sifAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_thorim_sifAI : public ScriptedAI @@ -929,7 +929,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_thorim_lightning_orbAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_thorim_lightning_orbAI : public npc_escortAI @@ -977,7 +977,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_thorim_trapAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_thorim_trapAI : public NullCreatureAI @@ -1015,7 +1015,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_thorim_sif_blizzardAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_thorim_sif_blizzardAI : public npc_escortAI @@ -1064,7 +1064,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_thorim_pillarAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_thorim_pillarAI : public NullCreatureAI @@ -1107,7 +1107,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_thorim_start_npcsAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_thorim_start_npcsAI : public ScriptedAI @@ -1261,7 +1261,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_thorim_gauntlet_npcsAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_thorim_gauntlet_npcsAI : public ScriptedAI @@ -1368,7 +1368,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_thorim_runic_colossusAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_thorim_runic_colossusAI : public ScriptedAI @@ -1502,7 +1502,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_thorim_ancient_rune_giantAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_thorim_ancient_rune_giantAI : public ScriptedAI @@ -1587,7 +1587,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_thorim_arena_npcsAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_thorim_arena_npcsAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp index 1a1821254..5b3170dc9 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp @@ -112,7 +112,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_xt002AI (pCreature); + return GetUlduarAI(pCreature); } struct boss_xt002AI : public ScriptedAI @@ -401,7 +401,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_xt002_heartAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_xt002_heartAI : public PassiveAI @@ -551,7 +551,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_xt002_scrapbotAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_xt002_scrapbotAI : public PassiveAI @@ -634,7 +634,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_xt002_pummellerAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_xt002_pummellerAI : public ScriptedAI @@ -720,7 +720,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_xt002_boombotAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_xt002_boombotAI : public PassiveAI @@ -821,7 +821,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_xt002_life_sparkAI (pCreature); + return GetUlduarAI(pCreature); } struct npc_xt002_life_sparkAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp index 6393b8bf8..9c2e10691 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp @@ -326,7 +326,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_saraAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_saraAI : public ScriptedAI @@ -874,7 +874,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_cloudAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_cloudAI : public npc_escortAI @@ -970,7 +970,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_guardian_of_ysAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_guardian_of_ysAI : public ScriptedAI @@ -1014,7 +1014,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaronAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaronAI : public ScriptedAI @@ -1197,7 +1197,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_brainAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_brainAI : public NullCreatureAI @@ -1433,7 +1433,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_death_orbAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_death_orbAI : public NullCreatureAI @@ -1473,7 +1473,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_crusher_tentacleAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_crusher_tentacleAI : public ScriptedAI @@ -1535,7 +1535,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_corruptor_tentacleAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_corruptor_tentacleAI : public ScriptedAI @@ -1592,7 +1592,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_constrictor_tentacleAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_constrictor_tentacleAI : public ScriptedAI @@ -1671,7 +1671,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_keeperAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_keeperAI : public NullCreatureAI @@ -1747,7 +1747,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_influence_tentacleAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_influence_tentacleAI : public NullCreatureAI @@ -1779,7 +1779,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_immortal_guardianAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_immortal_guardianAI : public ScriptedAI @@ -1867,7 +1867,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_lich_kingAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_lich_kingAI : public NullCreatureAI @@ -1981,7 +1981,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_llaneAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_llaneAI : public NullCreatureAI @@ -2103,7 +2103,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_neltharionAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_neltharionAI : public ScriptedAI @@ -2211,7 +2211,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_yoggsaron_voiceAI (pCreature); + return GetUlduarAI(pCreature); } struct boss_yoggsaron_voiceAI : public NullCreatureAI diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp index fe55617a4..af0c76c59 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp @@ -94,7 +94,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_ulduar_snow_moundAI(creature); + return GetUlduarAI(creature); } struct npc_ulduar_snow_moundAI : public ScriptedAI @@ -141,7 +141,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_ulduar_storm_tempered_keeperAI(creature); + return GetUlduarAI(creature); } struct npc_ulduar_storm_tempered_keeperAI : public ScriptedAI @@ -230,7 +230,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_ulduar_arachnopod_destroyerAI(creature); + return GetUlduarAI(creature); } struct npc_ulduar_arachnopod_destroyerAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h index bb76def7d..79e6ec017 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h @@ -7,9 +7,12 @@ #include "CellImpl.h" #include "Chat.h" +#include "CreatureAIImpl.h" #include "GridNotifiers.h" #include "GridNotifiersImpl.h" +#define UlduarScriptName "instance_ulduar" + enum UlduarEncounters { MAX_ENCOUNTER = 15, @@ -279,4 +282,10 @@ enum UlduarMisc Position const AlgalonSummonPos = {1632.531f, -304.8516f, 450.1123f, 1.530165f}; Position const AlgalonLandPos = {1632.668f, -302.7656f, 417.3211f, 1.530165f}; +template +inline AI* GetUlduarAI(T* obj) +{ + return GetInstanceAI(obj, UlduarScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp index 28be3d0ee..382cfd1f4 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp @@ -93,7 +93,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_ingvar_the_plundererAI(pCreature); + return GetUtgardeKeepAI(pCreature); } struct boss_ingvar_the_plundererAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp index 72ec744a4..7cba0e329 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp @@ -50,7 +50,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_frost_tombAI(pCreature); + return GetUtgardeKeepAI(pCreature); } struct npc_frost_tombAI : public NullCreatureAI @@ -107,7 +107,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_kelesethAI (pCreature); + return GetUtgardeKeepAI(pCreature); } struct boss_kelesethAI : public ScriptedAI @@ -235,7 +235,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_vrykul_skeletonAI (pCreature); + return GetUtgardeKeepAI(pCreature); } struct npc_vrykul_skeletonAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp index 66d4429ec..9dfc94ac5 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp @@ -60,7 +60,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_skarvald_the_constructorAI (pCreature); + return GetUtgardeKeepAI(pCreature); } struct boss_skarvald_the_constructorAI : public ScriptedAI @@ -223,7 +223,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_dalronn_the_controllerAI (pCreature); + return GetUtgardeKeepAI(pCreature); } struct boss_dalronn_the_controllerAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp index 0d0156e46..2617083c5 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp @@ -15,7 +15,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_dragonflayer_forge_masterAI(pCreature); + return GetUtgardeKeepAI(pCreature); } struct npc_dragonflayer_forge_masterAI : public ScriptedAI @@ -187,7 +187,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_enslaved_proto_drakeAI(creature); + return GetUtgardeKeepAI(creature); } }; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h index 391a95e82..8742d97eb 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.h @@ -6,6 +6,9 @@ #define DEF_UTGARDE_KEEP_H #include "SpellScript.h" +#include "CreatureAIImpl.h" + +#define UtgardeKeepScriptName "instance_utgarde_keep" enum eData { @@ -59,4 +62,10 @@ enum eCreatures NPC_ENSLAVED_PROTO_DRAKE = 24083, }; +template +inline AI* GetUtgardeKeepAI(T* obj) +{ + return GetInstanceAI(obj, UtgardeKeepScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp index e43f19b5a..7a5100003 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp @@ -101,7 +101,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_palehoofAI (pCreature); + return GetUtgardePinnacleAI(pCreature); } struct boss_palehoofAI : public ScriptedAI @@ -333,7 +333,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_massive_jormungarAI (pCreature); + return GetUtgardePinnacleAI(pCreature); } struct npc_massive_jormungarAI : public ScriptedAI @@ -461,7 +461,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ferocious_rhinoAI (pCreature); + return GetUtgardePinnacleAI(pCreature); } struct npc_ferocious_rhinoAI : public ScriptedAI @@ -571,7 +571,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ravenous_furbolgAI (pCreature); + return GetUtgardePinnacleAI(pCreature); } struct npc_ravenous_furbolgAI : public ScriptedAI @@ -679,7 +679,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_frenzied_worgenAI (pCreature); + return GetUtgardePinnacleAI(pCreature); } struct npc_frenzied_worgenAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp index f3bff7abe..6cb12a0b5 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp @@ -100,7 +100,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_skadiAI (pCreature); + return GetUtgardePinnacleAI(pCreature); } struct boss_skadiAI : public ScriptedAI @@ -260,7 +260,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_skadi_graufAI (pCreature); + return GetUtgardePinnacleAI(pCreature); } struct boss_skadi_graufAI : public VehicleAI diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp index a0cdb8a2e..ddd1848b9 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp @@ -92,7 +92,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_svalaAI (creature); + return GetUtgardePinnacleAI(creature); } struct boss_svalaAI : public ScriptedAI @@ -363,7 +363,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ritual_channelerAI (pCreature); + return GetUtgardePinnacleAI(pCreature); } struct npc_ritual_channelerAI : public NullCreatureAI diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp index 8694b4e62..bb1575839 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp @@ -92,7 +92,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_ymironAI (pCreature); + return GetUtgardePinnacleAI(pCreature); } struct boss_ymironAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h index 817a796f9..5d45704fa 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/utgarde_pinnacle.h @@ -1,7 +1,14 @@ +/* + * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + */ + #ifndef DEF_PINNACLE_H #define DEF_PINNACLE_H #include "Opcodes.h" +#include "CreatureAIImpl.h" + +#define UtgardePinnacleScriptName "instance_utgarde_pinnacle" enum Data { @@ -52,4 +59,10 @@ enum Objects NPC_GARUF = 26893, }; +template +inline AI* GetUtgardePinnacleAI(T* obj) +{ + return GetInstanceAI(obj, UtgardePinnacleScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp index f8df7f3e2..0e650bad6 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp @@ -165,7 +165,7 @@ class boss_archavon : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_archavonAI(creature); + return GetVaultOfArchavonAI(creature); } }; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp index 0c194d55f..5cb5b9057 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp @@ -187,7 +187,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_emalonAI(creature); + return GetVaultOfArchavonAI(creature); } }; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp index 4c887b69d..3a4e0e5f3 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp @@ -147,7 +147,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_koralonAI(creature); + return GetVaultOfArchavonAI(creature); } }; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp index 75f3c0cf0..fe7c78817 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp @@ -148,7 +148,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_toravonAI(creature); + return GetVaultOfArchavonAI(creature); } }; @@ -192,7 +192,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_frozen_orbAI(creature); + return GetVaultOfArchavonAI(creature); } }; @@ -223,7 +223,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_frozen_orb_stalkerAI(creature); + return GetVaultOfArchavonAI(creature); } }; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/vault_of_archavon.h b/src/server/scripts/Northrend/VaultOfArchavon/vault_of_archavon.h index 6a9ccab97..11af09760 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/vault_of_archavon.h +++ b/src/server/scripts/Northrend/VaultOfArchavon/vault_of_archavon.h @@ -7,6 +7,10 @@ #ifndef DEF_ARCHAVON_H #define DEF_ARCHAVON_H +#include "CreatureAIImpl.h" + +#define VaultOfArchavonScriptName "instance_vault_of_archavon" + enum Creatures { CREATURE_ARCHAVON = 31125, @@ -37,4 +41,10 @@ enum AchievementSpells SPELL_STONED_AURA = 63080, }; +template +inline AI* GetVaultOfArchavonAI(T* obj) +{ + return GetInstanceAI(obj, VaultOfArchavonScriptName); +} + #endif diff --git a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp index 6ba359d00..1667ef632 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp @@ -51,7 +51,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_cyanigosaAI (pCreature); + return GetVioletHoldAI(pCreature); } struct boss_cyanigosaAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp index 1e2b36e5d..e5412deb8 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp @@ -52,7 +52,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_erekemAI (pCreature); + return GetVioletHoldAI(pCreature); } struct boss_erekemAI : public ScriptedAI @@ -226,7 +226,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_erekem_guardAI (pCreature); + return GetVioletHoldAI(pCreature); } struct npc_erekem_guardAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp index 458025b79..d5b484c23 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp @@ -69,7 +69,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_ichoronAI (pCreature); + return GetVioletHoldAI(pCreature); } struct boss_ichoronAI : public ScriptedAI @@ -298,7 +298,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ichor_globuleAI (pCreature); + return GetVioletHoldAI(pCreature); } struct npc_ichor_globuleAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp index cb72633ae..b84b32605 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp @@ -36,7 +36,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_lavanthorAI (pCreature); + return GetVioletHoldAI(pCreature); } struct boss_lavanthorAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp index c38d48881..73e46b229 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp @@ -39,7 +39,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_moraggAI (pCreature); + return GetVioletHoldAI(pCreature); } struct boss_moraggAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp index 6c822d34f..af41d8164 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp @@ -52,7 +52,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_xevozzAI (pCreature); + return GetVioletHoldAI(pCreature); } struct boss_xevozzAI : public ScriptedAI diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp index ee19e8ef3..8130b04ca 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp @@ -48,7 +48,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_zuramatAI (pCreature); + return GetVioletHoldAI(pCreature); } struct boss_zuramatAI : public ScriptedAI @@ -175,7 +175,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_vh_void_sentryAI (pCreature); + return GetVioletHoldAI(pCreature); } struct npc_vh_void_sentryAI : public NullCreatureAI diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp index 6a4a4bedf..a1c8723e2 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp @@ -104,7 +104,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_vh_teleportation_portalAI(creature); + return GetVioletHoldAI(creature); } struct npc_vh_teleportation_portalAI : public NullCreatureAI @@ -474,7 +474,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_azure_invaderAI (creature); + return GetVioletHoldAI(creature); } struct npc_azure_invaderAI : public violet_hold_trashAI @@ -549,7 +549,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_azure_binderAI (creature); + return GetVioletHoldAI(creature); } struct npc_azure_binderAI : public violet_hold_trashAI @@ -626,7 +626,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_azure_mage_slayerAI (creature); + return GetVioletHoldAI(creature); } struct npc_azure_mage_slayerAI : public violet_hold_trashAI @@ -683,7 +683,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_azure_raiderAI (creature); + return GetVioletHoldAI (creature); } struct npc_azure_raiderAI : public violet_hold_trashAI @@ -732,7 +732,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_azure_stalkerAI (creature); + return GetVioletHoldAI(creature); } struct npc_azure_stalkerAI : public violet_hold_trashAI @@ -794,7 +794,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_azure_spellbreakerAI (creature); + return GetVioletHoldAI(creature); } struct npc_azure_spellbreakerAI : public violet_hold_trashAI @@ -873,7 +873,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_azure_captainAI (creature); + return GetVioletHoldAI(creature); } struct npc_azure_captainAI : public violet_hold_trashAI @@ -922,7 +922,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_azure_sorcerorAI (creature); + return GetVioletHoldAI(creature); } struct npc_azure_sorcerorAI : public violet_hold_trashAI @@ -987,7 +987,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_azure_saboteurAI (creature); + return GetVioletHoldAI(creature); } struct npc_azure_saboteurAI : public npc_escortAI diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.h b/src/server/scripts/Northrend/VioletHold/violet_hold.h index 38f5a922f..1c1900440 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.h +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.h @@ -7,6 +7,10 @@ #define MAX_ENCOUNTER 3 +#include "CreatureAIImpl.h" + +#define VioletHoldScriptName "instance_violet_hold" + enum Creatures { NPC_TELEPORTATION_PORTAL = 31011, @@ -282,4 +286,10 @@ const float SaboteurFinalPos6[5][3] = {1931.063354f, 848.468445f, 47.190434f} }; +template +inline AI* GetVioletHoldAI(T* obj) +{ + return GetInstanceAI(obj, VioletHoldScriptName); +} + #endif diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/auchenai_crypts.h b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/auchenai_crypts.h index 07a7374da..e9275a822 100644 --- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/auchenai_crypts.h +++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/auchenai_crypts.h @@ -1,18 +1,6 @@ /* + * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 * Copyright (C) 2008-2018 TrinityCore - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . */ #ifndef AUCHENAI_CRYPTS_H_ @@ -32,4 +20,10 @@ enum ACDataTypes DATA_EXARCH_MALADAAR = 1 }; +template +inline AI* GetAuchenaiCryptsAI(T* obj) +{ + return GetInstanceAI(obj, ACScriptName); +} + #endif // AUCHENAI_CRYPTS_H_ diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp index 1270c80d0..e88cab062 100644 --- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp +++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp @@ -2,6 +2,7 @@ * Originally written by Xinef - Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 */ +#include "auchenai_crypts.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" @@ -35,7 +36,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_exarch_maladaarAI (creature); + return GetAuchenaiCryptsAI(creature); } struct boss_exarch_maladaarAI : public ScriptedAI @@ -162,7 +163,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_stolen_soulAI (creature); + return GetAuchenaiCryptsAI(creature); } struct npc_stolen_soulAI : public ScriptedAI diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp index c31f94c8f..094856914 100644 --- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp +++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp @@ -2,6 +2,7 @@ * Originally written by Xinef - Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 */ +#include "auchenai_crypts.h" #include "Player.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" @@ -39,7 +40,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_shirrak_the_dead_watcherAI (creature); + return GetAuchenaiCryptsAI(creature); } struct boss_shirrak_the_dead_watcherAI : public ScriptedAI diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp index 1a254a4c8..d1ee3c9bb 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp @@ -5,6 +5,7 @@ #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "Player.h" +#include "mana_tombs.h" enum ePrince { @@ -38,7 +39,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_nexusprince_shaffarAI (creature); + return GetManaTombsAI(creature); } struct boss_nexusprince_shaffarAI : public ScriptedAI @@ -167,7 +168,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_yorAI(creature); + return GetManaTombsAI(creature); } struct npc_yorAI : public ScriptedAI diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp index 42a1aa466..81f9795ad 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2005-2009 MaNGOS */ +#include "mana_tombs.h" #include "Player.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" @@ -35,7 +36,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_pandemoniusAI(creature); + return GetManaTombsAI(creature); } struct boss_pandemoniusAI : public ScriptedAI diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/mana_tombs.h b/src/server/scripts/Outland/Auchindoun/ManaTombs/mana_tombs.h index 3d874c923..6e5ace8ac 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/mana_tombs.h +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/mana_tombs.h @@ -34,4 +34,10 @@ enum MTDataTypes DATA_YOR = 3 }; +template +inline AI* GetManaTombsAI(T* obj) +{ + return GetInstanceAI(obj, MTScriptName); +} + #endif // MANA_TOMBS_H_ diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp index 995b5cf0f..18a4b459e 100644 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp @@ -42,7 +42,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_talon_king_ikissAI (creature); + return GetSethekkHallsAI(creature); } struct boss_talon_king_ikissAI : public ScriptedAI @@ -178,7 +178,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_anzuAI (creature); + return GetSethekkHallsAI(creature); } struct boss_anzuAI : public ScriptedAI diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h b/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h index 57d3e90d7..dcb75fee2 100644 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/sethekk_halls.h @@ -5,6 +5,10 @@ #ifndef DEF_SETHEKK_HALLS_H #define DEF_SETHEKK_HALLS_H +#include "CreatureAIImpl.h" + +#define SethekkHallsScriptName "instance_sethekk_halls" + enum eTypes { DATA_IKISSDOOREVENT = 1, @@ -20,4 +24,10 @@ enum eIds GO_THE_TALON_KINGS_COFFER = 187372 }; +template +inline AI* GetSethekkHallsAI(T* obj) +{ + return GetInstanceAI(obj, SethekkHallsScriptName); +} + #endif diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp index 7cee0203d..8e35bfa94 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp @@ -32,7 +32,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_ambassador_hellmawAI(creature); + return GetShadowLabyrinthAI(creature); } struct boss_ambassador_hellmawAI : public npc_escortAI diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp index e57f23fae..66a774c64 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp @@ -32,7 +32,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_blackheart_the_inciterAI (creature); + return GetShadowLabyrinthAI(creature); } struct boss_blackheart_the_inciterAI : public ScriptedAI diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp index ffc9ea426..f125a4f43 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp @@ -55,7 +55,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_grandmaster_vorpilAI (creature); + return GetShadowLabyrinthAI(creature); } struct boss_grandmaster_vorpilAI : public ScriptedAI @@ -201,7 +201,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_voidtravelerAI (creature); + return GetShadowLabyrinthAI(creature); } struct npc_voidtravelerAI : public ScriptedAI diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp index 7a58f8de9..b2e2b564c 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp @@ -39,7 +39,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_murmurAI (creature); + return GetShadowLabyrinthAI(creature); } struct boss_murmurAI : public ScriptedAI diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h index e54d53d41..5aa7d0895 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/shadow_labyrinth.h @@ -6,9 +6,12 @@ #define DEF_SHADOW_LABYRINTH_H #include "CreatureAI.h" +#include "CreatureAIImpl.h" #include "GridNotifiers.h" #include "SpellScript.h" +#define ShadowLabyrinthScriptName "instance_shadow_labyrinth" + enum slData { TYPE_OVERSEER = 0, @@ -28,4 +31,10 @@ enum slNPCandGO SCREAMING_HALL_DOOR = 183295 //door opened when grandmaster vorpil dies }; +template +inline AI* GetShadowLabyrinthAI(T* obj) +{ + return GetInstanceAI(obj, ShadowLabyrinthScriptName); +} + #endif diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.h b/src/server/scripts/Outland/BlackTemple/black_temple.h index bb883091d..2ef58d16a 100644 --- a/src/server/scripts/Outland/BlackTemple/black_temple.h +++ b/src/server/scripts/Outland/BlackTemple/black_temple.h @@ -5,6 +5,7 @@ #ifndef BLACK_TEMPLE_H_ #define BLACK_TEMPLE_H_ +#include "CreatureAIImpl.h" #include "GridNotifiers.h" #include "PassiveAI.h" #include "Player.h" @@ -12,6 +13,8 @@ #include "SpellAuraEffects.h" #include "SpellScript.h" +#define BlackTempleScriptName "instance_black_temple" + enum DataTypes { DATA_HIGH_WARLORD_NAJENTUS = 0, @@ -83,4 +86,10 @@ enum MiscIds FACTION_ASHTONGUE = 1820 }; +template +inline AI* GetBlackTempleAI(T* obj) +{ + return GetInstanceAI(obj, BlackTempleScriptName); +} + #endif // BLACK_TEMPLE_H_ diff --git a/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp b/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp index e67af4e0d..6812b22a2 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp @@ -65,7 +65,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } struct boss_gurtogg_bloodboilAI : public BossAI diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 74b7d4170..4fb86cbfc 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -696,7 +696,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } }; @@ -979,7 +979,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } }; diff --git a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp index 48674a191..7753f111b 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp @@ -60,7 +60,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } struct boss_shahrazAI : public BossAI diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp index ef8bb71a8..df38c7b4e 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp @@ -124,7 +124,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } struct boss_reliquary_of_soulsAI : public BossAI @@ -255,7 +255,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_essence_of_sufferingAI(creature); + return GetBlackTempleAI(creature); } struct boss_essence_of_sufferingAI : public ScriptedAI @@ -366,7 +366,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_essence_of_desireAI(creature); + return GetBlackTempleAI(creature); } struct boss_essence_of_desireAI : public ScriptedAI @@ -475,7 +475,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_essence_of_angerAI(creature); + return GetBlackTempleAI(creature); } struct boss_essence_of_angerAI : public ScriptedAI diff --git a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp index 50a5cdcd9..8bfbe7d61 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp @@ -256,7 +256,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } }; @@ -420,7 +420,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } }; @@ -540,7 +540,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } }; diff --git a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp index 941ecc030..14e77f851 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp @@ -40,7 +40,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } struct boss_supremusAI : public BossAI diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp index 0b71856fa..c3a25b4b8 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp @@ -64,7 +64,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } struct boss_teron_gorefiendAI : public BossAI diff --git a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp index a20e390e1..d724bd498 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp @@ -44,7 +44,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } struct boss_najentusAI : public BossAI diff --git a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp index 52b3cae37..1de9f2f5f 100644 --- a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp +++ b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp @@ -126,7 +126,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } struct boss_illidari_councilAI : public BossAI @@ -269,7 +269,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } struct boss_gathios_the_shattererAI : public boss_illidari_council_memberAI @@ -357,7 +357,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } struct boss_high_nethermancer_zerevorAI : public boss_illidari_council_memberAI @@ -430,7 +430,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } struct boss_lady_malandeAI : public boss_illidari_council_memberAI @@ -494,7 +494,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetBlackTempleAI(creature); } struct boss_veras_darkshadowAI : public boss_illidari_council_memberAI diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp index 9affaf4b7..ccb408381 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp @@ -57,7 +57,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSerpentShrineAI(creature); } struct boss_fathomlord_karathressAI : public BossAI diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp index 020c077c7..d3ded55d3 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp @@ -83,7 +83,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSerpentShrineAI(creature); } struct boss_hydross_the_unstableAI : public BossAI diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp index d4ef2b016..0cfda9af1 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp @@ -91,7 +91,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSerpentShrineAI(creature); } struct boss_lady_vashjAI : public BossAI diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp index 4fccf5095..ed0e74a15 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp @@ -74,7 +74,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSerpentShrineAI(creature); } struct boss_leotheras_the_blindAI : public BossAI @@ -264,7 +264,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_inner_demonAI(creature); + return GetSerpentShrineAI(creature); } struct npc_inner_demonAI : public ScriptedAI diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp index ef756fffc..83e2da0aa 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp @@ -53,7 +53,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSerpentShrineAI(creature); } struct boss_the_lurker_belowAI : public BossAI diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp index 1eb4763a5..88ef47515 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp @@ -57,7 +57,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetSerpentShrineAI(creature); } struct boss_morogrim_tidewalkerAI : public BossAI diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/serpent_shrine.h b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/serpent_shrine.h index cfed80a44..1b7f48ea8 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/serpent_shrine.h +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/serpent_shrine.h @@ -6,11 +6,14 @@ #define DEF_SERPENT_SHRINE_H #include "CreatureAI.h" +#include "CreatureAIImpl.h" #include "GridNotifiers.h" #include "Player.h" #include "SpellAuraEffects.h" #include "SpellScript.h" +#define SerpentShrineScriptName "instance_serpent_shrine" + enum DataTypes { DATA_HYDROSS_THE_UNSTABLE = 0, @@ -65,4 +68,10 @@ enum SSSpells SPELL_FRENZY_WATER = 37026 }; +template +inline AI* GetSerpentShrineAI(T* obj) +{ + return GetInstanceAI(obj, SerpentShrineScriptName); +} + #endif diff --git a/src/server/scripts/Outland/CoilfangReservoir/SlavePens/boss_ahune.cpp b/src/server/scripts/Outland/CoilfangReservoir/SlavePens/boss_ahune.cpp index fd7981852..bdf10bb37 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SlavePens/boss_ahune.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SlavePens/boss_ahune.cpp @@ -9,6 +9,7 @@ #include "ScriptedCreature.h" #include "ScriptedGossip.h" #include "ScriptMgr.h" +#include "the_slave_pens.h" #define GOSSIP_TEXT_ID 15864 #define QUEST_SUMMON_AHUNE 11691 @@ -21,17 +22,6 @@ const Position AhuneSummonPos = {-97.3473f, -233.139f, -1.27587f, M_PI / 2}; const Position TotemPos[3] = { {-115.141f, -143.317f, -2.09467f, 4.92772f}, {-120.178f, -144.398f, -2.23786f, 4.92379f}, {-125.277f, -145.463f, -1.95209f, 4.97877f} }; const Position MinionSummonPos = {-97.154404f, -204.382675f, -1.19f, M_PI / 2}; -enum NPCs -{ - NPC_AHUNE = 25740, - NPC_FROZEN_CORE = 25865, - NPC_AHUNE_SUMMON_LOC_BUNNY = 25745, - NPC_TOTEM = 25961, - NPC_TOTEM_BUNNY_1 = 25971, - NPC_TOTEM_BUNNY_2 = 25972, - NPC_TOTEM_BUNNY_3 = 25973, -}; - enum EventSpells { SPELL_STARTING_BEAM = 46593, @@ -81,7 +71,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new boss_ahuneAI (pCreature); + return GetTheSlavePensAI(pCreature); } struct boss_ahuneAI : public ScriptedAI @@ -360,7 +350,7 @@ public: CreatureAI* GetAI(Creature* pCreature) const override { - return new npc_ahune_frozen_coreAI (pCreature); + return GetTheSlavePensAI(pCreature); } struct npc_ahune_frozen_coreAI : public NullCreatureAI diff --git a/src/server/scripts/Outland/CoilfangReservoir/SlavePens/the_slave_pens.h b/src/server/scripts/Outland/CoilfangReservoir/SlavePens/the_slave_pens.h index f3a3b242c..0f8aa2366 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SlavePens/the_slave_pens.h +++ b/src/server/scripts/Outland/CoilfangReservoir/SlavePens/the_slave_pens.h @@ -1,18 +1,6 @@ /* + * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 * Copyright (C) 2008-2018 TrinityCore - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . */ #ifndef SLAVE_PENS_H @@ -49,6 +37,11 @@ enum SPCreaturesIds { NPC_AHUNE = 25740, NPC_FROZEN_CORE = 25865, + NPC_AHUNE_SUMMON_LOC_BUNNY = 25745, + NPC_TOTEM = 25961, + NPC_TOTEM_BUNNY_1 = 25971, + NPC_TOTEM_BUNNY_2 = 25972, + NPC_TOTEM_BUNNY_3 = 25973, NPC_LUMA_SKYMOTHER = 25697, NPC_AHUNE_LOC_BUNNY = 25745, NPC_EARTHEN_RING_FLAMECALLER = 25754, @@ -68,4 +61,10 @@ enum SPGameObjectIds GO_ICE_STONE = 187882 }; +template +inline AI* GetTheSlavePensAI(T* obj) +{ + return GetInstanceAI(obj, SPScriptName); +} + #endif // SLAVE_PENS_H diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp index 2f88e4b55..16aa6b2c1 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp @@ -29,7 +29,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_thespiaAI (creature); + return GetSteamVaultAI(creature); } struct boss_thespiaAI : public ScriptedAI diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp index d6077ee13..3eaa8604d 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp @@ -36,7 +36,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_mekgineer_steamriggerAI (creature); + return GetSteamVaultAI(creature); } struct boss_mekgineer_steamriggerAI : public ScriptedAI @@ -147,7 +147,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_steamrigger_mechanicAI (creature); + return GetSteamVaultAI(creature); } struct npc_steamrigger_mechanicAI : public ScriptedAI diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp index 6e26e27f8..b2c388e5c 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp @@ -35,7 +35,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_warlord_kalithreshAI (creature); + return GetSteamVaultAI(creature); } struct boss_warlord_kalithreshAI : public ScriptedAI @@ -119,7 +119,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_naga_distillerAI (creature); + return GetSteamVaultAI(creature); } struct npc_naga_distillerAI : public NullCreatureAI diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h index 6b964cf7b..d5e8611de 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h @@ -6,6 +6,9 @@ #define DEF_STEAM_VAULT_H #include "PassiveAI.h" +#include "CreatureAIImpl.h" + +#define SteamVaultScriptName "instance_steam_vault" enum steamVault { @@ -25,4 +28,10 @@ enum steamVaultNPCGO NPC_WARLORD_KALITHRESH = 17798, }; +template +inline AI* GetSteamVaultAI(T* obj) +{ + return GetInstanceAI(obj, SteamVaultScriptName); +} + #endif diff --git a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp index 126303458..a94fce64a 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp @@ -14,6 +14,7 @@ EndScriptData */ #include "ScriptedCreature.h" #include "ScriptMgr.h" #include "SpellScript.h" +#include "the_underbog.h" enum eBlackStalker { @@ -43,7 +44,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_the_black_stalkerAI (creature); + return GetTheUnderbogAI(creature); } struct boss_the_black_stalkerAI : public ScriptedAI diff --git a/src/server/scripts/Outland/CoilfangReservoir/underbog/instance_the_underbog.cpp b/src/server/scripts/Outland/CoilfangReservoir/underbog/instance_the_underbog.cpp index b92d95ea8..a291ca995 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/underbog/instance_the_underbog.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/underbog/instance_the_underbog.cpp @@ -30,7 +30,7 @@ gets instead the deserter debuff. class instance_the_underbog : public InstanceMapScript { public: - instance_the_underbog() : InstanceMapScript(TheUndebogScriptName, 546) { } + instance_the_underbog() : InstanceMapScript(TheUnderbogScriptName, 546) { } InstanceScript* GetInstanceScript(InstanceMap* map) const override { diff --git a/src/server/scripts/Outland/CoilfangReservoir/underbog/the_underbog.h b/src/server/scripts/Outland/CoilfangReservoir/underbog/the_underbog.h index a5a209992..5fae18962 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/underbog/the_underbog.h +++ b/src/server/scripts/Outland/CoilfangReservoir/underbog/the_underbog.h @@ -1,18 +1,6 @@ /* + * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 * Copyright (C) 2008-2018 TrinityCore - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . */ #ifndef the_underbog_h__ @@ -20,6 +8,12 @@ #include "CreatureAIImpl.h" -#define TheUndebogScriptName "instance_the_underbog" +#define TheUnderbogScriptName "instance_the_underbog" + +template +inline AI* GetTheUnderbogAI(T* obj) +{ + return GetInstanceAI(obj, TheUnderbogScriptName); +} #endif // the_underbog_h__ diff --git a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp index 8a8901e5b..d671e90dd 100644 --- a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp +++ b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp @@ -149,7 +149,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetGruulsLairAI(creature); } }; diff --git a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp index f2115ead8..8d1b668d3 100644 --- a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp +++ b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp @@ -173,7 +173,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetGruulsLairAI(creature); } }; @@ -261,7 +261,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetGruulsLairAI(creature); } }; @@ -339,7 +339,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetGruulsLairAI(creature); } }; @@ -411,7 +411,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetGruulsLairAI(creature); } }; @@ -491,7 +491,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetGruulsLairAI(creature); } }; diff --git a/src/server/scripts/Outland/GruulsLair/gruuls_lair.h b/src/server/scripts/Outland/GruulsLair/gruuls_lair.h index 89572057b..b22de5fbe 100644 --- a/src/server/scripts/Outland/GruulsLair/gruuls_lair.h +++ b/src/server/scripts/Outland/GruulsLair/gruuls_lair.h @@ -6,8 +6,11 @@ #define GRUULS_LAIR_H_ #include "CreatureAI.h" +#include "CreatureAIImpl.h" #include "SpellAuraEffects.h" +#define GruulsLairScriptName "instance_gruuls_lair" + enum DataTypes { DATA_MAULGAR = 0, @@ -33,4 +36,10 @@ enum GameObjectIds GO_GRUUL_DOOR = 184662 }; +template +inline AI* GetGruulsLairAI(T* obj) +{ + return GetInstanceAI(obj, GruulsLairScriptName); +} + #endif // GRUULS_LAIR_H_ diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h index 4ddfa389b..bf8db287a 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/blood_furnace.h @@ -6,6 +6,9 @@ #define DEF_BLOOD_FURNACE_H #include "Player.h" +#include "CreatureAIImpl.h" + +#define BloodFurnaceScriptName "instance_blood_furnace" enum bloodFurnace { @@ -39,4 +42,10 @@ enum bloodFurnaceNPC NPC_CHANNELER = 17653 }; +template +inline AI* GetBloodFurnaceAI(T* obj) +{ + return GetInstanceAI(obj, BloodFurnaceScriptName); +} + #endif diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp index 8da1ab7d1..6eb52b09e 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp @@ -126,7 +126,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_broggokAI(creature); + return GetBloodFurnaceAI(creature); } }; diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp index 1bad8e427..7e2b3ac7d 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp @@ -265,7 +265,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_kelidan_the_breakerAI(creature); + return GetBloodFurnaceAI(creature); } }; @@ -336,7 +336,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_shadowmoon_channelerAI(creature); + return GetBloodFurnaceAI(creature); } }; diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp index f043397ad..cd9588d78 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp @@ -120,7 +120,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_the_makerAI(creature); + return GetBloodFurnaceAI(creature); } }; diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp index 09137fc09..7ae884907 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp @@ -165,7 +165,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetHellfireRampartsAI(creature); } }; diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp index 071a6ac41..9d421c168 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp @@ -128,7 +128,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_vazruden_the_heraldAI(creature); + return GetHellfireRampartsAI(creature); } }; @@ -236,7 +236,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_nazanAI(creature); + return GetHellfireRampartsAI(creature); } }; @@ -307,7 +307,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_vazrudenAI(creature); + return GetHellfireRampartsAI(creature); } }; diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp index 3cad4f767..f108b7b6c 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp @@ -143,7 +143,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_watchkeeper_gargolmarAI(creature); + return GetHellfireRampartsAI(creature); } }; diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h index 0c44ee958..531e708ba 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/hellfire_ramparts.h @@ -6,6 +6,9 @@ #define DEF_RAMPARTS_H #include "SpellScript.h" +#include "CreatureAIImpl.h" + +#define HellfireRampartsScriptName "instance_hellfire_ramparts" enum DataTypes { @@ -29,4 +32,10 @@ enum GameobjectIds GO_FEL_IRON_CHECT_HEROIC = 185169 }; +template +inline AI* GetHellfireRampartsAI(T* obj) +{ + return GetInstanceAI(obj, HellfireRampartsScriptName); +} + #endif diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp index 15b5a1f7e..a22c9b874 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp @@ -246,7 +246,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetMagtheridonsLairAI(creature); } }; diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h index 404094236..da501ffee 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h @@ -6,6 +6,9 @@ #define DEF_MAGTHERIDONS_LAIR_H #include "SpellScript.h" +#include "CreatureAIImpl.h" + +#define MagtheridonsLairScriptName "instance_magtheridons_lair" enum DataTypes { @@ -38,4 +41,10 @@ enum GoIds GO_MAGTHERIDON_COLUMN5 = 184639 }; +template +inline AI* GetMagtheridonsLairAI(T* obj) +{ + return GetInstanceAI(obj, MagtheridonsLairScriptName); +} + #endif diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp index 02b7cda2e..3f69d9310 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp @@ -240,7 +240,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetShatteredHallsAI(creature); } }; diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp index 3e0badc14..3943fea78 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp @@ -211,7 +211,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetShatteredHallsAI(creature); } }; @@ -248,7 +248,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetShatteredHallsAI(creature); } }; diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp index 815200204..a7cc2fcf9 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp @@ -167,7 +167,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetShatteredHallsAI(creature); } }; diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h index 5bfa6619d..5dfd96aa2 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.h @@ -5,9 +5,12 @@ #ifndef DEF_SHATTERED_H #define DEF_SHATTERED_H +#include "CreatureAIImpl.h" #include "PassiveAI.h" #include "SpellScript.h" +#define ShatteredHallsLairScriptName "instance_shattered_halls" + enum DataTypes { DATA_NETHEKURSE = 0, @@ -51,4 +54,10 @@ enum SpellIds SPELL_KARGATHS_EXECUTIONER_3 = 39290 }; +template +inline AI* GetShatteredHallsAI(T* obj) +{ + return GetInstanceAI(obj, ShatteredHallsLairScriptName); +} + #endif diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp index 6c355b189..3bf3e54e9 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp @@ -327,7 +327,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetTheEyeAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp index f68c70342..b0245d8b2 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp @@ -225,7 +225,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetTheEyeAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp index da00842d0..6b0d1f0c8 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp @@ -706,7 +706,7 @@ public: }; CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetTheEyeAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp index a05433913..cad30e5a1 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp @@ -113,7 +113,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetTheEyeAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h b/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h index ccfeeabe0..6280417f9 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h +++ b/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h @@ -5,11 +5,14 @@ #ifndef DEF_THE_EYE_H #define DEF_THE_EYE_H +#include "CreatureAIImpl.h" #include "GridNotifiers.h" #include "Player.h" #include "SpellAuraEffects.h" #include "SpellScript.h" +#define TheEyeScriptName "instance_the_eye" + enum EyeData { DATA_ALAR = 0, @@ -41,4 +44,10 @@ enum EyeGOs GO_KAEL_STATUE_LEFT = 184597 }; +template +inline AI* GetTheEyeAI(T* obj) +{ + return GetInstanceAI(obj, TheEyeScriptName); +} + #endif diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp index 875e5c738..f78dedc9a 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp @@ -91,7 +91,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_gatewatcher_gyrokillAI(creature); + return GetMechanarAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp index 516887df4..ebd8ccbaa 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp @@ -94,7 +94,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_gatewatcher_iron_handAI(creature); + return GetMechanarAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp index 695561a31..505813f81 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp @@ -126,7 +126,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_mechano_lord_capacitusAI(creature); + return GetMechanarAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp index e1cd380ce..662f98439 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp @@ -115,7 +115,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_nethermancer_sepethreaAI(creature); + return GetMechanarAI(creature); } }; @@ -179,7 +179,7 @@ public: }; CreatureAI* GetAI(Creature* creature) const override { - return new npc_ragin_flamesAI(creature); + return GetMechanarAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp index 2dc2373d1..7bbcbb456 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp @@ -146,7 +146,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_pathaleon_the_calculatorAI(creature); + return GetMechanarAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h b/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h index 9ae7db8f4..1ae8f0148 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/mechanar.h @@ -6,10 +6,13 @@ #define DEF_MECHANAR_H #include "CreatureAI.h" +#include "CreatureAIImpl.h" #include "Player.h" #include "SpellAuraEffects.h" #include "SpellScript.h" +#define MechanarScriptName "instance_mechanar" + enum DataTypes { DATA_GATEWATCHER_GYROKILL = 0, @@ -52,4 +55,10 @@ enum SpellIds SPELL_TELEPORT_VISUAL = 35517 }; +template +inline AI* GetMechanarAI(T* obj) +{ + return GetInstanceAI(obj, MechanarScriptName); +} + #endif diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp index 827971dca..d3e7ee123 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp @@ -231,7 +231,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_millhouse_manastormAI(creature); + return GetArcatrazAI(creature); } }; @@ -560,7 +560,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_warden_mellicharAI(creature); + return GetArcatrazAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h index 1cba01153..63612e211 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.h @@ -6,9 +6,12 @@ #define ARCATRAZ_H #include "CreatureAI.h" +#include "CreatureAIImpl.h" #include "Player.h" #include "SpellScript.h" +#define ArcatrazScriptName "instance_arcatraz" + enum DataTypes { // Encounter States/Boss GUIDs @@ -54,4 +57,10 @@ enum SpellIds SPELL_SOUL_STEAL = 36782 }; +template +inline AI* GetArcatrazAI(T* obj) +{ + return GetInstanceAI(obj, ArcatrazScriptName); +} + #endif // ARCATRAZ_H diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp index 19c6cd403..5bd9f3e39 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp @@ -161,7 +161,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_dalliah_the_doomsayerAI(creature); + return GetArcatrazAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp index bca0d05de..ee84ca003 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp @@ -163,7 +163,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_harbinger_skyrissAI(creature); + return GetArcatrazAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp index 3d71d7762..3df1384ed 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp @@ -242,7 +242,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_wrath_scryer_soccothratesAI(creature); + return GetArcatrazAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp index 1bfec8884..0ecfe445c 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_zereketh_the_unbound.cpp @@ -93,7 +93,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_zereketh_the_unboundAI(creature); + return GetArcatrazAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp index 949e15671..85c62d89d 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp @@ -108,7 +108,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_commander_sarannisAI(creature); + return GetTheBotanicaAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp index a2e30622a..209d053b8 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp @@ -137,7 +137,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_high_botanist_freywinnAI(creature); + return GetTheBotanicaAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp index b6c243661..dea7a5b18 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp @@ -133,7 +133,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_lajAI(creature); + return GetTheBotanicaAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp index f6fe6e3ba..d99e0676c 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_thorngrin_the_tender.cpp @@ -143,7 +143,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_thorngrin_the_tenderAI(creature); + return GetTheBotanicaAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp index 4a7682da7..b0a12dc72 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp @@ -100,7 +100,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_warp_splinterAI(creature); + return GetTheBotanicaAI(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/botanica/the_botanica.h b/src/server/scripts/Outland/TempestKeep/botanica/the_botanica.h index c1b2f41d8..1d6f68a55 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/the_botanica.h +++ b/src/server/scripts/Outland/TempestKeep/botanica/the_botanica.h @@ -6,6 +6,9 @@ #define DEF_THE_BOTANICA_H #include "SpellScript.h" +#include "CreatureAIImpl.h" + +#define TheBotanicaScriptName "instance_the_botanica" enum DataTypes { @@ -36,4 +39,10 @@ enum SpellIds SPELL_SHADOW_FORM = 34205 }; +template +inline AI* GetTheBotanicaAI(T* obj) +{ + return GetInstanceAI(obj, TheBotanicaScriptName); +} + #endif