diff options
| author | ariel- <ariel-@users.noreply.github.com> | 2017-06-19 23:20:06 -0300 |
|---|---|---|
| committer | ariel- <ariel-@users.noreply.github.com> | 2017-06-19 23:20:06 -0300 |
| commit | 85a7d5ce9ac68b30da2277cc91d4b70358f1880d (patch) | |
| tree | df3d2084ee2e35008903c03178039b9c986e2d08 /src/server/scripts/EasternKingdoms | |
| parent | 052fc24315ace866ea1cf610e85df119b68100c9 (diff) | |
Core: ported headers cleanup from master branch
Diffstat (limited to 'src/server/scripts/EasternKingdoms')
175 files changed, 1139 insertions, 815 deletions
diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp index 9b18098417f..cc0ff3fd650 100644 --- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp +++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp @@ -16,6 +16,7 @@ */ #include "ScriptMgr.h" +#include "ObjectAccessor.h" #include "ScriptedCreature.h" enum Spells diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp index 3b727fd1bc1..bcd4a915595 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp @@ -16,12 +16,16 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedEscortAI.h" -#include "ScriptedGossip.h" -#include "GameObjectAI.h" #include "blackrock_depths.h" +#include "GameObject.h" +#include "GameObjectAI.h" +#include "InstanceScript.h" +#include "Log.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedEscortAI.h" +#include "ScriptedGossip.h" +#include "TemporarySummon.h" #include "WorldSession.h" //go_shadowforge_brazier @@ -54,7 +58,7 @@ class go_shadowforge_brazier : public GameObjectScript GameObjectAI* GetAI(GameObject* go) const override { - return GetInstanceAI<go_shadowforge_brazierAI>(go); + return GetBlackrockDepthsAI<go_shadowforge_brazierAI>(go); } }; @@ -93,7 +97,7 @@ class at_ring_of_law : public AreaTriggerScript public: at_ring_of_law() : AreaTriggerScript("at_ring_of_law") { } - bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) override + bool OnTrigger(Player* player, AreaTriggerEntry const* /*at*/) override { if (InstanceScript* instance = player->GetInstanceScript()) { @@ -128,7 +132,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_grimstoneAI>(creature); + return GetBlackrockDepthsAI<npc_grimstoneAI>(creature); } struct npc_grimstoneAI : public npc_escortAI @@ -224,7 +228,7 @@ public: Event_Timer = 5000; break; case 5: - instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, NPC_GRIMSTONE, me); + instance->UpdateEncounterStateForKilledCreature(NPC_GRIMSTONE, me); instance->SetData(TYPE_RING_OF_LAW, DONE); TC_LOG_DEBUG("scripts", "npc_grimstone: event reached end and set complete."); break; @@ -365,7 +369,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_phalanxAI(creature); + return GetBlackrockDepthsAI<npc_phalanxAI>(creature); } struct npc_phalanxAI : public ScriptedAI @@ -489,7 +493,7 @@ class npc_lokhtos_darkbargainer : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new npc_lokhtos_darkbargainerAI(creature); + return GetBlackrockDepthsAI<npc_lokhtos_darkbargainerAI>(creature); } }; @@ -535,7 +539,7 @@ public: void DoGo(uint32 id, uint32 state) { - if (GameObject* go = instance->instance->GetGameObject(instance->GetGuidData(id))) + if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(id))) go->SetGoState((GOState)state); } @@ -622,7 +626,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_rocknotAI>(creature); + return GetBlackrockDepthsAI<npc_rocknotAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h index 9944300d7f1..5102c58b9b6 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h @@ -19,6 +19,9 @@ #ifndef DEF_BRD_H #define DEF_BRD_H +#include "CreatureAIImpl.h" + +#define BRDScriptName "instance_blackrock_depths" #define DataHeader "BRD" enum BRDFactionIds @@ -64,4 +67,10 @@ enum BRDDataTypes DATA_COREN = 28 }; +template <class AI, class T> +inline AI* GetBlackrockDepthsAI(T* obj) +{ + return GetInstanceAI<AI>(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 41beda843e4..83c3f7037c4 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp @@ -16,6 +16,7 @@ */ #include "ScriptMgr.h" +#include "blackrock_depths.h" #include "ScriptedCreature.h" enum Spells @@ -89,7 +90,7 @@ class boss_ambassador_flamelash : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_ambassador_flamelashAI(creature); + return GetBlackrockDepthsAI<boss_ambassador_flamelashAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp index 37b7e892ae5..7d3d77f52b1 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp @@ -16,16 +16,20 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" #include "blackrock_depths.h" +#include "GameObjectAI.h" +#include "GridNotifiers.h" +#include "Group.h" +#include "InstanceScript.h" +#include "LFGMgr.h" +#include "Map.h" +#include "ObjectAccessor.h" #include "Player.h" -#include "SpellScript.h" +#include "ScriptedCreature.h" +#include "ScriptedGossip.h" #include "SpellAuras.h" -#include "LFGMgr.h" -#include "Group.h" -#include "GridNotifiers.h" -#include "GameObjectAI.h" +#include "SpellScript.h" +#include "TemporarySummon.h" enum DirebrewSays { @@ -274,7 +278,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_coren_direbrewAI>(creature); + return GetBlackrockDepthsAI<boss_coren_direbrewAI>(creature); } }; @@ -338,7 +342,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_coren_direbrew_sistersAI>(creature); + return GetBlackrockDepthsAI<npc_coren_direbrew_sistersAI>(creature); } }; @@ -370,7 +374,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_direbrew_minionAI>(creature); + return GetBlackrockDepthsAI<npc_direbrew_minionAI>(creature); } }; @@ -412,7 +416,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_direbrew_antagonistAI>(creature); + return GetBlackrockDepthsAI<npc_direbrew_antagonistAI>(creature); } }; @@ -455,7 +459,7 @@ public: GameObjectAI* GetAI(GameObject* go) const override { - return GetInstanceAI<go_direbrew_mole_machineAI>(go); + return GetBlackrockDepthsAI<go_direbrew_mole_machineAI>(go); } }; @@ -471,10 +475,7 @@ class spell_direbrew_disarm : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_DIREBREW_DISARM) - || !sSpellMgr->GetSpellInfo(SPELL_DIREBREW_DISARM_GROW)) - return false; - return true; + return ValidateSpellInfo({ SPELL_DIREBREW_DISARM, SPELL_DIREBREW_DISARM_GROW }); } void PeriodicTick(AuraEffect const* /*aurEff*/) @@ -517,9 +518,7 @@ class spell_direbrew_summon_mole_machine_target_picker : public SpellScriptLoade bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_MOLE_MACHINE_MINION_SUMMONER)) - return false; - return true; + return ValidateSpellInfo({ SPELL_MOLE_MACHINE_MINION_SUMMONER }); } void HandleScriptEffect(SpellEffIndex /*effIndex*/) @@ -603,9 +602,7 @@ class spell_request_second_mug : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SEND_SECOND_MUG)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SEND_SECOND_MUG }); } void HandleScriptEffect(SpellEffIndex /*effIndex*/) @@ -637,9 +634,7 @@ class spell_send_mug_control_aura : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SEND_MUG_TARGET_PICKER)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SEND_MUG_TARGET_PICKER }); } void PeriodicTick(AuraEffect const* /*aurEff*/) 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 b3b3a0f2b4c..0f518a8284a 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 @@ -16,8 +16,10 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_depths.h" +#include "InstanceScript.h" +#include "ObjectAccessor.h" +#include "ScriptedCreature.h" enum Yells { @@ -112,7 +114,7 @@ class boss_emperor_dagran_thaurissan : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_draganthaurissanAI>(creature); + return GetBlackrockDepthsAI<boss_draganthaurissanAI>(creature); } }; 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 c17de75a6cf..b9883a1e9f0 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp @@ -16,6 +16,7 @@ */ #include "ScriptMgr.h" +#include "blackrock_depths.h" #include "ScriptedCreature.h" enum Spells @@ -130,7 +131,7 @@ class boss_general_angerforge : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_general_angerforgeAI(creature); + return GetBlackrockDepthsAI<boss_general_angerforgeAI>(creature); } }; 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 691df9b587d..277af244871 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 @@ -16,6 +16,7 @@ */ #include "ScriptMgr.h" +#include "blackrock_depths.h" #include "ScriptedCreature.h" enum Spells @@ -99,7 +100,7 @@ class boss_high_interrogator_gerstahn : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_high_interrogator_gerstahnAI(creature); + return GetBlackrockDepthsAI<boss_high_interrogator_gerstahnAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp index fe432438811..68441159eaa 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp @@ -16,8 +16,9 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_depths.h" +#include "InstanceScript.h" +#include "ScriptedCreature.h" enum Spells { @@ -105,7 +106,7 @@ class boss_magmus : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_magmusAI(creature); + return GetBlackrockDepthsAI<boss_magmusAI>(creature); } }; 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 b1cc51e37a9..461322596cc 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp @@ -16,6 +16,7 @@ */ #include "ScriptMgr.h" +#include "blackrock_depths.h" #include "ScriptedCreature.h" enum Spells @@ -93,7 +94,7 @@ class boss_moira_bronzebeard : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_moira_bronzebeardAI(creature); + return GetBlackrockDepthsAI<boss_moira_bronzebeardAI>(creature); } }; 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 31dd2ffd487..787de8711f2 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 @@ -17,10 +17,11 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" #include "blackrock_depths.h" +#include "InstanceScript.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "ScriptedGossip.h" enum Spells { @@ -102,7 +103,7 @@ class boss_gloomrel : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_gloomrelAI>(creature); + return GetBlackrockDepthsAI<boss_gloomrelAI>(creature); } }; @@ -265,7 +266,7 @@ class boss_doomrel : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_doomrelAI>(creature); + return GetBlackrockDepthsAI<boss_doomrelAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp index 1bc8d78b79a..1ac6dfd542c 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp @@ -17,9 +17,14 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "InstanceScript.h" #include "blackrock_depths.h" +#include "Creature.h" +#include "CreatureAI.h" +#include "GameObject.h" +#include "InstanceScript.h" +#include "Log.h" +#include "Map.h" +#include "MotionMaster.h" #define TIMER_TOMBOFTHESEVEN 15000 #define MAX_ENCOUNTER 6 @@ -68,7 +73,7 @@ enum GameObjects class instance_blackrock_depths : public InstanceMapScript { public: - instance_blackrock_depths() : InstanceMapScript("instance_blackrock_depths", 230) { } + instance_blackrock_depths() : InstanceMapScript(BRDScriptName, 230) { } InstanceScript* GetInstanceScript(InstanceMap* map) const override { @@ -130,22 +135,22 @@ public: { switch (creature->GetEntry()) { - case NPC_EMPEROR: EmperorGUID = creature->GetGUID(); break; - case NPC_PHALANX: PhalanxGUID = creature->GetGUID(); break; - case NPC_MOIRA: MoiraGUID = creature->GetGUID(); break; - case NPC_COREN: CorenGUID = creature->GetGUID(); break; - case NPC_DOOMREL: TombBossGUIDs[0] = creature->GetGUID(); break; - case NPC_DOPEREL: TombBossGUIDs[1] = creature->GetGUID(); break; - case NPC_HATEREL: TombBossGUIDs[2] = creature->GetGUID(); break; - case NPC_VILEREL: TombBossGUIDs[3] = creature->GetGUID(); break; - case NPC_SEETHREL: TombBossGUIDs[4] = creature->GetGUID(); break; - case NPC_GLOOMREL: TombBossGUIDs[5] = creature->GetGUID(); break; - case NPC_ANGERREL: TombBossGUIDs[6] = creature->GetGUID(); break; - case NPC_MAGMUS: - MagmusGUID = creature->GetGUID(); - if (!creature->IsAlive()) - HandleGameObject(GetGuidData(DATA_THRONE_DOOR), true); // if Magmus is dead open door to last boss - break; + case NPC_EMPEROR: EmperorGUID = creature->GetGUID(); break; + case NPC_PHALANX: PhalanxGUID = creature->GetGUID(); break; + case NPC_MOIRA: MoiraGUID = creature->GetGUID(); break; + case NPC_COREN: CorenGUID = creature->GetGUID(); break; + case NPC_DOOMREL: TombBossGUIDs[0] = creature->GetGUID(); break; + case NPC_DOPEREL: TombBossGUIDs[1] = creature->GetGUID(); break; + case NPC_HATEREL: TombBossGUIDs[2] = creature->GetGUID(); break; + case NPC_VILEREL: TombBossGUIDs[3] = creature->GetGUID(); break; + case NPC_SEETHREL: TombBossGUIDs[4] = creature->GetGUID(); break; + case NPC_GLOOMREL: TombBossGUIDs[5] = creature->GetGUID(); break; + case NPC_ANGERREL: TombBossGUIDs[6] = creature->GetGUID(); break; + case NPC_MAGMUS: + MagmusGUID = creature->GetGUID(); + if (!creature->IsAlive()) + HandleGameObject(GetGuidData(DATA_THRONE_DOOR), true); // if Magmus is dead open door to last boss + break; } } @@ -153,33 +158,33 @@ public: { switch (go->GetEntry()) { - case GO_ARENA1: GoArena1GUID = go->GetGUID(); break; - case GO_ARENA2: GoArena2GUID = go->GetGUID(); break; - case GO_ARENA3: GoArena3GUID = go->GetGUID(); break; - case GO_ARENA4: GoArena4GUID = go->GetGUID(); break; - case GO_SHADOW_LOCK: GoShadowLockGUID = go->GetGUID(); break; - case GO_SHADOW_MECHANISM: GoShadowMechGUID = go->GetGUID(); break; - case GO_SHADOW_GIANT_DOOR: GoShadowGiantGUID = go->GetGUID(); break; - case GO_SHADOW_DUMMY: GoShadowDummyGUID = go->GetGUID(); break; - case GO_BAR_KEG_SHOT: GoBarKegGUID = go->GetGUID(); break; - case GO_BAR_KEG_TRAP: GoBarKegTrapGUID = go->GetGUID(); break; - case GO_BAR_DOOR: GoBarDoorGUID = go->GetGUID(); break; - case GO_TOMB_ENTER: GoTombEnterGUID = go->GetGUID(); break; - case GO_TOMB_EXIT: - GoTombExitGUID = go->GetGUID(); - if (GhostKillCount >= 7) - HandleGameObject(ObjectGuid::Empty, true, go); - else - HandleGameObject(ObjectGuid::Empty, false, go); - break; - case GO_LYCEUM: GoLyceumGUID = go->GetGUID(); break; - case GO_SF_S: GoSFSGUID = go->GetGUID(); break; - case GO_SF_N: GoSFNGUID = go->GetGUID(); break; - case GO_GOLEM_ROOM_N: GoGolemNGUID = go->GetGUID(); break; - case GO_GOLEM_ROOM_S: GoGolemSGUID = go->GetGUID(); break; - case GO_THRONE_ROOM: GoThroneGUID = go->GetGUID(); break; - case GO_CHEST_SEVEN: GoChestGUID = go->GetGUID(); break; - case GO_SPECTRAL_CHALICE: GoSpectralChaliceGUID = go->GetGUID(); break; + case GO_ARENA1: GoArena1GUID = go->GetGUID(); break; + case GO_ARENA2: GoArena2GUID = go->GetGUID(); break; + case GO_ARENA3: GoArena3GUID = go->GetGUID(); break; + case GO_ARENA4: GoArena4GUID = go->GetGUID(); break; + case GO_SHADOW_LOCK: GoShadowLockGUID = go->GetGUID(); break; + case GO_SHADOW_MECHANISM: GoShadowMechGUID = go->GetGUID(); break; + case GO_SHADOW_GIANT_DOOR: GoShadowGiantGUID = go->GetGUID(); break; + case GO_SHADOW_DUMMY: GoShadowDummyGUID = go->GetGUID(); break; + case GO_BAR_KEG_SHOT: GoBarKegGUID = go->GetGUID(); break; + case GO_BAR_KEG_TRAP: GoBarKegTrapGUID = go->GetGUID(); break; + case GO_BAR_DOOR: GoBarDoorGUID = go->GetGUID(); break; + case GO_TOMB_ENTER: GoTombEnterGUID = go->GetGUID(); break; + case GO_TOMB_EXIT: + GoTombExitGUID = go->GetGUID(); + if (GhostKillCount >= 7) + HandleGameObject(ObjectGuid::Empty, true, go); + else + HandleGameObject(ObjectGuid::Empty, false, go); + break; + case GO_LYCEUM: GoLyceumGUID = go->GetGUID(); break; + case GO_SF_S: GoSFSGUID = go->GetGUID(); break; + case GO_SF_N: GoSFNGUID = go->GetGUID(); break; + case GO_GOLEM_ROOM_N: GoGolemNGUID = go->GetGUID(); break; + case GO_GOLEM_ROOM_S: GoGolemSGUID = go->GetGUID(); break; + case GO_THRONE_ROOM: GoThroneGUID = go->GetGUID(); break; + case GO_CHEST_SEVEN: GoChestGUID = go->GetGUID(); break; + case GO_SPECTRAL_CHALICE: GoSpectralChaliceGUID = go->GetGUID(); break; } } @@ -205,30 +210,30 @@ public: switch (type) { - case TYPE_RING_OF_LAW: - encounter[0] = data; - break; - case TYPE_VAULT: - encounter[1] = data; - break; - case TYPE_BAR: - if (data == SPECIAL) - ++BarAleCount; - else - encounter[2] = data; - break; - case TYPE_TOMB_OF_SEVEN: - encounter[3] = data; - break; - case TYPE_LYCEUM: - encounter[4] = data; - break; - case TYPE_IRON_HALL: - encounter[5] = data; - break; - case DATA_GHOSTKILL: - GhostKillCount += data; - break; + case TYPE_RING_OF_LAW: + encounter[0] = data; + break; + case TYPE_VAULT: + encounter[1] = data; + break; + case TYPE_BAR: + if (data == SPECIAL) + ++BarAleCount; + else + encounter[2] = data; + break; + case TYPE_TOMB_OF_SEVEN: + encounter[3] = data; + break; + case TYPE_LYCEUM: + encounter[4] = data; + break; + case TYPE_IRON_HALL: + encounter[5] = data; + break; + case DATA_GHOSTKILL: + GhostKillCount += data; + break; } if (data == DONE || GhostKillCount >= 7) @@ -250,23 +255,23 @@ public: { switch (type) { - case TYPE_RING_OF_LAW: - return encounter[0]; - case TYPE_VAULT: - return encounter[1]; - case TYPE_BAR: - if (encounter[2] == IN_PROGRESS && BarAleCount == 3) - return SPECIAL; - else - return encounter[2]; - case TYPE_TOMB_OF_SEVEN: - return encounter[3]; - case TYPE_LYCEUM: - return encounter[4]; - case TYPE_IRON_HALL: - return encounter[5]; - case DATA_GHOSTKILL: - return GhostKillCount; + case TYPE_RING_OF_LAW: + return encounter[0]; + case TYPE_VAULT: + return encounter[1]; + case TYPE_BAR: + if (encounter[2] == IN_PROGRESS && BarAleCount == 3) + return SPECIAL; + else + return encounter[2]; + case TYPE_TOMB_OF_SEVEN: + return encounter[3]; + case TYPE_LYCEUM: + return encounter[4]; + case TYPE_IRON_HALL: + return encounter[5]; + case DATA_GHOSTKILL: + return GhostKillCount; } return 0; } @@ -275,42 +280,42 @@ public: { switch (data) { - case DATA_EMPEROR: - return EmperorGUID; - case DATA_PHALANX: - return PhalanxGUID; - case DATA_MOIRA: - return MoiraGUID; - case DATA_COREN: - return CorenGUID; - case DATA_ARENA1: - return GoArena1GUID; - case DATA_ARENA2: - return GoArena2GUID; - case DATA_ARENA3: - return GoArena3GUID; - case DATA_ARENA4: - return GoArena4GUID; - case DATA_GO_BAR_KEG: - return GoBarKegGUID; - case DATA_GO_BAR_KEG_TRAP: - return GoBarKegTrapGUID; - case DATA_GO_BAR_DOOR: - return GoBarDoorGUID; - case DATA_EVENSTARTER: - return TombEventStarterGUID; - case DATA_SF_BRAZIER_N: - return GoSFNGUID; - case DATA_SF_BRAZIER_S: - return GoSFSGUID; - case DATA_THRONE_DOOR: - return GoThroneGUID; - case DATA_GOLEM_DOOR_N: - return GoGolemNGUID; - case DATA_GOLEM_DOOR_S: - return GoGolemSGUID; - case DATA_GO_CHALICE: - return GoSpectralChaliceGUID; + case DATA_EMPEROR: + return EmperorGUID; + case DATA_PHALANX: + return PhalanxGUID; + case DATA_MOIRA: + return MoiraGUID; + case DATA_COREN: + return CorenGUID; + case DATA_ARENA1: + return GoArena1GUID; + case DATA_ARENA2: + return GoArena2GUID; + case DATA_ARENA3: + return GoArena3GUID; + case DATA_ARENA4: + return GoArena4GUID; + case DATA_GO_BAR_KEG: + return GoBarKegGUID; + case DATA_GO_BAR_KEG_TRAP: + return GoBarKegTrapGUID; + case DATA_GO_BAR_DOOR: + return GoBarDoorGUID; + case DATA_EVENSTARTER: + return TombEventStarterGUID; + case DATA_SF_BRAZIER_N: + return GoSFNGUID; + case DATA_SF_BRAZIER_S: + return GoSFSGUID; + case DATA_THRONE_DOOR: + return GoThroneGUID; + case DATA_GOLEM_DOOR_N: + return GoGolemNGUID; + case DATA_GOLEM_DOOR_S: + return GoGolemSGUID; + case DATA_GO_CHALICE: + return GoSpectralChaliceGUID; } return ObjectGuid::Empty; } @@ -320,7 +325,7 @@ public: return str_data; } - void Load(const char* in) override + void Load(char const* in) override { if (!in) { @@ -375,7 +380,7 @@ public: boss->CombatStop(true); boss->LoadCreaturesAddon(); boss->GetMotionMaster()->MoveTargetedHome(); - boss->SetLootRecipient(NULL); + boss->SetLootRecipient(nullptr); } boss->SetFaction(FACTION_FRIENDLY); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h index 8251d96dc58..8d9b2c393bb 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h @@ -18,6 +18,8 @@ #ifndef DEF_BLACKROCK_SPIRE_H #define DEF_BLACKROCK_SPIRE_H +#include "CreatureAIImpl.h" + uint32 const EncounterCount = 23; #define BRSScriptName "instance_blackrock_spire" @@ -120,4 +122,10 @@ enum BRSGameObjectsIds GO_PORTCULLIS_TOBOSSROOMS = 175186 }; +template <class AI, class T> +inline AI* GetBlackrockSpireAI(T* obj) +{ + return GetInstanceAI<AI>(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 56f5580daa0..6dac4937a8a 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp @@ -17,8 +17,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_spire.h" +#include "ScriptedCreature.h" enum Spells { @@ -105,7 +105,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_drakkisathAI(creature); + return GetBlackrockSpireAI<boss_drakkisathAI>(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 5e76a4e020b..a62da8ea9ed 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 @@ -16,8 +16,9 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_spire.h" +#include "MotionMaster.h" +#include "ScriptedCreature.h" #include "TemporarySummon.h" enum Spells @@ -105,7 +106,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_gizrul_the_slavenerAI(creature); + return GetBlackrockSpireAI<boss_gizrul_the_slavenerAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp index 34eae895bae..4a469a3b716 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp @@ -16,8 +16,11 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_spire.h" +#include "GameObject.h" +#include "InstanceScript.h" +#include "MotionMaster.h" +#include "ScriptedCreature.h" enum Spells { @@ -176,7 +179,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_gythAI>(creature); + return GetBlackrockSpireAI<boss_gythAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp index 7626afd3fff..591cb75ecc7 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp @@ -16,8 +16,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_spire.h" +#include "ScriptedCreature.h" enum Spells { @@ -112,7 +112,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_halyconAI(creature); + return GetBlackrockSpireAI<boss_halyconAI>(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 a8766ac625b..39742ea6a3f 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp @@ -17,8 +17,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_spire.h" +#include "ScriptedCreature.h" enum Spells { @@ -39,7 +39,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_highlordomokkAI(creature); + return GetBlackrockSpireAI<boss_highlordomokkAI>(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 17ae664c816..576b9e5e3eb 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp @@ -16,8 +16,9 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_spire.h" +#include "InstanceScript.h" +#include "ScriptedCreature.h" enum Spells { @@ -138,7 +139,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_lord_valthalakAI>(creature); + return GetBlackrockSpireAI<boss_lord_valthalakAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp index aaf86640eb7..92df2fa0d74 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp @@ -17,8 +17,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_spire.h" +#include "ScriptedCreature.h" enum Spells { @@ -40,7 +40,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_mothersmolderwebAI(creature); + return GetBlackrockSpireAI<boss_mothersmolderwebAI>(creature); } struct boss_mothersmolderwebAI : public BossAI 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 18689249237..eb77fa7bf5e 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp @@ -17,8 +17,9 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_spire.h" +#include "ScriptedCreature.h" +#include "TemporarySummon.h" enum Spells { @@ -52,7 +53,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_overlordwyrmthalakAI(creature); + return GetBlackrockSpireAI<boss_overlordwyrmthalakAI>(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 9dcaf290cb8..61aa94b4d02 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp @@ -15,12 +15,15 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "ObjectMgr.h" #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "Player.h" -#include "Spell.h" #include "blackrock_spire.h" +#include "GameObject.h" +#include "InstanceScript.h" +#include "Map.h" +#include "ObjectAccessor.h" +#include "Player.h" +#include "ScriptedCreature.h" +#include "SpellInfo.h" enum Text { @@ -104,10 +107,10 @@ public: break; case 2: // Close these two doors on Blackhand Incarcerators aggro - if (GameObject* door1 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_IN))) + if (GameObject* door1 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_EMBERSEER_IN))) if (door1->GetGoState() == GO_STATE_ACTIVE) door1->SetGoState(GO_STATE_READY); - if (GameObject* door2 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_DOORS))) + if (GameObject* door2 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_DOORS))) if (door2->GetGoState() == GO_STATE_ACTIVE) door2->SetGoState(GO_STATE_READY); break; @@ -166,33 +169,33 @@ public: void OpenDoors(bool Boss_Killed) { // These two doors reopen on reset or boss kill - if (GameObject* door1 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_IN))) + if (GameObject* door1 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_EMBERSEER_IN))) door1->SetGoState(GO_STATE_ACTIVE); - if (GameObject* door2 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_DOORS))) + if (GameObject* door2 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_DOORS))) door2->SetGoState(GO_STATE_ACTIVE); // This door opens on boss kill if (Boss_Killed) - if (GameObject* door3 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_OUT))) + if (GameObject* door3 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_EMBERSEER_OUT))) door3->SetGoState(GO_STATE_ACTIVE); } void UpdateRunes(GOState state) { // update all runes - if (GameObject* rune1 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_1))) + if (GameObject* rune1 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_EMBERSEER_RUNE_1))) rune1->SetGoState(state); - if (GameObject* rune2 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_2))) + if (GameObject* rune2 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_EMBERSEER_RUNE_2))) rune2->SetGoState(state); - if (GameObject* rune3 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_3))) + if (GameObject* rune3 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_EMBERSEER_RUNE_3))) rune3->SetGoState(state); - if (GameObject* rune4 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_4))) + if (GameObject* rune4 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_EMBERSEER_RUNE_4))) rune4->SetGoState(state); - if (GameObject* rune5 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_5))) + if (GameObject* rune5 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_EMBERSEER_RUNE_5))) rune5->SetGoState(state); - if (GameObject* rune6 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_6))) + if (GameObject* rune6 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_EMBERSEER_RUNE_6))) rune6->SetGoState(state); - if (GameObject* rune7 = me->GetMap()->GetGameObject(instance->GetGuidData(GO_EMBERSEER_RUNE_7))) + if (GameObject* rune7 = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_EMBERSEER_RUNE_7))) rune7->SetGoState(state); } @@ -250,7 +253,7 @@ public: { // Check to see if all players in instance have aura SPELL_EMBERSEER_START before starting event bool _hasAura = true; - Map::PlayerList const &players = me->GetMap()->GetPlayers(); + Map::PlayerList const& players = me->GetMap()->GetPlayers(); for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) if (Player* player = itr->GetSource()->ToPlayer()) if (!player->HasAura(SPELL_EMBERSEER_OBJECT_VISUAL)) @@ -312,7 +315,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_pyroguard_emberseerAI>(creature); + return GetBlackrockSpireAI<boss_pyroguard_emberseerAI>(creature); } }; @@ -436,7 +439,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_blackhand_incarceratorAI(creature); + return GetBlackrockSpireAI<npc_blackhand_incarceratorAI>(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 aff9775b795..9ca38215d2d 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp @@ -16,8 +16,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_spire.h" +#include "ScriptedCreature.h" enum Spells { @@ -92,7 +92,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_quatermasterzigrisAI(creature); + return GetBlackrockSpireAI<boss_quatermasterzigrisAI>(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 1e99e07f9e0..1f5bd2a4cd0 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp @@ -17,9 +17,12 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "Player.h" #include "blackrock_spire.h" +#include "GameObject.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" +#include "Player.h" +#include "ScriptedCreature.h" enum Spells { @@ -372,37 +375,37 @@ public: me->SummonCreature(NPC_GYTH, 211.762f, -397.5885f, 111.1817f, 4.747295f); break; case EVENT_WAVE_1: - if (GameObject* portcullis = me->GetMap()->GetGameObject(portcullisGUID)) + if (GameObject* portcullis = ObjectAccessor::GetGameObject(*me, portcullisGUID)) portcullis->UseDoorOrButton(); // move wave break; case EVENT_WAVE_2: // spawn wave - if (GameObject* portcullis = me->GetMap()->GetGameObject(portcullisGUID)) + if (GameObject* portcullis = ObjectAccessor::GetGameObject(*me, portcullisGUID)) portcullis->UseDoorOrButton(); // move wave break; case EVENT_WAVE_3: // spawn wave - if (GameObject* portcullis = me->GetMap()->GetGameObject(portcullisGUID)) + if (GameObject* portcullis = ObjectAccessor::GetGameObject(*me, portcullisGUID)) portcullis->UseDoorOrButton(); // move wave break; case EVENT_WAVE_4: // spawn wave - if (GameObject* portcullis = me->GetMap()->GetGameObject(portcullisGUID)) + if (GameObject* portcullis = ObjectAccessor::GetGameObject(*me, portcullisGUID)) portcullis->UseDoorOrButton(); // move wave break; case EVENT_WAVE_5: // spawn wave - if (GameObject* portcullis = me->GetMap()->GetGameObject(portcullisGUID)) + if (GameObject* portcullis = ObjectAccessor::GetGameObject(*me, portcullisGUID)) portcullis->UseDoorOrButton(); // move wave break; case EVENT_WAVE_6: // spawn wave - if (GameObject* portcullis = me->GetMap()->GetGameObject(portcullisGUID)) + if (GameObject* portcullis = ObjectAccessor::GetGameObject(*me, portcullisGUID)) portcullis->UseDoorOrButton(); // move wave break; @@ -452,7 +455,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_rend_blackhandAI>(creature); + return GetBlackrockSpireAI<boss_rend_blackhandAI>(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 79d556fc51d..3b3dd5c1892 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 @@ -17,8 +17,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_spire.h" +#include "ScriptedCreature.h" enum Spells { @@ -41,7 +41,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_shadowvoshAI(creature); + return GetBlackrockSpireAI<boss_shadowvoshAI>(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 5cd6e60a186..6b1c72cb715 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp @@ -17,8 +17,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_spire.h" +#include "ScriptedCreature.h" enum Spells { @@ -41,7 +41,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_thebeastAI(creature); + return GetBlackrockSpireAI<boss_thebeastAI>(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 0b4e238a8b1..fb0fc3e20d8 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp @@ -16,8 +16,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_spire.h" +#include "ScriptedCreature.h" enum Spells { @@ -101,7 +101,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_urok_doomhowlAI(creature); + return GetBlackrockSpireAI<boss_urok_doomhowlAI>(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 b1db789dcb3..6b627e97a8d 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp @@ -17,8 +17,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackrock_spire.h" +#include "ScriptedCreature.h" enum Spells { @@ -119,7 +119,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_warmastervooneAI(creature); + return GetBlackrockSpireAI<boss_warmastervooneAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp index bf6197110fa..21fe1450a3b 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp @@ -15,15 +15,14 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "Cell.h" +#include "ScriptMgr.h" +#include "blackrock_spire.h" #include "CellImpl.h" -#include "GridNotifiers.h" #include "GridNotifiersImpl.h" #include "InstanceScript.h" +#include "ObjectAccessor.h" #include "Player.h" #include "ScriptedCreature.h" -#include "ScriptMgr.h" -#include "blackrock_spire.h" //uint32 const DragonspireRunes[7] = { GO_HALL_RUNE_1, GO_HALL_RUNE_2, GO_HALL_RUNE_3, GO_HALL_RUNE_4, GO_HALL_RUNE_5, GO_HALL_RUNE_6, GO_HALL_RUNE_7 }; @@ -120,7 +119,7 @@ public: switch (go->GetEntry()) { case GO_WHELP_SPAWNER: - go->CastSpell(NULL, SPELL_SUMMON_ROOKERY_WHELP); + go->CastSpell(nullptr, SPELL_SUMMON_ROOKERY_WHELP); break; case GO_EMBERSEER_IN: go_emberseerin = go->GetGUID(); @@ -419,8 +418,8 @@ public: void Dragonspireroomcheck() { - Creature* mob = NULL; - GameObject* rune = NULL; + Creature* mob = nullptr; + GameObject* rune = nullptr; for (uint8 i = 0; i < 7; ++i) { @@ -528,7 +527,7 @@ class at_dragonspire_hall : public AreaTriggerScript public: at_dragonspire_hall() : AreaTriggerScript("at_dragonspire_hall") { } - bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) override + bool OnTrigger(Player* player, AreaTriggerEntry const* /*at*/) override { if (player && player->IsAlive()) { @@ -552,7 +551,7 @@ class at_blackrock_stadium : public AreaTriggerScript public: at_blackrock_stadium() : AreaTriggerScript("at_blackrock_stadium") { } - bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) override + bool OnTrigger(Player* player, AreaTriggerEntry const* /*at*/) override { if (player && player->IsAlive()) { @@ -576,10 +575,12 @@ class at_nearby_scarshield_infiltrator : public AreaTriggerScript public: at_nearby_scarshield_infiltrator() : AreaTriggerScript("at_nearby_scarshield_infiltrator") { } - bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) override + bool OnTrigger(Player* player, AreaTriggerEntry const* /*at*/) override { if (player->IsAlive()) + { if (InstanceScript* instance = player->GetInstanceScript()) + { if (Creature* infiltrator = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_SCARSHIELD_INFILTRATOR))) { if (player->getLevel() >= 57) @@ -589,6 +590,8 @@ public: return true; } + } + } return false; } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h index 79f47eeb412..ce31344222d 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h @@ -18,9 +18,11 @@ #ifndef DEF_BLACKWING_LAIR_H #define DEF_BLACKWING_LAIR_H +#include "CreatureAIImpl.h" + uint32 const EncounterCount = 8; -#define BRLScriptName "instance_blackwing_lair" +#define BWLScriptName "instance_blackwing_lair" #define DataHeader "BWL" enum BWLEncounter @@ -80,4 +82,10 @@ enum BWLMisc DATA_EGG_EVENT }; +template <class AI, class T> +inline AI* GetBlackwingLairAI(T* obj) +{ + return GetInstanceAI<AI>(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 2973622d842..d8403641dfa 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp @@ -17,8 +17,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackwing_lair.h" +#include "ScriptedCreature.h" enum Say { @@ -110,7 +110,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_broodlordAI>(creature); + return GetBlackwingLairAI<boss_broodlordAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp index 7198bd276e6..26619a9b730 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp @@ -17,9 +17,10 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "Player.h" #include "blackwing_lair.h" +#include "Map.h" +#include "Player.h" +#include "ScriptedCreature.h" enum Emotes { @@ -240,7 +241,7 @@ public: break; case EVENT_AFFLICTION: { - Map::PlayerList const &players = me->GetMap()->GetPlayers(); + Map::PlayerList const& players = me->GetMap()->GetPlayers(); for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) { if (Player* player = itr->GetSource()->ToPlayer()) @@ -290,7 +291,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_chromaggusAI>(creature); + return GetBlackwingLairAI<boss_chromaggusAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp index 44332ac7663..d31b9f84778 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp @@ -17,8 +17,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackwing_lair.h" +#include "ScriptedCreature.h" enum Spells { @@ -90,7 +90,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_ebonrocAI>(creature); + return GetBlackwingLairAI<boss_ebonrocAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp index 958ff2ef3fa..024fc54e6a0 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp @@ -17,8 +17,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackwing_lair.h" +#include "ScriptedCreature.h" enum Spells { @@ -92,7 +92,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_firemawAI>(creature); + return GetBlackwingLairAI<boss_firemawAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp index 9161c6bb4ca..31d606975bb 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp @@ -17,8 +17,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "blackwing_lair.h" +#include "ScriptedCreature.h" enum Emotes { @@ -98,7 +98,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_flamegorAI>(creature); + return GetBlackwingLairAI<boss_flamegorAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp index 1d4ce755908..f213a2be37c 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp @@ -17,10 +17,14 @@ */ #include "ScriptMgr.h" -#include "ScriptedGossip.h" -#include "ScriptedCreature.h" #include "blackwing_lair.h" +#include "GameObject.h" +#include "InstanceScript.h" +#include "MotionMaster.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "ScriptedGossip.h" +#include "TemporarySummon.h" enum Events { @@ -351,7 +355,7 @@ public: nefarian->setActive(true); nefarian->SetCanFly(true); nefarian->SetDisableGravity(true); - nefarian->CastSpell((Unit*)NULL, SPELL_SHADOWFLAME_INITIAL); + nefarian->CastSpell((Unit*)nullptr, SPELL_SHADOWFLAME_INITIAL); nefarian->GetMotionMaster()->MovePoint(1, NefarianLoc[1]); } events.CancelEvent(EVENT_MIND_CONTROL); @@ -388,7 +392,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_victor_nefariusAI>(creature); + return GetBlackwingLairAI<boss_victor_nefariusAI>(creature); } }; @@ -594,7 +598,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_nefarianAI>(creature); + return GetBlackwingLairAI<boss_nefarianAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp index b425f234df9..b7c4e32188d 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp @@ -17,11 +17,13 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "SpellScript.h" -#include "GameObjectAI.h" #include "blackwing_lair.h" +#include "InstanceScript.h" +#include "GameObject.h" +#include "GameObjectAI.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "SpellScript.h" enum Say { @@ -169,7 +171,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_razorgoreAI>(creature); + return GetBlackwingLairAI<boss_razorgoreAI>(creature); } }; @@ -200,7 +202,7 @@ class go_orb_of_domination : public GameObjectScript GameObjectAI* GetAI(GameObject* go) const override { - return GetInstanceAI<go_orb_of_dominationAI>(go); + return GetBlackwingLairAI<go_orb_of_dominationAI>(go); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp index b8993354501..491d37f59c4 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp @@ -17,12 +17,13 @@ */ #include "ScriptMgr.h" -#include "SpellScript.h" -#include "SpellAuraEffects.h" -#include "ScriptedCreature.h" #include "blackwing_lair.h" -#include "ScriptedGossip.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "ScriptedGossip.h" +#include "SpellAuraEffects.h" +#include "SpellScript.h" enum Says { @@ -239,7 +240,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_vaelAI(creature); + return GetBlackwingLairAI<boss_vaelAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp index a65620d7dca..bfd3d2ef3be 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp @@ -15,10 +15,15 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "Player.h" -#include "ScriptedCreature.h" #include "ScriptMgr.h" #include "blackwing_lair.h" +#include "GameObject.h" +#include "InstanceScript.h" +#include "Map.h" +#include "MotionMaster.h" +#include "Player.h" +#include "ScriptedCreature.h" +#include "TemporarySummon.h" DoorData const doorData[] = { @@ -63,7 +68,7 @@ uint32 const Entry[5] = {12422, 12458, 12416, 12420, 12459}; class instance_blackwing_lair : public InstanceMapScript { public: - instance_blackwing_lair() : InstanceMapScript(BRLScriptName, 469) { } + instance_blackwing_lair() : InstanceMapScript(BWLScriptName, 469) { } struct instance_blackwing_lair_InstanceMapScript : public InstanceScript { 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 7f473c00f53..ef9378df968 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp @@ -23,12 +23,12 @@ SDComment: SDCategory: Molten Core EndScriptData */ -#include "ObjectMgr.h" #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "molten_core.h" +#include "ScriptedCreature.h" #include "SpellAuraEffects.h" #include "SpellScript.h" +#include "ObjectMgr.h" enum Emotes { @@ -121,7 +121,7 @@ class boss_baron_geddon : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_baron_geddonAI(creature); + return GetMoltenCoreAI<boss_baron_geddonAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp index 64e59f480bf..580495bd6c7 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp @@ -23,10 +23,10 @@ SDComment: Adds NYI SDCategory: Molten Core EndScriptData */ -#include "ObjectMgr.h" #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "molten_core.h" +#include "ObjectMgr.h" +#include "ScriptedCreature.h" enum Spells { @@ -100,7 +100,7 @@ class boss_garr : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_garrAI(creature); + return GetMoltenCoreAI<boss_garrAI>(creature); } }; @@ -160,7 +160,7 @@ class npc_firesworn : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new npc_fireswornAI(creature); + return GetMoltenCoreAI<npc_fireswornAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp index b55c939bfec..43454e9b840 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp @@ -23,10 +23,10 @@ SDComment: Adds MC NYI SDCategory: Molten Core EndScriptData */ -#include "ObjectMgr.h" #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "molten_core.h" +#include "ObjectMgr.h" +#include "ScriptedCreature.h" enum Spells { @@ -103,7 +103,7 @@ class boss_gehennas : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_gehennasAI(creature); + return GetMoltenCoreAI<boss_gehennasAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp index 1fa97bdecdb..c05454daea7 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp @@ -23,10 +23,12 @@ SDComment: Timers need to be confirmed, Golemagg's Trust need to be checked SDCategory: Molten Core EndScriptData */ -#include "ObjectMgr.h" #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "InstanceScript.h" #include "molten_core.h" +#include "ObjectAccessor.h" +#include "ObjectMgr.h" +#include "ScriptedCreature.h" enum Texts { @@ -121,7 +123,7 @@ class boss_golemagg : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_golemaggAI(creature); + return GetMoltenCoreAI<boss_golemaggAI>(creature); } }; @@ -188,7 +190,7 @@ class npc_core_rager : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_core_ragerAI>(creature); + return GetMoltenCoreAI<npc_core_ragerAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp index 190aa91aa6d..5a5baf50b79 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp @@ -23,10 +23,10 @@ SDComment: SDCategory: Molten Core EndScriptData */ -#include "ObjectMgr.h" #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "molten_core.h" +#include "ObjectMgr.h" +#include "ScriptedCreature.h" enum Spells { @@ -101,7 +101,7 @@ class boss_lucifron : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_lucifronAI(creature); + return GetMoltenCoreAI<boss_lucifronAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp index 6ed123d465b..1fa9bfeec25 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp @@ -23,10 +23,10 @@ SDComment: Conflag on ground nyi SDCategory: Molten Core EndScriptData */ -#include "ObjectMgr.h" #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "molten_core.h" +#include "ObjectMgr.h" +#include "ScriptedCreature.h" enum Texts { @@ -115,7 +115,7 @@ class boss_magmadar : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_magmadarAI(creature); + return GetMoltenCoreAI<boss_magmadarAI>(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 7bf91173432..73c1664e71f 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp @@ -23,12 +23,14 @@ SDComment: Correct spawning and Event NYI SDCategory: Molten Core EndScriptData */ -#include "ObjectMgr.h" #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" +#include "InstanceScript.h" +#include "Map.h" #include "molten_core.h" +#include "ObjectMgr.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "ScriptedGossip.h" enum Texts { @@ -108,7 +110,7 @@ class boss_majordomo : public CreatureScript if (!me->FindNearestCreature(NPC_FLAMEWAKER_HEALER, 100.0f) && !me->FindNearestCreature(NPC_FLAMEWAKER_ELITE, 100.0f)) { - instance->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, me->GetEntry(), me); + instance->UpdateEncounterStateForKilledCreature(me->GetEntry(), me); me->SetFaction(FACTION_FRIENDLY); EnterEvadeMode(); Talk(SAY_DEFEAT); @@ -208,7 +210,7 @@ class boss_majordomo : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_majordomoAI>(creature); + return GetMoltenCoreAI<boss_majordomoAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp index 481472f854e..49bb5f11ecc 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp @@ -24,8 +24,11 @@ SDCategory: Molten Core EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "InstanceScript.h" #include "molten_core.h" +#include "ObjectAccessor.h" +#include "ScriptedCreature.h" +#include "TemporarySummon.h" enum Texts { @@ -309,7 +312,7 @@ class boss_ragnaros : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_ragnarosAI>(creature); + return GetMoltenCoreAI<boss_ragnarosAI>(creature); } }; @@ -344,7 +347,7 @@ class npc_son_of_flame : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_son_of_flameAI>(creature); + return GetMoltenCoreAI<npc_son_of_flameAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp index 1ea9a069588..bf7e1d8a213 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp @@ -16,9 +16,9 @@ */ #include "ScriptMgr.h" +#include "molten_core.h" #include "ScriptedCreature.h" #include "SpellScript.h" -#include "molten_core.h" enum Spells { @@ -115,7 +115,7 @@ class boss_shazzrah : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_shazzrahAI(creature); + return GetMoltenCoreAI<boss_shazzrahAI>(creature); } }; @@ -131,9 +131,7 @@ class spell_shazzrah_gate_dummy : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SHAZZRAH_GATE)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SHAZZRAH_GATE }); } void FilterTargets(std::list<WorldObject*>& targets) 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 6f1cfa94114..778e4bd9069 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp @@ -23,10 +23,10 @@ SDComment: Adds NYI SDCategory: Molten Core EndScriptData */ -#include "ObjectMgr.h" #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "molten_core.h" +#include "ObjectMgr.h" +#include "ScriptedCreature.h" enum Spells { @@ -132,7 +132,7 @@ class boss_sulfuron : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_sulfuronAI(creature); + return GetMoltenCoreAI<boss_sulfuronAI>(creature); } }; @@ -211,7 +211,7 @@ class npc_flamewaker_priest : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new npc_flamewaker_priestAI(creature); + return GetMoltenCoreAI<npc_flamewaker_priestAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp index 47797d09332..a3f990ea34d 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp @@ -15,10 +15,13 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "InstanceScript.h" -#include "ScriptedCreature.h" #include "ScriptMgr.h" #include "molten_core.h" +#include "GameObject.h" +#include "InstanceScript.h" +#include "Map.h" +#include "ScriptedCreature.h" +#include "TemporarySummon.h" Position const SummonPositions[10] = { @@ -34,10 +37,13 @@ Position const SummonPositions[10] = {838.510f, -829.840f, -232.000f, 2.00000f}, }; +Position const RagnarosTelePos = {829.159f, -815.773f, -228.972f, 5.30500f}; +Position const RagnarosSummonPos = {838.510f, -829.840f, -232.000f, 2.00000f}; + class instance_molten_core : public InstanceMapScript { public: - instance_molten_core() : InstanceMapScript("instance_molten_core", 409) { } + instance_molten_core() : InstanceMapScript(MCScriptName, 409) { } struct instance_molten_core_InstanceMapScript : public InstanceScript { diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h index 45037170b7e..9e582985088 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h @@ -19,6 +19,11 @@ #ifndef DEF_MOLTEN_CORE_H #define DEF_MOLTEN_CORE_H +#include "CreatureAIImpl.h" + +struct Position; + +#define MCScriptName "instance_molten_core" #define DataHeader "MC" enum MCEncounters @@ -42,8 +47,8 @@ enum MCActions ACTION_START_RAGNAROS_ALT = 1, }; -Position const RagnarosTelePos = {829.159f, -815.773f, -228.972f, 5.30500f}; -Position const RagnarosSummonPos = {838.510f, -829.840f, -232.000f, 2.00000f}; +extern Position const RagnarosTelePos; +extern Position const RagnarosSummonPos; enum MCCreatures { @@ -71,4 +76,10 @@ enum MCData DATA_RAGNAROS_ADDS = 0, }; +template <class AI, class T> +inline AI* GetMoltenCoreAI(T* obj) +{ + return GetInstanceAI<AI>(obj, MCScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp index b9d3a96f338..89239a8fb24 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp +++ b/src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp @@ -22,8 +22,12 @@ SDComment: Timers and say taken from acid script EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "deadmines.h" +#include "GameObject.h" +#include "InstanceScript.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" +#include "ScriptedCreature.h" enum Spells { @@ -53,7 +57,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_mr_smiteAI>(creature); + return GetDeadminesAI<boss_mr_smiteAI>(creature); } struct boss_mr_smiteAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp index c9e83cf2bfe..d8887dea5a7 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp +++ b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.cpp @@ -24,10 +24,13 @@ SDCategory: Deadmines EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "deadmines.h" -#include "Spell.h" +#include "GameObject.h" +#include "InstanceScript.h" +#include "Item.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "Spell.h" #include "WorldSession.h" /*##### diff --git a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h index 33abf4b8eee..a2778fb38c0 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h +++ b/src/server/scripts/EasternKingdoms/Deadmines/deadmines.h @@ -18,6 +18,9 @@ #ifndef DEF_DEADMINES_H #define DEF_DEADMINES_H +#include "CreatureAIImpl.h" + +#define DMScriptName "instance_deadmines" #define DataHeader "DM" enum DMCannonState @@ -61,4 +64,10 @@ enum DMInstanceTexts SAY_ALARM2 = 1 }; +template <class AI, class T> +inline AI* GetDeadminesAI(T* obj) +{ + return GetInstanceAI<AI>(obj, DMScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp index 877ffd70a1b..d87274818b1 100644 --- a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp +++ b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp @@ -24,10 +24,13 @@ SDCategory: Deadmines EndScriptData */ #include "ScriptMgr.h" -#include "InstanceScript.h" +#include "CreatureAI.h" #include "deadmines.h" +#include "GameObject.h" +#include "InstanceScript.h" +#include "Map.h" +#include "MotionMaster.h" #include "TemporarySummon.h" -#include "WorldPacket.h" enum Sounds { @@ -45,8 +48,7 @@ enum Misc class instance_deadmines : public InstanceMapScript { public: - instance_deadmines() - : InstanceMapScript("instance_deadmines", 36) + instance_deadmines() : InstanceMapScript(DMScriptName, 36) { } @@ -213,15 +215,15 @@ class instance_deadmines : public InstanceMapScript { switch (type) { - case EVENT_STATE: - if (DefiasCannonGUID && IronCladDoorGUID) - State=data; - break; - case EVENT_RHAHKZOR: - if (data == DONE) - if (GameObject* go = instance->GetGameObject(FactoryDoorGUID)) - go->SetGoState(GO_STATE_ACTIVE); - break; + case EVENT_STATE: + if (DefiasCannonGUID && IronCladDoorGUID) + State = data; + break; + case EVENT_RHAHKZOR: + if (data == DONE) + if (GameObject* go = instance->GetGameObject(FactoryDoorGUID)) + go->SetGoState(GO_STATE_ACTIVE); + break; } } diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp index bf781c171e5..f787da07308 100644 --- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp @@ -23,12 +23,16 @@ SDComment: Some visual effects are not implemented. Script Data End */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" +#include "gnomeregan.h" +#include "InstanceScript.h" +#include "Map.h" +#include "ObjectAccessor.h" +#include "Player.h" #include "ScriptedEscortAI.h" #include "ScriptedGossip.h" #include "SpellScript.h" -#include "Player.h" -#include "gnomeregan.h" +#include "TemporarySummon.h" enum BlastmasterEmi { @@ -87,7 +91,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_blastmaster_emi_shortfuseAI>(creature); + return GetGnomereganAI<npc_blastmaster_emi_shortfuseAI>(creature); } struct npc_blastmaster_emi_shortfuseAI : public npc_escortAI @@ -201,7 +205,7 @@ public: void AggroAllPlayers(Creature* temp) { - Map::PlayerList const &PlList = me->GetMap()->GetPlayers(); + Map::PlayerList const& PlList = me->GetMap()->GetPlayers(); for (Map::PlayerList::const_iterator i = PlList.begin(); i != PlList.end(); ++i) { if (Player* player = i->GetSource()) @@ -304,7 +308,7 @@ public: me->SummonCreature(NPC_CAVERNDEEP_AMBUSHER, SpawnPosition[9], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 1800000); break; case 2: - if (GameObject* go = me->SummonGameObject(183410, -533.140f, -105.322f, -156.016f, 0.f, G3D::Quat(), 1)) + if (GameObject* go = me->SummonGameObject(183410, -533.140f, -105.322f, -156.016f, 0.f, QuaternionData(), 1)) { GoSummonList.push_back(go->GetGUID()); go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); //We can't use it! @@ -319,7 +323,7 @@ public: Talk(SAY_BLASTMASTER_7); break; case 4: - if (GameObject* go = me->SummonGameObject(183410, -542.199f, -96.854f, -155.790f, 0.f, G3D::Quat(), 1)) + if (GameObject* go = me->SummonGameObject(183410, -542.199f, -96.854f, -155.790f, 0.f, QuaternionData(), 1)) { GoSummonList.push_back(go->GetGUID()); go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); @@ -333,7 +337,7 @@ public: me->SummonCreature(NPC_CAVERNDEEP_AMBUSHER, SpawnPosition[14], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 1800000); break; case 6: - if (GameObject* go = me->SummonGameObject(183410, -507.820f, -103.333f, -151.353f, 0.f, G3D::Quat(), 1)) + if (GameObject* go = me->SummonGameObject(183410, -507.820f, -103.333f, -151.353f, 0.f, QuaternionData(), 1)) { GoSummonList.push_back(go->GetGUID()); go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); //We can't use it! @@ -341,7 +345,7 @@ public: } break; case 7: - if (GameObject* go = me->SummonGameObject(183410, -511.829f, -86.249f, -151.431f, 0.f, G3D::Quat(), 1)) + if (GameObject* go = me->SummonGameObject(183410, -511.829f, -86.249f, -151.431f, 0.f, QuaternionData(), 1)) { GoSummonList.push_back(go->GetGUID()); go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); //We can't use it! @@ -353,9 +357,9 @@ public: me->SummonCreature(NPC_CHOMPER, SpawnPosition[16], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 1800000); break; case 9: - me->SummonGameObject(GO_RED_ROCKET, SpawnPosition[17], G3D::Quat(), 7200); - me->SummonGameObject(GO_RED_ROCKET, SpawnPosition[18], G3D::Quat(), 7200); - me->SummonGameObject(GO_RED_ROCKET, SpawnPosition[19], G3D::Quat(), 7200); + me->SummonGameObject(GO_RED_ROCKET, SpawnPosition[17], QuaternionData(), 7200); + me->SummonGameObject(GO_RED_ROCKET, SpawnPosition[18], QuaternionData(), 7200); + me->SummonGameObject(GO_RED_ROCKET, SpawnPosition[19], QuaternionData(), 7200); break; } } @@ -503,7 +507,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_grubbisAI(creature); + return GetGnomereganAI<boss_grubbisAI>(creature); } struct boss_grubbisAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h index 4cf4fcd0a1d..ad64a301e0a 100644 --- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.h @@ -18,6 +18,9 @@ #ifndef DEF_GNOMEREGAN_H #define DEF_GNOMEREGAN_H +#include "CreatureAIImpl.h" + +#define GNOScriptName "instance_gnomeregan" #define DataHeader "GNO" enum GNOGameObjectIds @@ -47,4 +50,10 @@ enum GNOData64 DATA_NPC_BASTMASTER_EMI_SHORTFUSE }; +template <class AI, class T> +inline AI* GetGnomereganAI(T* obj) +{ + return GetInstanceAI<AI>(obj, GNOScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp index 9a8ec451232..2f5f80d0f0d 100644 --- a/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp @@ -16,8 +16,12 @@ */ #include "ScriptMgr.h" -#include "InstanceScript.h" +#include "Creature.h" +#include "GameObject.h" #include "gnomeregan.h" +#include "InstanceScript.h" +#include "Log.h" +#include "Map.h" #include "Player.h" #define MAX_ENCOUNTER 1 @@ -25,7 +29,7 @@ class instance_gnomeregan : public InstanceMapScript { public: - instance_gnomeregan() : InstanceMapScript("instance_gnomeregan", 90) { } + instance_gnomeregan() : InstanceMapScript(GNOScriptName, 90) { } InstanceScript* GetInstanceScript(InstanceMap* map) const override { @@ -47,7 +51,7 @@ public: ObjectGuid uiBastmasterEmiShortfuseGUID; - void Load(const char* in) override + void Load(char const* in) override { if (!in) { diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp index 3c4025084d2..8676bbe9520 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp @@ -16,8 +16,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "karazhan.h" +#include "ScriptedCreature.h" enum CuratorSays { 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 2adb2d445e6..ef9dc5e2e98 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_maiden_of_virtue.cpp @@ -16,8 +16,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "karazhan.h" +#include "ScriptedCreature.h" enum Spells { diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp index 55b089842e0..fa7a27082d8 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp @@ -24,9 +24,11 @@ SDCategory: Karazhan EndScriptData */ #include "ScriptMgr.h" +#include "karazhan.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "ScriptedCreature.h" #include "SpellInfo.h" -#include "karazhan.h" enum Texts { @@ -171,7 +173,7 @@ public: scheduler.Schedule(Seconds(10), Seconds(25), [this](TaskContext task) { Unit* target = nullptr; - ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const& t_list = me->getThreatManager().getThreatList(); std::vector<Unit*> target_list; for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr != t_list.end(); ++itr) @@ -222,7 +224,7 @@ public: std::bind(&BossAI::DoMeleeAttackIfReady, this)); } - void SpellHit(Unit* /*source*/, const SpellInfo* spell) override + void SpellHit(Unit* /*source*/, SpellInfo const* spell) override { if (spell->Mechanic == MECHANIC_DISARM) Talk(SAY_DISARMED); @@ -275,7 +277,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_attumenAI(creature); + return GetKarazhanAI<boss_attumenAI>(creature); } }; @@ -377,7 +379,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_midnightAI(creature); + return GetKarazhanAI<boss_midnightAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp index 1adbbec120f..8b0f5a7a150 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp @@ -24,8 +24,11 @@ SDCategory: Karazhan EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "karazhan.h" +#include "InstanceScript.h" +#include "ObjectAccessor.h" +#include "ScriptedCreature.h" +#include "TemporarySummon.h" enum Yells { @@ -98,7 +101,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_moroesAI>(creature); + return GetKarazhanAI<boss_moroesAI>(creature); } struct boss_moroesAI : public ScriptedAI @@ -381,7 +384,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_baroness_dorothea_millstipeAI>(creature); + return GetKarazhanAI<boss_baroness_dorothea_millstipeAI>(creature); } struct boss_baroness_dorothea_millstipeAI : public boss_moroes_guestAI @@ -452,7 +455,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_baron_rafe_dreugerAI>(creature); + return GetKarazhanAI<boss_baron_rafe_dreugerAI>(creature); } struct boss_baron_rafe_dreugerAI : public boss_moroes_guestAI @@ -517,7 +520,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_lady_catriona_von_indiAI>(creature); + return GetKarazhanAI<boss_lady_catriona_von_indiAI>(creature); } struct boss_lady_catriona_von_indiAI : public boss_moroes_guestAI @@ -595,7 +598,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_lady_keira_berrybuckAI>(creature); + return GetKarazhanAI<boss_lady_keira_berrybuckAI>(creature); } struct boss_lady_keira_berrybuckAI : public boss_moroes_guestAI @@ -677,7 +680,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_lord_robin_darisAI>(creature); + return GetKarazhanAI<boss_lord_robin_darisAI>(creature); } struct boss_lord_robin_darisAI : public boss_moroes_guestAI @@ -741,7 +744,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_lord_crispin_ferenceAI>(creature); + return GetKarazhanAI<boss_lord_crispin_ferenceAI>(creature); } struct boss_lord_crispin_ferenceAI : public boss_moroes_guestAI diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp index d026182fcb5..36777a5670c 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp @@ -24,9 +24,14 @@ SDCategory: Karazhan EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" +#include "InstanceScript.h" #include "karazhan.h" +#include "Map.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "TemporarySummon.h" enum Netherspite { @@ -71,7 +76,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_netherspiteAI>(creature); + return GetKarazhanAI<boss_netherspiteAI>(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 a5c968ce55a..95510202610 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp @@ -16,11 +16,15 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" #include "GameObjectAI.h" -#include "SpellScript.h" -#include "SpellAuraEffects.h" +#include "InstanceScript.h" #include "karazhan.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" +#include "ScriptedCreature.h" +#include "SpellAuraEffects.h" +#include "SpellScript.h" enum NightbaneSpells { @@ -375,7 +379,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_nightbaneAI>(creature); + return GetKarazhanAI<boss_nightbaneAI>(creature); } }; @@ -391,9 +395,7 @@ class spell_rain_of_bones : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_SKELETON)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SUMMON_SKELETON }); } void OnTrigger(AuraEffect const* aurEff) diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp index 3fc3dd1c8f8..e2843844076 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp @@ -24,9 +24,13 @@ SDCategory: Karazhan EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "karazhan.h" +#include "InstanceScript.h" +#include "ObjectAccessor.h" +#include "ScriptedCreature.h" #include "SpellInfo.h" +#include "SpellMgr.h" +#include "TemporarySummon.h" // 18 Coordinates for Infernal spawns struct InfernalPoint @@ -104,13 +108,13 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new netherspite_infernalAI(creature); + return GetKarazhanAI<netherspite_infernalAI>(creature); } struct netherspite_infernalAI : public ScriptedAI { netherspite_infernalAI(Creature* creature) : ScriptedAI(creature), - HellfireTimer(0), CleanupTimer(0), point(NULL) { } + HellfireTimer(0), CleanupTimer(0), point(nullptr) { } uint32 HellfireTimer; uint32 CleanupTimer; @@ -151,7 +155,7 @@ public: creature->AI()->KilledUnit(who); } - void SpellHit(Unit* /*who*/, const SpellInfo* spell) override + void SpellHit(Unit* /*who*/, SpellInfo const* spell) override { if (spell->Id == SPELL_INFERNAL_RELAY) { @@ -179,7 +183,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_malchezaarAI>(creature); + return GetKarazhanAI<boss_malchezaarAI>(creature); } struct boss_malchezaarAI : public ScriptedAI @@ -308,11 +312,11 @@ public: void EnfeebleHealthEffect() { - const SpellInfo* info = sSpellMgr->GetSpellInfo(SPELL_ENFEEBLE_EFFECT); + SpellInfo const* info = sSpellMgr->GetSpellInfo(SPELL_ENFEEBLE_EFFECT); if (!info) return; - ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const& t_list = me->getThreatManager().getThreatList(); std::vector<Unit*> targets; if (t_list.empty()) @@ -356,7 +360,7 @@ public: void SummonInfernal(const uint32 /*diff*/) { - InfernalPoint *point = NULL; + InfernalPoint *point = nullptr; Position pos; if ((me->GetMapId() != 532) || positions.empty()) pos = me->GetRandomNearPosition(60); @@ -524,7 +528,7 @@ public: { if (SWPainTimer <= diff) { - Unit* target = NULL; + Unit* target = nullptr; if (phase == 1) target = me->GetVictim(); // the tank else // anyone but the tank 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 d3a580f5159..0f44933caeb 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp @@ -24,10 +24,13 @@ SDCategory: Karazhan EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "karazhan.h" +#include "InstanceScript.h" #include "GameObject.h" +#include "ObjectAccessor.h" +#include "ScriptedCreature.h" #include "SpellInfo.h" +#include "TemporarySummon.h" enum ShadeOfAran { @@ -86,7 +89,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_aranAI>(creature); + return GetKarazhanAI<boss_aranAI>(creature); } struct boss_aranAI : public ScriptedAI @@ -182,7 +185,7 @@ public: void FlameWreathEffect() { std::vector<Unit*> targets; - ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const& t_list = me->getThreatManager().getThreatList(); if (t_list.empty()) return; @@ -482,7 +485,7 @@ public: DrinkInturrupted = true; } - void SpellHit(Unit* /*pAttacker*/, const SpellInfo* Spell) override + void SpellHit(Unit* /*pAttacker*/, SpellInfo const* Spell) override { //We only care about interrupt effects and only if they are durring a spell currently being cast if ((Spell->Effects[0].Effect != SPELL_EFFECT_INTERRUPT_CAST && @@ -513,7 +516,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new water_elementalAI(creature); + return GetKarazhanAI<water_elementalAI>(creature); } struct water_elementalAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp index d1743771363..37c944500e5 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp @@ -16,9 +16,10 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "karazhan.h" +#include "ObjectAccessor.h" #include "PassiveAI.h" +#include "ScriptedCreature.h" #include "SpellInfo.h" enum TerestianSays diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp index 589fa02f1a2..9a01970f68b 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp @@ -24,11 +24,16 @@ SDCategory: Karazhan EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" +#include "InstanceScript.h" #include "karazhan.h" +#include "Log.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "ScriptedGossip.h" #include "SpellInfo.h" +#include "TemporarySummon.h" /***********************************/ /*** OPERA WIZARD OF OZ EVENT *****/ @@ -118,7 +123,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_dorotheeAI>(creature); + return GetKarazhanAI<boss_dorotheeAI>(creature); } struct boss_dorotheeAI : public ScriptedAI @@ -238,7 +243,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_titoAI(creature); + return GetKarazhanAI<npc_titoAI>(creature); } struct npc_titoAI : public ScriptedAI @@ -312,7 +317,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_strawmanAI>(creature); + return GetKarazhanAI<boss_strawmanAI>(creature); } struct boss_strawmanAI : public ScriptedAI @@ -368,7 +373,7 @@ public: me->DespawnOrUnsummon(); } - void SpellHit(Unit* /*caster*/, const SpellInfo* Spell) override + void SpellHit(Unit* /*caster*/, SpellInfo const* Spell) override { if ((Spell->SchoolMask == SPELL_SCHOOL_MASK_FIRE) && (!(rand32() % 10))) { @@ -432,7 +437,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_tinheadAI>(creature); + return GetKarazhanAI<boss_tinheadAI>(creature); } struct boss_tinheadAI : public ScriptedAI @@ -547,7 +552,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_roarAI>(creature); + return GetKarazhanAI<boss_roarAI>(creature); } struct boss_roarAI : public ScriptedAI @@ -661,7 +666,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_croneAI>(creature); + return GetKarazhanAI<boss_croneAI>(creature); } struct boss_croneAI : public ScriptedAI @@ -745,7 +750,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_cycloneAI(creature); + return GetKarazhanAI<npc_cycloneAI>(creature); } struct npc_cycloneAI : public ScriptedAI @@ -833,7 +838,7 @@ class npc_grandmother : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new npc_grandmotherAI(creature); + return GetKarazhanAI<npc_grandmotherAI>(creature); } }; @@ -844,7 +849,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_bigbadwolfAI>(creature); + return GetKarazhanAI<boss_bigbadwolfAI>(creature); } struct boss_bigbadwolfAI : public ScriptedAI @@ -1043,7 +1048,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_julianneAI>(creature); + return GetKarazhanAI<boss_julianneAI>(creature); } struct boss_julianneAI : public ScriptedAI @@ -1131,7 +1136,7 @@ public: me->DespawnOrUnsummon(); } - void SpellHit(Unit* /*caster*/, const SpellInfo* Spell) override + void SpellHit(Unit* /*caster*/, SpellInfo const* Spell) override { if (Spell->Id == SPELL_DRINK_POISON) { @@ -1164,7 +1169,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_romuloAI>(creature); + return GetKarazhanAI<boss_romuloAI>(creature); } struct boss_romuloAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp index 6e0dd3b1ee5..9daf041e54e 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp @@ -24,8 +24,11 @@ SDCategory: Karazhan EndScriptData */ #include "ScriptMgr.h" +#include "Creature.h" +#include "GameObject.h" #include "InstanceScript.h" #include "karazhan.h" +#include "Map.h" /* 0 - Attumen + Midnight (optional) @@ -52,7 +55,7 @@ const Position OptionalSpawn[] = class instance_karazhan : public InstanceMapScript { public: - instance_karazhan() : InstanceMapScript("instance_karazhan", 532) { } + instance_karazhan() : InstanceMapScript(KZScriptName, 532) { } InstanceScript* GetInstanceScript(InstanceMap* map) const override { @@ -161,7 +164,7 @@ public: HandleGameObject(StageDoorRightGUID, true); if (GameObject* sideEntrance = instance->GetGameObject(SideEntranceDoor)) sideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); - UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, 16812, NULL); + UpdateEncounterStateForKilledCreature(16812, nullptr); } break; case DATA_CHESS: diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp index 09dff7b6f0f..8c5f57e9a8e 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp @@ -29,11 +29,16 @@ npc_image_of_medivh EndContentData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" +#include "InstanceScript.h" #include "karazhan.h" -#include "ScriptedEscortAI.h" +#include "Log.h" +#include "Map.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedEscortAI.h" +#include "ScriptedGossip.h" +#include "TemporarySummon.h" enum Spells { @@ -309,7 +314,7 @@ public: { if (WipeTimer <= diff) { - Map::PlayerList const &PlayerList = me->GetMap()->GetPlayers(); + Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers(); if (PlayerList.isEmpty()) return; @@ -429,7 +434,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_image_of_medivhAI>(creature); + return GetKarazhanAI<npc_image_of_medivhAI>(creature); } struct npc_image_of_medivhAI : public ScriptedAI @@ -566,7 +571,7 @@ public: me->SetVisible(false); me->ClearInCombat(); - InstanceMap::PlayerList const &PlayerList = me->GetMap()->GetPlayers(); + InstanceMap::PlayerList const& PlayerList = me->GetMap()->GetPlayers(); for (InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) { if (i->GetSource()->IsAlive()) @@ -579,7 +584,7 @@ public: } case 15: if (Creature* arca = ObjectAccessor::GetCreature(*me, ArcanagosGUID)) - arca->DealDamage(arca, arca->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); + arca->DealDamage(arca, arca->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false); return 5000; default: return 9999999; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h index c36b99e6e49..e13e108eb4b 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h @@ -19,6 +19,8 @@ #ifndef DEF_KARAZHAN_H #define DEF_KARAZHAN_H +#include "CreatureAIImpl.h" + #define KZScriptName "instance_karazhan" #define DataHeader "KZ" @@ -111,7 +113,7 @@ enum KZMisc OPTIONAL_BOSS_REQUIRED_DEATH_COUNT = 50 }; -template<class AI, class T> +template <class AI, class T> inline AI* GetKarazhanAI(T* obj) { return GetInstanceAI<AI>(obj, KZScriptName); diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp index 11e4fc35fdf..600ab5d379b 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp @@ -24,10 +24,13 @@ SDCategory: Magisters' Terrace EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" +#include "InstanceScript.h" #include "magisters_terrace.h" -#include "WorldPacket.h" -#include "Opcodes.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" +#include "ScriptedCreature.h" +#include "TemporarySummon.h" enum Says { @@ -69,8 +72,6 @@ enum Spells SPELL_POWER_FEEDBACK = 44233 // Stuns him, making him take 50% more damage for 10 seconds. Cast after Gravity Lapse }; - - enum Creatures { CREATURE_PHOENIX = 24674, @@ -96,7 +97,7 @@ public: CreatureAI* GetAI(Creature* c) const override { - return GetInstanceAI<boss_felblood_kaelthasAI>(c); + return GetMagistersTerraceAI<boss_felblood_kaelthasAI>(c); } struct boss_felblood_kaelthasAI : public ScriptedAI @@ -198,7 +199,7 @@ public: if (!summonedUnit) return; - ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const& threatlist = me->getThreatManager().getThreatList(); ThreatContainer::StorageType::const_iterator i = threatlist.begin(); for (i = threatlist.begin(); i != threatlist.end(); ++i) { @@ -251,11 +252,7 @@ public: { // Also needs an exception in spell system. unit->CastSpell(unit, SPELL_GRAVITY_LAPSE_FLY, true, 0, 0, me->GetGUID()); - // Use packet hack - WorldPacket data(SMSG_MOVE_SET_CAN_FLY, 12); - data << unit->GetPackGUID(); - data << uint32(0); - unit->SendMessageToSet(&data, true); + unit->SetCanFly(true); } } } @@ -271,11 +268,7 @@ public: { unit->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_FLY); unit->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_DOT); - - WorldPacket data(SMSG_MOVE_UNSET_CAN_FLY, 12); - data << unit->GetPackGUID(); - data << uint32(0); - unit->SendMessageToSet(&data, true); + unit->SetCanFly(false); } } } @@ -399,7 +392,7 @@ public: for (uint8 i = 0; i < 3; ++i) { - Unit* target = NULL; + Unit* target = nullptr; target = SelectTarget(SELECT_TARGET_RANDOM, 0); Creature* Orb = DoSpawnCreature(CREATURE_ARCANE_SPHERE, 5, 5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000); @@ -438,7 +431,7 @@ public: CreatureAI* GetAI(Creature* c) const override { - return new npc_felkael_flamestrikeAI(c); + return GetMagistersTerraceAI<npc_felkael_flamestrikeAI>(c); } struct npc_felkael_flamestrikeAI : public ScriptedAI @@ -486,7 +479,7 @@ public: CreatureAI* GetAI(Creature* c) const override { - return GetInstanceAI<npc_felkael_phoenixAI>(c); + return GetMagistersTerraceAI<npc_felkael_phoenixAI>(c); } struct npc_felkael_phoenixAI : public ScriptedAI @@ -589,7 +582,7 @@ public: { //spell Burn should possible do this, but it doesn't, so do this for now. uint16 dmg = urand(1650, 2050); - me->DealDamage(me, dmg, 0, DOT, SPELL_SCHOOL_MASK_FIRE, NULL, false); + me->DealDamage(me, dmg, 0, DOT, SPELL_SCHOOL_MASK_FIRE, nullptr, false); BurnTimer += 2000; } BurnTimer -= diff; @@ -605,7 +598,7 @@ public: CreatureAI* GetAI(Creature* c) const override { - return new npc_felkael_phoenix_eggAI(c); + return GetMagistersTerraceAI<npc_felkael_phoenix_eggAI>(c); } struct npc_felkael_phoenix_eggAI : public ScriptedAI @@ -649,7 +642,7 @@ public: CreatureAI* GetAI(Creature* c) const override { - return new npc_arcane_sphereAI(c); + return GetMagistersTerraceAI<npc_arcane_sphereAI>(c); } struct npc_arcane_sphereAI : 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 ca816e8f512..8cddec4b58f 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp @@ -24,8 +24,11 @@ SDCategory: Magister's Terrace EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "magisters_terrace.h" +#include "InstanceScript.h" +#include "ObjectAccessor.h" +#include "ScriptedCreature.h" +#include "TemporarySummon.h" struct Speech { @@ -110,7 +113,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_priestess_delrissaAI>(creature); + return GetMagistersTerraceAI<boss_priestess_delrissaAI>(creature); } struct boss_priestess_delrissaAI : public ScriptedAI @@ -315,7 +318,7 @@ public: if (DispelTimer <= diff) { - Unit* target = NULL; + Unit* target = nullptr; if (urand(0, 1)) target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true); @@ -497,7 +500,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_kagani_nightstrikeAI>(creature); + return GetMagistersTerraceAI<boss_kagani_nightstrikeAI>(creature); } struct boss_kagani_nightstrikeAI : public boss_priestess_lackey_commonAI @@ -609,7 +612,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_ellris_duskhallowAI>(creature); + return GetMagistersTerraceAI<boss_ellris_duskhallowAI>(creature); } struct boss_ellris_duskhallowAI : public boss_priestess_lackey_commonAI @@ -708,7 +711,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_eramas_brightblazeAI>(creature); + return GetMagistersTerraceAI<boss_eramas_brightblazeAI>(creature); } struct boss_eramas_brightblazeAI : public boss_priestess_lackey_commonAI @@ -777,7 +780,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_yazzaiAI>(creature); + return GetMagistersTerraceAI<boss_yazzaiAI>(creature); } struct boss_yazzaiAI : public boss_priestess_lackey_commonAI @@ -871,7 +874,7 @@ public: if (Blink_Timer <= diff) { bool InMeleeRange = false; - ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const& t_list = me->getThreatManager().getThreatList(); for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) { if (Unit* target = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid())) @@ -915,7 +918,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_warlord_salarisAI>(creature); + return GetMagistersTerraceAI<boss_warlord_salarisAI>(creature); } struct boss_warlord_salarisAI : public boss_priestess_lackey_commonAI @@ -965,7 +968,7 @@ public: if (Intercept_Stun_Timer <= diff) { bool InMeleeRange = false; - ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const& t_list = me->getThreatManager().getThreatList(); for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr) { if (Unit* target = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid())) @@ -1043,7 +1046,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_garaxxasAI>(creature); + return GetMagistersTerraceAI<boss_garaxxasAI>(creature); } struct boss_garaxxasAI : public boss_priestess_lackey_commonAI @@ -1159,7 +1162,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_apokoAI>(creature); + return GetMagistersTerraceAI<boss_apokoAI>(creature); } struct boss_apokoAI : public boss_priestess_lackey_commonAI @@ -1256,7 +1259,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_zelfanAI>(creature); + return GetMagistersTerraceAI<boss_zelfanAI>(creature); } struct boss_zelfanAI : public boss_priestess_lackey_commonAI @@ -1349,7 +1352,7 @@ public: //CreatureAI* GetAI(Creature* creature) const override //{ - // return new npc_high_explosive_sheepAI(creature); + // return GetMagistersTerraceAI<npc_high_explosive_sheepAI>(creature); //}; }; */ diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp index 1d738d56984..86592f5677c 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp @@ -16,8 +16,11 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "InstanceScript.h" #include "magisters_terrace.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" +#include "ScriptedCreature.h" enum Says { @@ -263,7 +266,7 @@ class boss_selin_fireheart : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_selin_fireheartAI>(creature); + return GetMagistersTerraceAI<boss_selin_fireheartAI>(creature); }; }; @@ -289,7 +292,7 @@ class npc_fel_crystal : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_fel_crystalAI>(creature); + return GetMagistersTerraceAI<npc_fel_crystalAI>(creature); }; }; diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp index 421c5ac45af..cf45d54cc22 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp @@ -16,8 +16,9 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "magisters_terrace.h" +#include "MotionMaster.h" +#include "ScriptedCreature.h" enum Yells { @@ -182,7 +183,7 @@ class boss_vexallus : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_vexallusAI>(creature); + return GetMagistersTerraceAI<boss_vexallusAI>(creature); }; }; @@ -214,7 +215,7 @@ class npc_pure_energy : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new npc_pure_energyAI(creature); + return GetMagistersTerraceAI<npc_pure_energyAI>(creature); }; }; diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp index d145944bf35..8428762b109 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp @@ -16,10 +16,14 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "EventMap.h" +#include "GameObject.h" #include "InstanceScript.h" #include "magisters_terrace.h" -#include "EventMap.h" +#include "Map.h" +#include "MotionMaster.h" +#include "ScriptedCreature.h" +#include "TemporarySummon.h" /* 0 - Selin Fireheart @@ -43,7 +47,7 @@ Position const KalecgosSpawnPos = { 164.3747f, -397.1197f, 2.151798f, 1.66219f } class instance_magisters_terrace : public InstanceMapScript { public: - instance_magisters_terrace() : InstanceMapScript("instance_magisters_terrace", 585) { } + instance_magisters_terrace() : InstanceMapScript(MGTScriptName, 585) { } struct instance_magisters_terrace_InstanceMapScript : public InstanceScript { @@ -147,10 +151,10 @@ class instance_magisters_terrace : public InstanceMapScript } } - void ProcessEvent(WorldObject* obj, uint32 eventId) override + void ProcessEvent(WorldObject* /*obj*/, uint32 eventId) override { if (eventId == EVENT_SPAWN_KALECGOS) - if (!ObjectAccessor::GetCreature(*obj, KalecgosGUID) && Events.Empty()) + if (!instance->GetCreature(KalecgosGUID) && Events.Empty()) Events.ScheduleEvent(EVENT_SPAWN_KALECGOS, Minutes(1)); } @@ -159,11 +163,13 @@ class instance_magisters_terrace : public InstanceMapScript Events.Update(diff); if (Events.ExecuteEvent() == EVENT_SPAWN_KALECGOS) + { if (Creature* kalecgos = instance->SummonCreature(NPC_KALECGOS, KalecgosSpawnPos)) { kalecgos->GetMotionMaster()->MovePath(PATH_KALECGOS_FLIGHT, false); kalecgos->AI()->Talk(SAY_KALECGOS_SPAWN); } + } } bool SetBossState(uint32 type, EncounterState state) override diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp index 21e90d9a24d..8dd266c5613 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp @@ -28,11 +28,11 @@ npc_kalecgos EndContentData */ #include "ScriptMgr.h" +#include "magisters_terrace.h" +#include "MotionMaster.h" +#include "Player.h" #include "ScriptedCreature.h" #include "ScriptedGossip.h" -#include "Player.h" -#include "magisters_terrace.h" -#include "EventMap.h" /*###### ## npc_kalecgos @@ -155,7 +155,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_kalecgosAI(creature); + return GetMagistersTerraceAI<npc_kalecgosAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h index cfdee423ef1..31716bcd478 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h @@ -19,6 +19,9 @@ #ifndef DEF_MAGISTERS_TERRACE_H #define DEF_MAGISTERS_TERRACE_H +#include "CreatureAIImpl.h" + +#define MGTScriptName "instance_magisters_terrace" #define DataHeader "MT" uint32 const EncounterCount = 4; @@ -74,4 +77,10 @@ enum MTMovementData PATH_KALECGOS_FLIGHT = 248440 }; +template <class AI, class T> +inline AI* GetMagistersTerraceAI(T* obj) +{ + return GetInstanceAI<AI>(obj, MGTScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index c384419db06..630e362957b 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -16,18 +16,21 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" -#include "Vehicle.h" -#include "ObjectMgr.h" -#include "ScriptedEscortAI.h" #include "CombatAI.h" -#include "PassiveAI.h" +#include "CreatureTextMgr.h" +#include "GameObject.h" #include "GameObjectAI.h" +#include "Log.h" +#include "MotionMaster.h" +#include "MoveSplineInit.h" +#include "ObjectAccessor.h" +#include "ObjectMgr.h" +#include "PassiveAI.h" #include "Player.h" +#include "ScriptedEscortAI.h" +#include "ScriptedGossip.h" #include "SpellInfo.h" -#include "CreatureTextMgr.h" -#include "MoveSplineInit.h" +#include "Vehicle.h" /*###### ##Quest 12848 @@ -191,7 +194,7 @@ public: TC_LOG_ERROR("scripts", "npc_unworthy_initiateAI: unable to find anchor!"); float dist = 99.0f; - GameObject* prison = NULL; + GameObject* prison = nullptr; for (uint8 i = 0; i < 12; ++i) { @@ -512,7 +515,7 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_15); } - void SpellHit(Unit* pCaster, const SpellInfo* pSpell) override + void SpellHit(Unit* pCaster, SpellInfo const* pSpell) override { if (!m_bIsDuelInProgress && pSpell->Id == SPELL_DUEL) { @@ -767,7 +770,7 @@ public: return false; } - void SpellHit(Unit* caster, const SpellInfo* spell) override + void SpellHit(Unit* caster, SpellInfo const* spell) override { if (spell->Id == SPELL_DELIVER_STOLEN_HORSE) { @@ -1068,7 +1071,7 @@ class npc_scarlet_miner_cart : public CreatureScript if (apply) { _playerGUID = who->GetGUID(); - me->CastSpell((Unit*)NULL, SPELL_SUMMON_MINER, true); + me->CastSpell((Unit*)nullptr, SPELL_SUMMON_MINER, true); } else { diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp index 8ee7049398e..2378d8ddad2 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp @@ -16,11 +16,13 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedEscortAI.h" +#include "CreatureTextMgr.h" +#include "GameObject.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedEscortAI.h" #include "SpellInfo.h" -#include "CreatureTextMgr.h" //How to win friends and influence enemies // texts signed for creature 28939 but used for 28939, 28940, 28610 @@ -74,7 +76,7 @@ public: me->RestoreFaction(); } - void SpellHit(Unit* caster, const SpellInfo* spell) override + void SpellHit(Unit* caster, SpellInfo const* spell) override { if (spell->Id == SPELL_PERSUASIVE_STRIKE && caster->GetTypeId() == TYPEID_PLAYER && me->IsAlive() && !speechCounter) { @@ -91,7 +93,7 @@ public: me->SetReactState(REACT_PASSIVE); DoCastAOE(SPELL_THREAT_PULSE, true); - sCreatureTextMgr->SendChat(me, SAY_PERSUADE_RAND, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, player); + sCreatureTextMgr->SendChat(me, SAY_PERSUADE_RAND, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, player); Talk(SAY_CRUSADER); } } @@ -134,7 +136,7 @@ public: break; case 5: - sCreatureTextMgr->SendChat(me, SAY_PERSUADED5, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, player); + sCreatureTextMgr->SendChat(me, SAY_PERSUADED5, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, player); speechTimer = 8000; break; diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp index 319ac6b8ad3..bc950388ec7 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp @@ -16,10 +16,14 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" -#include "ScriptedEscortAI.h" +#include "GameObject.h" +#include "Map.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedEscortAI.h" +#include "ScriptedGossip.h" +#include "TemporarySummon.h" #define LESS_MOB // if you do not have a good server and do not want it to be laggy as hell //Light of Dawn @@ -1084,7 +1088,7 @@ public: case 48: // Show the cleansing effect (dawn of light) //if (GameObject* go = me->GetMap()->GetGameObject(uiDawnofLightGUID)) // go->SetPhaseMask(128, true); - me->SummonGameObject(GO_LIGHT_OF_DAWN, 2283.896f, -5287.914f, 83.066f, 0.f, G3D::Quat(), 30); + me->SummonGameObject(GO_LIGHT_OF_DAWN, 2283.896f, -5287.914f, 83.066f, 0.f, QuaternionData(), 30); if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID)) { if (temp->HasAura(SPELL_REBIRTH_OF_THE_ASHBRINGER)) @@ -1262,7 +1266,7 @@ public: // go->SetPhaseMask(0, true); { // search players with in 50 yards for quest credit - Map::PlayerList const &PlayerList = me->GetMap()->GetPlayers(); + Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers(); if (!PlayerList.isEmpty()) { for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) @@ -1494,7 +1498,7 @@ public: void SpawnNPC() { - Unit* temp = NULL; + Unit* temp = nullptr; // Death for (uint8 i = 0; i < ENCOUNTER_GHOUL_NUMBER; ++i) diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp index 6eb25dbd8f0..2adfea2f577 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp @@ -16,9 +16,11 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "MotionMaster.h" #include "PassiveAI.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "TemporarySummon.h" /*#### ## npc_valkyr_battle_maiden @@ -83,7 +85,7 @@ public: { if (FlyBackTimer <= diff) { - Player* player = NULL; + Player* player = nullptr; if (me->IsSummon()) if (Unit* summoner = me->ToTempSummon()->GetSummoner()) player = summoner->ToPlayer(); @@ -129,10 +131,11 @@ public: break; } ++phase; - } else FlyBackTimer-=diff; + } + else + FlyBackTimer -= diff; } }; - }; void AddSC_the_scarlet_enclave() diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp index 697ff3b454e..5dcbf9490ec 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp @@ -24,14 +24,20 @@ SDCategory: Scarlet Monastery EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" #include "GameObjectAI.h" -#include "SpellMgr.h" -#include "scarlet_monastery.h" +#include "Group.h" +#include "InstanceScript.h" #include "LFGMgr.h" +#include "Map.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "Player.h" -#include "Group.h" +#include "scarlet_monastery.h" +#include "ScriptedCreature.h" #include "SpellInfo.h" +#include "SpellMgr.h" +#include "TemporarySummon.h" //this texts are already used by 3975 and 3976 enum Says @@ -96,7 +102,7 @@ enum Spells SPELL_DEATH = 42566 //not correct spell }; -G3D::Vector3 const FlightPoint[]= +Position const FlightPoint[]= { {1754.00f, 1346.00f, 17.50f}, {1765.00f, 1347.00f, 19.00f}, @@ -121,7 +127,7 @@ G3D::Vector3 const FlightPoint[]= {1758.00f, 1367.00f, 19.51f} }; -G3D::Vector3 const Spawn[]= +Position const Spawn[]= { {1776.27f, 1348.74f, 19.20f}, //spawn point for pumpkin shrine mob {1765.28f, 1347.46f, 17.55f} //spawn point for smoke @@ -142,7 +148,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_wisp_invisAI(creature); + return GetScarletMonasteryAI<npc_wisp_invisAI>(creature); } struct npc_wisp_invisAI : public ScriptedAI @@ -183,7 +189,7 @@ public: DoCast(me, _spell); } - void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override + void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override { if (spell->Id == SPELL_WISP_FLIGHT_PORT && Creaturetype == 4) me->SetDisplayId(2027); @@ -221,7 +227,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_headAI(creature); + return GetScarletMonasteryAI<npc_headAI>(creature); } struct npc_headAI : public ScriptedAI @@ -298,7 +304,7 @@ public: } } - void SpellHit(Unit* caster, const SpellInfo* spell) override + void SpellHit(Unit* caster, SpellInfo const* spell) override { if (!withbody) return; @@ -374,7 +380,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_headless_horsemanAI>(creature); + return GetScarletMonasteryAI<boss_headless_horsemanAI>(creature); } struct boss_headless_horsemanAI : public ScriptedAI @@ -473,7 +479,7 @@ public: break; case 1: { - if (Creature* smoke = me->SummonCreature(HELPER, Spawn[1].x, Spawn[1].y, Spawn[1].z, 0, TEMPSUMMON_TIMED_DESPAWN, 20000)) + if (Creature* smoke = me->SummonCreature(HELPER, Spawn[1], TEMPSUMMON_TIMED_DESPAWN, 20000)) ENSURE_AI(npc_wisp_invis::npc_wisp_invisAI, smoke->AI())->SetType(3); DoCast(me, SPELL_RHYME_BIG); break; @@ -536,9 +542,9 @@ public: Player* SelectRandomPlayer(float range = 0.0f, bool checkLoS = true) { - Map::PlayerList const &PlayerList = me->GetMap()->GetPlayers(); + Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers(); if (PlayerList.isEmpty()) - return NULL; + return nullptr; std::list<Player*> temp; for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) @@ -552,10 +558,10 @@ public: advance(j, rand32() % temp.size()); return (*j); } - return NULL; + return nullptr; } - void SpellHitTarget(Unit* unit, const SpellInfo* spell) override + void SpellHitTarget(Unit* unit, SpellInfo const* spell) override { if (spell->Id == SPELL_CONFLAGRATION && unit->HasAura(SPELL_CONFLAGRATION)) SaySound(SAY_CONFLAGRATION, unit); @@ -581,7 +587,7 @@ public: } } - void SpellHit(Unit* caster, const SpellInfo* spell) override + void SpellHit(Unit* caster, SpellInfo const* spell) override { if (withhead) return; @@ -682,7 +688,7 @@ public: { wp_reached = false; me->GetMotionMaster()->Clear(false); - me->GetMotionMaster()->MovePoint(id, FlightPoint[id].x, FlightPoint[id].y, FlightPoint[id].z); + me->GetMotionMaster()->MovePoint(id, FlightPoint[id]); } } } @@ -692,7 +698,7 @@ public: break; if (burn <= diff) { - if (Creature* flame = me->SummonCreature(HELPER, Spawn[0].x, Spawn[0].y, Spawn[0].z, 0, TEMPSUMMON_TIMED_DESPAWN, 17000)) + if (Creature* flame = me->SummonCreature(HELPER, Spawn[0], TEMPSUMMON_TIMED_DESPAWN, 17000)) ENSURE_AI(npc_wisp_invis::npc_wisp_invisAI, flame->AI())->SetType(2); burned = true; } @@ -784,7 +790,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_pulsing_pumpkinAI(creature); + return GetScarletMonasteryAI<npc_pulsing_pumpkinAI>(creature); } struct npc_pulsing_pumpkinAI : public ScriptedAI @@ -820,7 +826,7 @@ public: void EnterCombat(Unit* /*who*/) override { } - void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override + void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override { if (spell->Id == SPELL_SPROUTING) { @@ -900,7 +906,7 @@ class go_loosely_turned_soil : public GameObjectScript return; player->AreaExploredOrEventHappens(11405); - if (Creature* horseman = me->SummonCreature(HH_MOUNTED, FlightPoint[20].x, FlightPoint[20].y, FlightPoint[20].z, 0, TEMPSUMMON_MANUAL_DESPAWN, 0)) + if (Creature* horseman = me->SummonCreature(HH_MOUNTED, FlightPoint[20], TEMPSUMMON_MANUAL_DESPAWN, 0)) { ENSURE_AI(boss_headless_horseman::boss_headless_horsemanAI, horseman->AI())->PlayerGUID = player->GetGUID(); ENSURE_AI(boss_headless_horseman::boss_headless_horsemanAI, horseman->AI())->FlyMode(); diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp index 7d3f0dd941c..509faae7957 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp @@ -24,9 +24,9 @@ SDCategory: Scarlet Monastery EndScriptData */ #include "ScriptMgr.h" +#include "scarlet_monastery.h" #include "ScriptedCreature.h" #include "ScriptedEscortAI.h" -#include "scarlet_monastery.h" enum Says { @@ -146,7 +146,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_scarlet_traineeAI(creature); + return GetScarletMonasteryAI<npc_scarlet_traineeAI>(creature); } struct npc_scarlet_traineeAI : public npc_escortAI diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp index 12e28747256..92db652813a 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp @@ -24,8 +24,9 @@ SDCategory: Scarlet Monastery EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "scarlet_monastery.h" +#include "InstanceScript.h" +#include "ScriptedCreature.h" enum Spells { @@ -44,7 +45,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_high_inquisitor_fairbanksAI>(creature); + return GetScarletMonasteryAI<boss_high_inquisitor_fairbanksAI>(creature); } struct boss_high_inquisitor_fairbanksAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp index 3ec1664ee74..3a68e3a01e5 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp @@ -16,8 +16,8 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "scarlet_monastery.h" +#include "ScriptedCreature.h" enum Yells { diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp index dd2443c12d7..eee97d1a134 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp @@ -16,8 +16,10 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "scarlet_monastery.h" +#include "InstanceScript.h" +#include "ObjectAccessor.h" +#include "ScriptedCreature.h" enum Says { @@ -115,7 +117,7 @@ class boss_interrogator_vishas : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_interrogator_vishasAI>(creature); + return GetScarletMonasteryAI<boss_interrogator_vishasAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp index cea8aa3b600..3f2a149771e 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp @@ -24,8 +24,11 @@ SDCategory: Scarlet Monastery EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "InstanceScript.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "scarlet_monastery.h" +#include "ScriptedCreature.h" #include "SpellInfo.h" enum Says @@ -65,7 +68,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_scarlet_commander_mograineAI>(creature); + return GetScarletMonasteryAI<boss_scarlet_commander_mograineAI>(creature); } struct boss_scarlet_commander_mograineAI : public ScriptedAI @@ -160,7 +163,7 @@ public: } } - void SpellHit(Unit* /*who*/, const SpellInfo* spell) override + void SpellHit(Unit* /*who*/, SpellInfo const* spell) override { //When hit with resurrection say text if (spell->Id == SPELL_SCARLETRESURRECTION) @@ -228,7 +231,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_high_inquisitor_whitemaneAI>(creature); + return GetScarletMonasteryAI<boss_high_inquisitor_whitemaneAI>(creature); } struct boss_high_inquisitor_whitemaneAI : public ScriptedAI @@ -331,7 +334,7 @@ public: //If we are <75% hp cast healing spells at self or Mograine if (Heal_Timer <= diff) { - Creature* target = NULL; + Creature* target = nullptr; if (!HealthAbovePct(75)) target = me; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp index cd07bedc628..bbce3417c02 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp @@ -16,7 +16,10 @@ */ #include "ScriptMgr.h" +#include "Creature.h" +#include "GameObject.h" #include "InstanceScript.h" +#include "Map.h" #include "scarlet_monastery.h" DoorData const doorData[] = @@ -43,26 +46,13 @@ class instance_scarlet_monastery : public InstanceMapScript void OnGameObjectCreate(GameObject* go) override { + InstanceScript::OnGameObjectCreate(go); + switch (go->GetEntry()) { case GO_PUMPKIN_SHRINE: PumpkinShrineGUID = go->GetGUID(); break; - case GO_HIGH_INQUISITORS_DOOR: - AddDoor(go, true); - break; - default: - break; - } - } - - void OnGameObjectRemove(GameObject* go) override - { - switch (go->GetEntry()) - { - case GO_HIGH_INQUISITORS_DOOR: - AddDoor(go, false); - break; default: break; } diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h b/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h index 94db224f4ce..4653303cc21 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/scarlet_monastery.h @@ -18,6 +18,8 @@ #ifndef SCARLET_M_ #define SCARLET_M_ +#include "CreatureAIImpl.h" + #define SMScriptName "instance_scarlet_monastery" #define DataHeader "SM" @@ -60,7 +62,7 @@ enum SMGameObjectIds GO_PUMPKIN_SHRINE = 186267 }; -template<class AI, class T> +template <class AI, class T> inline AI* GetScarletMonasteryAI(T* obj) { return GetInstanceAI<AI>(obj, SMScriptName); diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp index 338aa2f62d0..dee7ea2a950 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp @@ -23,9 +23,15 @@ Category: Scholomance */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" +#include "InstanceScript.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "scholomance.h" +#include "ScriptedCreature.h" +#include "SpellInfo.h" #include "SpellScript.h" +#include "TemporarySummon.h" enum Says { @@ -59,14 +65,14 @@ class boss_darkmaster_gandling : public CreatureScript void Reset() override { _Reset(); - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GATE_GANDLING))) + if (GameObject* gate = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_GATE_GANDLING))) gate->SetGoState(GO_STATE_ACTIVE); } void JustDied(Unit* /*killer*/) override { _JustDied(); - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GATE_GANDLING))) + if (GameObject* gate = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_GATE_GANDLING))) gate->SetGoState(GO_STATE_ACTIVE); } @@ -78,7 +84,7 @@ class boss_darkmaster_gandling : public CreatureScript events.ScheduleEvent(EVENT_CURSE, 2000); events.ScheduleEvent(EVENT_SHADOW_PORTAL, 16000); - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GATE_GANDLING))) + if (GameObject* gate = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_GATE_GANDLING))) gate->SetGoState(GO_STATE_READY); } @@ -131,7 +137,7 @@ class boss_darkmaster_gandling : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_darkmaster_gandlingAI>(creature); + return GetScholomanceAI<boss_darkmaster_gandlingAI>(creature); } }; @@ -165,17 +171,10 @@ class spell_shadow_portal : public SpellScriptLoader { PrepareSpellScript(spell_shadow_portal_SpellScript); - public: - spell_shadow_portal_SpellScript() - { - _instance = nullptr; - } - - private: bool Load() override { _instance = GetCaster()->GetInstanceScript(); - return _instance != nullptr; + return InstanceHasScript(GetCaster(), ScholomanceScriptName); } void HandleCast(SpellEffIndex /*effIndex*/) @@ -232,7 +231,7 @@ class spell_shadow_portal : public SpellScriptLoader OnEffectHitTarget += SpellEffectFn(spell_shadow_portal_SpellScript::HandleCast, EFFECT_0, SPELL_EFFECT_DUMMY); } - InstanceScript* _instance; + InstanceScript* _instance = nullptr; }; SpellScript* GetSpellScript() const override @@ -294,17 +293,10 @@ class spell_shadow_portal_rooms : public SpellScriptLoader { PrepareSpellScript(spell_shadow_portal_rooms_SpellScript); - public: - spell_shadow_portal_rooms_SpellScript() - { - _instance = nullptr; - } - - private: bool Load() override { _instance = GetCaster()->GetInstanceScript(); - return _instance != nullptr; + return InstanceHasScript(GetCaster(), ScholomanceScriptName); } void HandleSendEvent(SpellEffIndex effIndex) @@ -353,7 +345,7 @@ class spell_shadow_portal_rooms : public SpellScriptLoader break; } - if (gate_to_close && (caster->GetMap()->GetId() == 289)) + if (gate_to_close) { for (uint8 i = 0; i < 3; ++i) { @@ -374,7 +366,7 @@ class spell_shadow_portal_rooms : public SpellScriptLoader OnEffectHit += SpellEffectFn(spell_shadow_portal_rooms_SpellScript::HandleSendEvent, EFFECT_1, SPELL_EFFECT_SEND_EVENT); } - InstanceScript* _instance; + InstanceScript* _instance = nullptr; }; SpellScript* GetSpellScript() const override diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp index e1b491e7453..239c042d1d4 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp @@ -24,6 +24,7 @@ SDCategory: Scholomance EndScriptData */ #include "ScriptMgr.h" +#include "scholomance.h" #include "ScriptedCreature.h" class boss_death_knight_darkreaver : public CreatureScript @@ -33,7 +34,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_death_knight_darkreaverAI(creature); + return GetScholomanceAI<boss_death_knight_darkreaverAI>(creature); } struct boss_death_knight_darkreaverAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp index 03a2bf0f293..9eec06cbb33 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp @@ -23,8 +23,8 @@ Category: Scholomance */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "scholomance.h" +#include "ScriptedCreature.h" enum Say { @@ -102,7 +102,7 @@ class boss_doctor_theolen_krastinov : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_theolenkrastinovAI(creature); + return GetScholomanceAI<boss_theolenkrastinovAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp index cb569d2e238..8db6ade664d 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp @@ -23,8 +23,8 @@ Category: Scholomance */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "scholomance.h" +#include "ScriptedCreature.h" enum Spells { @@ -103,7 +103,7 @@ class boss_illucia_barov : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_illuciabarovAI(creature); + return GetScholomanceAI<boss_illuciabarovAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp index e7a3bf99b43..1627fd52c9b 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp @@ -23,8 +23,8 @@ SDCategory: Scholomance EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" #include "scholomance.h" +#include "ScriptedCreature.h" enum Spells { @@ -148,7 +148,7 @@ class boss_instructor_malicia : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_instructormaliciaAI(creature); + return GetScholomanceAI<boss_instructormaliciaAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp index a55ecfe6a84..e4d7140e6f1 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_jandice_barov.cpp @@ -16,6 +16,7 @@ */ #include "ScriptMgr.h" +#include "scholomance.h" #include "ScriptedCreature.h" enum Spells @@ -116,7 +117,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_jandicebarovAI>(creature); + return GetScholomanceAI<boss_jandicebarovAI>(creature); } }; 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 4d7a8e599ab..33ad88e8d9e 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp @@ -16,11 +16,15 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "scholomance.h" -#include "MoveSplineInit.h" +#include "GameObject.h" #include "GameObjectAI.h" +#include "InstanceScript.h" +#include "MotionMaster.h" +#include "MoveSplineInit.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "scholomance.h" +#include "ScriptedCreature.h" enum Says { @@ -98,9 +102,9 @@ class boss_kirtonos_the_herald : public CreatureScript void JustDied(Unit* /*killer*/) override { - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GATE_KIRTONOS))) + if (GameObject* gate = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_GATE_KIRTONOS))) gate->SetGoState(GO_STATE_ACTIVE); - if (GameObject* brazier = me->GetMap()->GetGameObject(instance->GetGuidData(GO_BRAZIER_OF_THE_HERALD))) + if (GameObject* brazier = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_BRAZIER_OF_THE_HERALD))) { brazier->ResetDoorOrButton(); brazier->SetGoState(GO_STATE_READY); @@ -110,9 +114,9 @@ class boss_kirtonos_the_herald : public CreatureScript void EnterEvadeMode(EvadeReason /*why*/) override { - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GATE_KIRTONOS))) + if (GameObject* gate = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_GATE_KIRTONOS))) gate->SetGoState(GO_STATE_ACTIVE); - if (GameObject* brazier = me->GetMap()->GetGameObject(instance->GetGuidData(GO_BRAZIER_OF_THE_HERALD))) + if (GameObject* brazier = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_BRAZIER_OF_THE_HERALD))) { brazier->ResetDoorOrButton(); brazier->SetGoState(GO_STATE_READY); @@ -137,9 +141,7 @@ class boss_kirtonos_the_herald : public CreatureScript void MovementInform(uint32 type, uint32 id) override { if (type == WAYPOINT_MOTION_TYPE && id == POINT_KIRTONOS_LAND) - { events.ScheduleEvent(INTRO_2, 1500); - } } void UpdateAI(uint32 diff) override @@ -160,13 +162,13 @@ class boss_kirtonos_the_herald : public CreatureScript events.ScheduleEvent(INTRO_3, 1000); break; case INTRO_3: - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_GATE_KIRTONOS))) + if (GameObject* gate = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_GATE_KIRTONOS))) gate->SetGoState(GO_STATE_READY); me->SetFacingTo(0.01745329f); events.ScheduleEvent(INTRO_4, 3000); break; case INTRO_4: - if (GameObject* brazier = me->GetMap()->GetGameObject(instance->GetGuidData(GO_BRAZIER_OF_THE_HERALD))) + if (GameObject* brazier = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_BRAZIER_OF_THE_HERALD))) brazier->SetGoState(GO_STATE_READY); me->SetWalk(true); me->SetDisableGravity(false); @@ -256,7 +258,7 @@ class boss_kirtonos_the_herald : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_kirtonos_the_heraldAI>(creature); + return GetScholomanceAI<boss_kirtonos_the_heraldAI>(creature); } }; @@ -295,7 +297,7 @@ class go_brazier_of_the_herald : public GameObjectScript GameObjectAI* GetAI(GameObject* go) const override { - return GetInstanceAI<go_brazier_of_the_heraldAI>(go); + return GetScholomanceAI<go_brazier_of_the_heraldAI>(go); } }; diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp index 121d6b51b42..8ff5fa9ccd3 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kormok.cpp @@ -16,9 +16,9 @@ */ #include "ScriptMgr.h" +#include "scholomance.h" #include "ScriptedCreature.h" #include "SpellScript.h" -#include "scholomance.h" enum Spells { @@ -130,7 +130,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_kormokAI(creature); + return GetScholomanceAI<boss_kormokAI>(creature); } }; @@ -154,10 +154,7 @@ class spell_kormok_summon_bone_mages : SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - for (uint32 i = 0; i < 4; ++i) - if (!sSpellMgr->GetSpellInfo(SummonMageSpells[i])) - return false; - return true; + return ValidateSpellInfo(SummonMageSpells); } void HandleScript(SpellEffIndex effIndex) @@ -191,9 +188,7 @@ class spell_kormok_summon_bone_minions : SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_BONE_MINIONS)) - return false; - return true; + return ValidateSpellInfo({ SPELL_SUMMON_BONE_MINIONS }); } void HandleScript(SpellEffIndex effIndex) diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp index 82feeaf5dd9..b5e64141aa8 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp @@ -22,9 +22,9 @@ SDComment: aura applied/defined in database SDCategory: Scholomance EndScriptData */ +#include "scholomance.h" #include "ScriptMgr.h" #include "ScriptedCreature.h" -#include "scholomance.h" enum Spells { @@ -98,7 +98,7 @@ class boss_lord_alexei_barov : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_lordalexeibarovAI(creature); + return GetScholomanceAI<boss_lordalexeibarovAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp index c162de33a3b..4ffb4591e09 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp @@ -22,9 +22,9 @@ Comment: Category: Scholomance */ +#include "scholomance.h" #include "ScriptMgr.h" #include "ScriptedCreature.h" -#include "scholomance.h" enum Spells { @@ -103,7 +103,7 @@ class boss_lorekeeper_polkelt : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_lorekeeperpolkeltAI(creature); + return GetScholomanceAI<boss_lorekeeperpolkeltAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp index 77244dc7a93..f9994e6a3cf 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp @@ -15,6 +15,7 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include "scholomance.h" #include "ScriptMgr.h" #include "ScriptedCreature.h" @@ -118,7 +119,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_rasfrostAI(creature); + return GetScholomanceAI<boss_rasfrostAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp index d2e54bf433c..75b9dc12ded 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp @@ -22,9 +22,9 @@ Comment: Category: Scholomance */ +#include "scholomance.h" #include "ScriptMgr.h" #include "ScriptedCreature.h" -#include "scholomance.h" enum Spells { @@ -103,7 +103,7 @@ class boss_the_ravenian : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_theravenianAI(creature); + return GetScholomanceAI<boss_theravenianAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp index d24648b6d81..10beaee60ca 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp @@ -15,6 +15,7 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include "scholomance.h" #include "ScriptMgr.h" #include "ScriptedCreature.h" @@ -112,7 +113,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_vectusAI(creature); + return GetScholomanceAI<boss_vectusAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp b/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp index c6c3c6c4d10..984487f3d61 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/instance_scholomance.cpp @@ -16,7 +16,9 @@ */ #include "ScriptMgr.h" +#include "GameObject.h" #include "InstanceScript.h" +#include "Map.h" #include "Player.h" #include "scholomance.h" @@ -25,7 +27,7 @@ Position const GandlingLoc = { 180.7712f, -5.428603f, 75.57024f, 1.291544f }; 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 abe6a7b415a..3b88f54775b 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/scholomance.h +++ b/src/server/scripts/EasternKingdoms/Scholomance/scholomance.h @@ -18,6 +18,9 @@ #ifndef DEF_SCHOLOMANCE_H #define DEF_SCHOLOMANCE_H +#include "CreatureAIImpl.h" + +#define ScholomanceScriptName "instance_scholomance" #define DataHeader "SC" uint32 const EncounterCount = 8; @@ -53,4 +56,10 @@ enum SCGameobjectIds GO_BRAZIER_OF_THE_HERALD = 175564 }; +template <class AI, class T> +inline AI* GetScholomanceAI(T* obj) +{ + return GetInstanceAI<AI>(obj, ScholomanceScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp index 8e4eb61d322..e39bf1d83f3 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp @@ -16,15 +16,17 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" +#include "GridNotifiersImpl.h" +#include "Group.h" +#include "InstanceScript.h" #include "LFGMgr.h" +#include "Map.h" +#include "MotionMaster.h" #include "Player.h" -#include "Group.h" -#include "SpellScript.h" -#include "SpellAuraEffects.h" +#include "ScriptedCreature.h" +#include "ScriptedGossip.h" #include "shadowfang_keep.h" -#include "GridNotifiersImpl.h" +#include "SpellScript.h" enum ApothecarySpells { @@ -275,7 +277,7 @@ class boss_apothecary_hummel : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_apothecary_hummelAI>(creature); + return GetShadowfangKeepAI<boss_apothecary_hummelAI>(creature); } }; @@ -325,7 +327,7 @@ class npc_apothecary_frye : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_apothecary_fryeAI>(creature); + return GetShadowfangKeepAI<npc_apothecary_fryeAI>(creature); } }; @@ -388,7 +390,7 @@ class npc_apothecary_baxter : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_apothecary_baxterAI>(creature); + return GetShadowfangKeepAI<npc_apothecary_baxterAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp index 9e84eb6f59e..9ec2a58f742 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp @@ -23,10 +23,13 @@ SDComment: SDCategory: Shadowfang Keep EndScriptData */ -#include "ScriptedCreature.h" #include "ScriptMgr.h" -#include "InstanceScript.h" #include "shadowfang_keep.h" +#include "GameObject.h" +#include "InstanceScript.h" +#include "Log.h" +#include "Map.h" +#include "ScriptedCreature.h" #include "TemporarySummon.h" #define MAX_ENCOUNTER 4 @@ -69,7 +72,7 @@ const Position SpawnLocation[] = class instance_shadowfang_keep : public InstanceMapScript { public: - instance_shadowfang_keep() : InstanceMapScript("instance_shadowfang_keep", 33) { } + instance_shadowfang_keep() : InstanceMapScript(SFKScriptName, 33) { } InstanceScript* GetInstanceScript(InstanceMap* map) const override { @@ -214,7 +217,7 @@ public: return str_data; } - void Load(const char* in) override + void Load(char const* in) override { if (!in) { diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp index 077a5664b93..86ef68e8c4a 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp @@ -28,13 +28,13 @@ npc_shadowfang_prisoner EndContentData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" -#include "SpellScript.h" -#include "SpellAuraEffects.h" -#include "ScriptedEscortAI.h" #include "shadowfang_keep.h" +#include "InstanceScript.h" #include "Player.h" +#include "ScriptedEscortAI.h" +#include "ScriptedGossip.h" +#include "SpellAuraEffects.h" +#include "SpellScript.h" /*###### ## npc_shadowfang_prisoner @@ -138,7 +138,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_shadowfang_prisonerAI>(creature); + return GetShadowfangKeepAI<npc_shadowfang_prisonerAI>(creature); } }; @@ -149,7 +149,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_arugal_voidwalkerAI>(creature); + return GetShadowfangKeepAI<npc_arugal_voidwalkerAI>(creature); } struct npc_arugal_voidwalkerAI : public ScriptedAI @@ -312,7 +312,7 @@ class boss_archmage_arugal : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_archmage_arugalAI>(creature); + return GetShadowfangKeepAI<boss_archmage_arugalAI>(creature); } }; @@ -333,7 +333,7 @@ class spell_shadowfang_keep_haunting_spirits : public SpellScriptLoader void HandleDummyTick(AuraEffect const* aurEff) { - GetTarget()->CastSpell((Unit*)NULL, aurEff->GetAmount(), true); + GetTarget()->CastSpell((Unit*)nullptr, aurEff->GetAmount(), true); } void HandleUpdatePeriodic(AuraEffect* aurEff) diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h index 7571f6f8fe3..3b2f6a7e105 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h @@ -19,6 +19,9 @@ #ifndef DEF_SHADOWFANG_H #define DEF_SHADOWFANG_H +#include "CreatureAIImpl.h" + +#define SFKScriptName "instance_shadowfang_keep" #define DataHeader "SK" enum SKDataTypes @@ -31,4 +34,10 @@ enum SKDataTypes DATA_APOTHECARY_HUMMEL = 6 }; +template <class AI, class T> +inline AI* GetShadowfangKeepAI(T* obj) +{ + return GetInstanceAI<AI>(obj, SFKScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp index ed8b2cfc853..2110b2b1d77 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_baron_rivendare.cpp @@ -24,6 +24,7 @@ SDCategory: Stratholme EndScriptData */ #include "ScriptMgr.h" +#include "InstanceScript.h" #include "ScriptedCreature.h" #include "stratholme.h" @@ -68,7 +69,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_baron_rivendareAI>(creature); + return GetStratholmeAI<boss_baron_rivendareAI>(creature); } struct boss_baron_rivendareAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp index f44a914121e..241f576260a 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_baroness_anastari.cpp @@ -24,6 +24,7 @@ SDCategory: Stratholme EndScriptData */ #include "ScriptMgr.h" +#include "InstanceScript.h" #include "ScriptedCreature.h" #include "stratholme.h" @@ -42,7 +43,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_baroness_anastariAI>(creature); + return GetStratholmeAI<boss_baroness_anastariAI>(creature); } struct boss_baroness_anastariAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp index 23111e1d0fc..463c6de61bc 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_cannon_master_willey.cpp @@ -25,6 +25,7 @@ EndScriptData */ #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "stratholme.h" //front, left #define ADD_1X 3553.851807f @@ -87,7 +88,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_cannon_master_willeyAI(creature); + return GetStratholmeAI<boss_cannon_master_willeyAI>(creature); } struct boss_cannon_master_willeyAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp index 7fcb5e0ec0b..d1c9532ec85 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_dathrohan_balnazzar.cpp @@ -25,6 +25,7 @@ EndScriptData */ #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "stratholme.h" enum Spells { @@ -76,7 +77,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_dathrohan_balnazzarAI(creature); + return GetStratholmeAI<boss_dathrohan_balnazzarAI>(creature); } struct boss_dathrohan_balnazzarAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp index 389aa1b497d..9c7c39718b8 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_magistrate_barthilas.cpp @@ -48,7 +48,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_magistrate_barthilasAI(creature); + return GetStratholmeAI<boss_magistrate_barthilasAI>(creature); } struct boss_magistrate_barthilasAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp index 768c414a01c..10c2b1327bb 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_maleki_the_pallid.cpp @@ -24,6 +24,7 @@ SDCategory: Stratholme EndScriptData */ #include "ScriptMgr.h" +#include "InstanceScript.h" #include "ScriptedCreature.h" #include "stratholme.h" @@ -117,7 +118,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_maleki_the_pallidAI>(creature); + return GetStratholmeAI<boss_maleki_the_pallidAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp index c38ba7aad1d..ecf0bf7fe00 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_nerubenkan.cpp @@ -24,6 +24,7 @@ SDCategory: Stratholme EndScriptData */ #include "ScriptMgr.h" +#include "InstanceScript.h" #include "ScriptedCreature.h" #include "stratholme.h" @@ -42,7 +43,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_nerubenkanAI>(creature); + return GetStratholmeAI<boss_nerubenkanAI>(creature); } struct boss_nerubenkanAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp index f1052bc16dc..8824367fe4b 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp @@ -24,6 +24,7 @@ SDCategory: Stratholme EndScriptData */ #include "ScriptMgr.h" +#include "InstanceScript.h" #include "ScriptedCreature.h" #include "stratholme.h" #include "Player.h" @@ -58,7 +59,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_silver_hand_bossesAI>(creature); + return GetStratholmeAI<boss_silver_hand_bossesAI>(creature); } struct boss_silver_hand_bossesAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp index 23b2e55c928..373ca3a1bda 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_postmaster_malown.cpp @@ -131,7 +131,7 @@ class boss_postmaster_malown : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_postmaster_malownAI>(creature); + return GetStratholmeAI<boss_postmaster_malownAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp index 51725964ac5..cd7aa959c9e 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_ramstein_the_gorger.cpp @@ -24,8 +24,10 @@ SDCategory: Stratholme EndScriptData */ #include "ScriptMgr.h" +#include "InstanceScript.h" #include "ScriptedCreature.h" #include "stratholme.h" +#include "TemporarySummon.h" enum Spells { @@ -45,7 +47,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_ramstein_the_gorgerAI>(creature); + return GetStratholmeAI<boss_ramstein_the_gorgerAI>(creature); } struct boss_ramstein_the_gorgerAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp index 6508c527cc0..473fc9b9048 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_timmy_the_cruel.cpp @@ -25,6 +25,7 @@ EndScriptData */ #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "stratholme.h" enum Says { @@ -43,7 +44,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new boss_timmy_the_cruelAI(creature); + return GetStratholmeAI<boss_timmy_the_cruelAI>(creature); } struct boss_timmy_the_cruelAI : public ScriptedAI diff --git a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp index e0edf1d189c..f55ed325148 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/instance_stratholme.cpp @@ -24,10 +24,14 @@ SDCategory: Stratholme EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "Creature.h" +#include "EventMap.h" +#include "GameObject.h" #include "InstanceScript.h" -#include "stratholme.h" +#include "Log.h" +#include "Map.h" #include "Player.h" +#include "stratholme.h" enum Misc { @@ -43,7 +47,7 @@ enum InstanceEvents class instance_stratholme : public InstanceMapScript { public: - instance_stratholme() : InstanceMapScript("instance_stratholme", 329) { } + instance_stratholme() : InstanceMapScript(StratholmeScriptName, 329) { } struct instance_stratholme_InstanceMapScript : public InstanceScript { @@ -349,7 +353,7 @@ class instance_stratholme : public InstanceMapScript return saveStream.str(); } - void Load(const char* in) override + void Load(char const* in) override { if (!in) { diff --git a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp index 7ce650779de..02cb2e71667 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp @@ -31,12 +31,16 @@ npc_spectral_ghostly_citizen EndContentData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" #include "GameObjectAI.h" -#include "stratholme.h" #include "Group.h" +#include "InstanceScript.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedCreature.h" #include "SpellInfo.h" +#include "stratholme.h" /*###### ## go_gauntlet_gate (this is the _first_ of the gauntlet gates, two exist) @@ -84,7 +88,7 @@ class go_gauntlet_gate : public GameObjectScript GameObjectAI* GetAI(GameObject* go) const override { - return GetInstanceAI<go_gauntlet_gateAI>(go); + return GetStratholmeAI<go_gauntlet_gateAI>(go); } }; @@ -113,7 +117,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_restless_soulAI(creature); + return GetStratholmeAI<npc_restless_soulAI>(creature); } struct npc_restless_soulAI : public ScriptedAI @@ -141,7 +145,7 @@ public: void EnterCombat(Unit* /*who*/) override { } - void SpellHit(Unit* caster, const SpellInfo* spell) override + void SpellHit(Unit* caster, SpellInfo const* spell) override { if (Tagged || spell->Id != SPELL_EGAN_BLASTER) return; @@ -206,7 +210,7 @@ public: CreatureAI* GetAI(Creature* creature) const override { - return new npc_spectral_ghostly_citizenAI(creature); + return GetStratholmeAI<npc_spectral_ghostly_citizenAI>(creature); } struct npc_spectral_ghostly_citizenAI : public ScriptedAI @@ -232,7 +236,7 @@ public: void EnterCombat(Unit* /*who*/) override { } - void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override + void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override { if (!Tagged && spell->Id == SPELL_EGAN_BLASTER) Tagged = true; diff --git a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.h b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.h index dd98843e6b5..e30d6feecdc 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.h +++ b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.h @@ -19,6 +19,9 @@ #ifndef DEF_STRATHOLME_H #define DEF_STRATHOLME_H +#include "CreatureAIImpl.h" + +#define StratholmeScriptName "instance_stratholme" #define DataHeader "STR" enum STRDataTypes @@ -81,4 +84,10 @@ enum STRSpellIds SPELL_BARON_ULTIMATUM = 27861 }; +template <class AI, class T> +inline AI* GetStratholmeAI(T* obj) +{ + return GetInstanceAI<AI>(obj, StratholmeScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp b/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp index 396d3f0c004..74d00fbc3ee 100644 --- a/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp +++ b/src/server/scripts/EasternKingdoms/SunkenTemple/instance_sunken_temple.cpp @@ -24,7 +24,9 @@ SDCategory: Sunken Temple EndScriptData */ #include "ScriptMgr.h" +#include "GameObject.h" #include "InstanceScript.h" +#include "Map.h" #include "sunken_temple.h" enum Gameobject @@ -59,7 +61,7 @@ static Position const statuePositions[nStatues] class instance_sunken_temple : public InstanceMapScript { public: - instance_sunken_temple() : InstanceMapScript("instance_sunken_temple", 109) { } + instance_sunken_temple() : InstanceMapScript(STScriptName, 109) { } InstanceScript* GetInstanceScript(InstanceMap* map) const override { @@ -176,14 +178,14 @@ public: void UseStatue(GameObject* go) { - go->SummonGameObject(GO_ATALAI_LIGHT1, *go, G3D::Quat(), 0); + go->SummonGameObject(GO_ATALAI_LIGHT1, *go, QuaternionData(), 0); go->SetUInt32Value(GAMEOBJECT_FLAGS, 4); } void UseLastStatue(GameObject* go) { for (uint8 i = 0; i < nStatues; ++i) - go->SummonGameObject(GO_ATALAI_LIGHT2, statuePositions[i], G3D::Quat(), 0); + go->SummonGameObject(GO_ATALAI_LIGHT2, statuePositions[i], QuaternionData(), 0); go->SummonCreature(NPC_ATALALARION, atalalarianPos, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 7200); } diff --git a/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp b/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp index a39f636ee86..f896f7ba17a 100644 --- a/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp +++ b/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.cpp @@ -28,10 +28,13 @@ at_malfurion_Stormrage_trigger EndContentData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" #include "GameObjectAI.h" -#include "sunken_temple.h" +#include "InstanceScript.h" +#include "Map.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "sunken_temple.h" /*##### # at_malfurion_Stormrage_trigger @@ -49,7 +52,7 @@ class at_malfurion_stormrage : public AreaTriggerScript public: at_malfurion_stormrage() : AreaTriggerScript("at_malfurion_stormrage") { } - bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) override + bool OnTrigger(Player* player, AreaTriggerEntry const* /*at*/) override { if (player->GetInstanceScript() && !player->FindNearestCreature(NPC_MALFURION_STORMRAGE, 15.0f) && player->GetQuestStatus(QUEST_THE_CHARGE_OF_DRAGONFLIGHTS) == QUEST_STATUS_REWARDED && player->GetQuestStatus(QUEST_ERANIKUS_TYRANT_OF_DREAMS) != QUEST_STATUS_REWARDED) @@ -82,7 +85,7 @@ class go_atalai_statue : public GameObjectScript GameObjectAI* GetAI(GameObject* go) const override { - return GetInstanceAI<go_atalai_statueAI>(go); + return GetSunkenTempleAI<go_atalai_statueAI>(go); } }; diff --git a/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.h b/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.h index c6c2f087850..f2687c5de68 100644 --- a/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.h +++ b/src/server/scripts/EasternKingdoms/SunkenTemple/sunken_temple.h @@ -19,6 +19,9 @@ #ifndef DEF_SUNKEN_TEMPLE_H #define DEF_SUNKEN_TEMPLE_H +#include "CreatureAIImpl.h" + +#define STScriptName "instance_sunken_temple" #define DataHeader "ST" enum STEvents @@ -26,4 +29,10 @@ enum STEvents EVENT_STATE = 1 }; +template <class AI, class T> +inline AI* GetSunkenTempleAI(T* obj) +{ + return GetInstanceAI<AI>(obj, STScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp index 924d00169c8..66ef84c2273 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp @@ -23,6 +23,8 @@ SDComment: Find a way to start the intro, best code for the intro EndScriptData */ #include "ScriptMgr.h" +#include "InstanceScript.h" +#include "Log.h" #include "ScriptedCreature.h" #include "sunwell_plateau.h" diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp index 195fc2bf0a9..51aad495c37 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp @@ -16,9 +16,10 @@ */ #include "ScriptMgr.h" +#include "InstanceScript.h" #include "ScriptedCreature.h" -#include "sunwell_plateau.h" #include "SpellInfo.h" +#include "sunwell_plateau.h" enum Quotes { @@ -160,7 +161,7 @@ public: me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); } - void SpellHitTarget(Unit* target, const SpellInfo* spell) override + void SpellHitTarget(Unit* target, SpellInfo const* spell) override { switch (spell->Id) { @@ -266,8 +267,8 @@ public: if (ShadowimageTimer <= diff) { - Unit* target = NULL; - Creature* temp = NULL; + Unit* target = nullptr; + Creature* temp = nullptr; for (uint8 i = 0; i<3; ++i) { target = SelectTarget(SELECT_TARGET_RANDOM, 0); @@ -436,7 +437,7 @@ public: me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); } - void SpellHitTarget(Unit* target, const SpellInfo* spell) override + void SpellHitTarget(Unit* target, SpellInfo const* spell) override { switch (spell->Id) { @@ -673,7 +674,7 @@ public: void EnterCombat(Unit* /*who*/) override { } - void SpellHitTarget(Unit* target, const SpellInfo* spell) override + void SpellHitTarget(Unit* target, SpellInfo const* spell) override { switch (spell->Id) { diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp index aa5720bef4e..045f6d956bb 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp @@ -22,12 +22,14 @@ SDComment: EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "GridNotifiers.h" -#include "GridNotifiersImpl.h" -#include "Cell.h" #include "CellImpl.h" +#include "GridNotifiersImpl.h" +#include "InstanceScript.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" +#include "ScriptedCreature.h" #include "sunwell_plateau.h" +#include "TemporarySummon.h" enum Yells { @@ -196,7 +198,7 @@ public: instance->SetBossState(DATA_FELMYST, DONE); } - void SpellHit(Unit* caster, const SpellInfo* spell) override + void SpellHit(Unit* caster, SpellInfo const* spell) override { // workaround for linked aura /*if (spell->Id == SPELL_VAPOR_FORCE) @@ -215,7 +217,7 @@ public: summon->CastSpell(summon, SPELL_FOG_CHARM, true); summon->CastSpell(summon, SPELL_FOG_CHARM2, true); } - me->DealDamage(caster, caster->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); + me->DealDamage(caster, caster->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false); } } @@ -360,7 +362,7 @@ public: } case 6: me->SetFacingTo(me->GetAngle(breathX, breathY)); - //DoTextEmote("takes a deep breath.", NULL); + //DoTextEmote("takes a deep breath.", nullptr); events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 10000); break; case 7: diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp index 83c8281a036..f6c02074774 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp @@ -24,10 +24,17 @@ SDCategory: Sunwell_Plateau EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" #include "GameObjectAI.h" -#include "sunwell_plateau.h" +#include "InstanceScript.h" +#include "Log.h" +#include "Map.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "sunwell_plateau.h" +#include "TemporarySummon.h" #include "WorldSession.h" enum Yells @@ -548,7 +555,7 @@ public: { #if MAX_PLAYERS_IN_SPECTRAL_REALM > 0 uint8 SpectralPlayers = 0; - Map::PlayerList const &PlayerList = go->GetMap()->GetPlayers(); + Map::PlayerList const& PlayerList = go->GetMap()->GetPlayers(); for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) { if (i->GetSource() && i->GetSource()->GetPositionZ() < DEMON_REALM_Z + 5) @@ -685,7 +692,7 @@ public: void TeleportAllPlayersBack() { - Map::PlayerList const &playerList = me->GetMap()->GetPlayers(); + Map::PlayerList const& playerList = me->GetMap()->GetPlayers(); Position const& homePos = me->GetHomePosition(); for (Map::PlayerList::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr) { diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index 08bd7809f8e..4e841a82e14 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -25,11 +25,16 @@ EndScriptData */ /// @todo rewrite Armageddon #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" #include "GameObjectAI.h" -#include "sunwell_plateau.h" -#include <math.h> +#include "InstanceScript.h" +#include "Log.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "sunwell_plateau.h" +#include "TemporarySummon.h" /*** Speech and sounds***/ enum Yells @@ -280,7 +285,7 @@ public: return ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4)); } - return NULL; + return nullptr; } void ResetOrbs() @@ -701,7 +706,7 @@ public: case TIMER_SPEECH: if (SpeechBegins) { - SpeechBegins=false; + SpeechBegins = false; switch (Phase) { case PHASE_NORMAL: @@ -744,7 +749,7 @@ public: case TIMER_LEGION_LIGHTNING: if (!me->IsNonMeleeSpellCast(false)) { - Unit* pRandomPlayer = NULL; + Unit* pRandomPlayer = nullptr; me->RemoveAurasDueToSpell(SPELL_SOUL_FLAY); for (uint8 z = 0; z < 6; ++z) @@ -839,7 +844,7 @@ public: TimerIsDeactivated[TIMER_ORBS_EMPOWER] = true; break; case TIMER_ARMAGEDDON: //Phase 4 - Unit* target = NULL; + Unit* target = nullptr; for (uint8 z = 0; z < 6; ++z) { target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true); @@ -987,7 +992,7 @@ public: { if (Creature* pPortal = DoSpawnCreature(NPC_FELFIRE_PORTAL, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 20000)) { - ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList(); + ThreatContainer::StorageType const& threatlist = me->getThreatManager().getThreatList(); for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid()); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index fed97fc8488..f0bcb9dd3de 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -16,10 +16,12 @@ */ #include "ScriptMgr.h" +#include "InstanceScript.h" +#include "ObjectAccessor.h" #include "ScriptedCreature.h" -#include "sunwell_plateau.h" +#include "SpellAuras.h" #include "SpellScript.h" -#include "SpellAuraEffects.h" +#include "sunwell_plateau.h" enum Spells { @@ -581,10 +583,7 @@ class spell_summon_blood_elves_script : SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - for (uint8 i = 0; i < MAX_SUMMON_BLOOD_ELVES; ++i) - if (!sSpellMgr->GetSpellInfo(SummonBloodElvesSpells[i])) - return false; - return true; + return ValidateSpellInfo(SummonBloodElvesSpells); } void HandleScript(SpellEffIndex /*effIndex*/) @@ -616,10 +615,7 @@ class spell_muru_darkness : SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - for (uint8 i = 0; i < MAX_SUMMON_DARK_FIEND; ++i) - if (!sSpellMgr->GetSpellInfo(SummonDarkFiendSpells[i])) - return false; - return true; + return ValidateSpellInfo(SummonDarkFiendSpells); } void HandleAfterCast() diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp index 17325e9e00f..6b3c2b1bcaf 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/instance_sunwell_plateau.cpp @@ -17,6 +17,8 @@ #include "ScriptMgr.h" #include "InstanceScript.h" +#include "Log.h" +#include "Map.h" #include "Player.h" #include "sunwell_plateau.h" @@ -89,7 +91,7 @@ class instance_sunwell_plateau : public InstanceMapScript else TC_LOG_DEBUG("scripts", "Instance Sunwell Plateau: GetPlayerInMap, but PlayerList is empty!"); - return NULL; + return nullptr; } ObjectGuid GetGuidData(uint32 id) const override diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h b/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h index a25ed5b0ca2..cec43582958 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/sunwell_plateau.h @@ -18,6 +18,8 @@ #ifndef SUNWELL_PLATEAU_H #define SUNWELL_PLATEAU_H +#include "CreatureAIImpl.h" + #define SunwellPlateauScriptName "instance_sunwell_plateau" #define DataHeader "SWP" @@ -112,7 +114,7 @@ enum SWPGameObjectIds GO_MURUS_GATE_2 = 188118 }; -template<class AI, class T> +template <class AI, class T> AI* GetSunwellPlateauAI(T* obj) { return GetInstanceAI<AI>(obj, SunwellPlateauScriptName); diff --git a/src/server/scripts/EasternKingdoms/TheStockade/instance_the_stockade.cpp b/src/server/scripts/EasternKingdoms/TheStockade/instance_the_stockade.cpp index 822737dad87..c222f395a50 100644 --- a/src/server/scripts/EasternKingdoms/TheStockade/instance_the_stockade.cpp +++ b/src/server/scripts/EasternKingdoms/TheStockade/instance_the_stockade.cpp @@ -24,6 +24,7 @@ gets instead the deserter debuff. #include "ScriptMgr.h" #include "InstanceScript.h" +#include "Map.h" class instance_the_stockade : public InstanceMapScript { diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp index af8ef8f4f39..c96d86aff57 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp @@ -27,10 +27,14 @@ On his death the vault door opens. EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" #include "GameObjectAI.h" -#include "uldaman.h" +#include "InstanceScript.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "SpellInfo.h" +#include "uldaman.h" enum Says { @@ -125,10 +129,10 @@ class boss_archaedas : public CreatureScript me->SetControlled(false, UNIT_STATE_ROOT); } - void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override + void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override { // Being woken up from the altar, start the awaken sequence - if (spell == sSpellMgr->GetSpellInfo(SPELL_ARCHAEDAS_AWAKEN)) + if (spell->Id == SPELL_ARCHAEDAS_AWAKEN) { Talk(SAY_AGGRO); iAwakenTimer = 4000; @@ -212,7 +216,7 @@ class boss_archaedas : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_archaedasAI>(creature); + return GetUldamanAI<boss_archaedasAI>(creature); } }; @@ -276,10 +280,10 @@ class npc_archaedas_minions : public CreatureScript bAmIAwake = true; } - void SpellHit(Unit * /*caster*/, const SpellInfo* spell) override + void SpellHit(Unit * /*caster*/, SpellInfo const* spell) override { // time to wake up, start animation - if (spell == sSpellMgr->GetSpellInfo(SPELL_ARCHAEDAS_AWAKEN)) + if (spell->Id == SPELL_ARCHAEDAS_AWAKEN) { iAwakenTimer = 5000; bWakingUp = true; @@ -318,7 +322,7 @@ class npc_archaedas_minions : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_archaedas_minionsAI>(creature); + return GetUldamanAI<npc_archaedas_minionsAI>(creature); } }; @@ -381,7 +385,7 @@ class npc_stonekeepers : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_stonekeepersAI>(creature); + return GetUldamanAI<npc_stonekeepersAI>(creature); } }; @@ -414,7 +418,7 @@ class go_altar_of_archaedas : public GameObjectScript GameObjectAI* GetAI(GameObject* go) const override { - return GetInstanceAI<go_altar_of_archaedasAI>(go); + return GetUldamanAI<go_altar_of_archaedasAI>(go); } }; diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp index 98b94e09c70..5a17339b4de 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_ironaya.cpp @@ -25,6 +25,7 @@ EndScriptData */ #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "uldaman.h" enum Ironaya { @@ -110,7 +111,7 @@ class boss_ironaya : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_ironayaAI(creature); + return GetUldamanAI<boss_ironayaAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp index 360794facf6..a72acba44b3 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp @@ -24,8 +24,14 @@ SDCategory: Uldaman EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "Creature.h" +#include "CreatureAI.h" +#include "GameObject.h" #include "InstanceScript.h" +#include "Log.h" +#include "Map.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "uldaman.h" enum Spells @@ -51,7 +57,7 @@ const Position IronayaPoint = { -231.228f, 246.6135f, -49.01617f, 0.0f }; class instance_uldaman : public InstanceMapScript { public: - instance_uldaman() : InstanceMapScript("instance_uldaman", 70) { } + instance_uldaman() : InstanceMapScript(UldamanScriptName, 70) { } struct instance_uldaman_InstanceMapScript : public InstanceScript { @@ -416,7 +422,7 @@ class instance_uldaman : public InstanceMapScript return str_data; } - void Load(const char* in) override + void Load(char const* in) override { if (!in) { diff --git a/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp index 14fb5a06d43..9c84b399e43 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.cpp @@ -30,10 +30,12 @@ at_map_chamber EndContentData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" #include "GameObjectAI.h" -#include "uldaman.h" +#include "InstanceScript.h" #include "Player.h" +#include "ScriptedCreature.h" +#include "uldaman.h" /*###### ## npc_jadespine_basilisk @@ -107,7 +109,7 @@ class npc_jadespine_basilisk : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new npc_jadespine_basiliskAI(creature); + return GetUldamanAI<npc_jadespine_basiliskAI>(creature); } }; @@ -135,7 +137,7 @@ class go_keystone_chamber : public GameObjectScript GameObjectAI* GetAI(GameObject* go) const override { - return GetInstanceAI<go_keystone_chamberAI>(go); + return GetUldamanAI<go_keystone_chamberAI>(go); } }; diff --git a/src/server/scripts/EasternKingdoms/Uldaman/uldaman.h b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.h index 0578da35895..d81793cf61c 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/uldaman.h +++ b/src/server/scripts/EasternKingdoms/Uldaman/uldaman.h @@ -19,6 +19,9 @@ #ifndef DEF_ULDAMAN_H #define DEF_ULDAMAN_H +#include "CreatureAIImpl.h" + +#define UldamanScriptName "instance_uldaman" #define DataHeader "UD" #define MAX_ENCOUNTER 3 @@ -42,4 +45,10 @@ enum UDGameObjectIds GO_KEYSTONE = 124371, }; +template <class AI, class T> +inline AI* GetUldamanAI(T* obj) +{ + return GetInstanceAI<AI>(obj, UldamanScriptName); +} + #endif diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp index 1ab0ea8908c..f1b6c993a41 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp @@ -26,13 +26,14 @@ SQLUpdate: EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "GridNotifiers.h" -#include "GridNotifiersImpl.h" -#include "Cell.h" #include "CellImpl.h" -#include "zulaman.h" +#include "GridNotifiersImpl.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" +#include "ScriptedCreature.h" +#include "TemporarySummon.h" #include "Weather.h" +#include "zulaman.h" enum Spells { @@ -170,7 +171,7 @@ class boss_akilzon : public CreatureScript if (Unit* target = (*i)) { if (Cloud && !Cloud->IsWithinDist(target, 6, false)) - Cloud->CastCustomSpell(target, SPELL_ZAP, &bp0, NULL, NULL, true, 0, 0, me->GetGUID()); + Cloud->CastCustomSpell(target, SPELL_ZAP, &bp0, nullptr, nullptr, true, 0, 0, me->GetGUID()); } } @@ -189,7 +190,7 @@ class boss_akilzon : public CreatureScript trigger->SetHealth(100000); trigger->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); if (Cloud) - Cloud->CastCustomSpell(trigger, /*43661*/SPELL_ZAP, &bp0, NULL, NULL, true, 0, 0, Cloud->GetGUID()); + Cloud->CastCustomSpell(trigger, /*43661*/SPELL_ZAP, &bp0, nullptr, nullptr, true, 0, 0, Cloud->GetGUID()); } } } @@ -203,7 +204,7 @@ class boss_akilzon : public CreatureScript me->InterruptNonMeleeSpells(false); CloudGUID.Clear(); if (Cloud) - Cloud->DealDamage(Cloud, Cloud->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); + Cloud->DealDamage(Cloud, Cloud->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false); SetWeather(WEATHER_STATE_FINE, 0.0f); isRaining = false; } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp index 618190f750c..9443c9a9e6a 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp @@ -17,9 +17,11 @@ */ #include "ScriptMgr.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "ScriptedCreature.h" -#include "zulaman.h" #include "SpellInfo.h" +#include "zulaman.h" enum Spells { @@ -134,7 +136,7 @@ class boss_halazzi : public CreatureScript damage = 0; } - void SpellHit(Unit*, const SpellInfo* spell) override + void SpellHit(Unit*, SpellInfo const* spell) override { if (spell->Id == SPELL_TRANSFORM_SPLIT2) EnterPhase(PHASE_HUMAN); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp index 95600a06d36..ead3781d89b 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp @@ -24,9 +24,12 @@ SDCategory: Zul'Aman EndScriptData */ #include "ScriptMgr.h" +#include "InstanceScript.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "ScriptedCreature.h" #include "SpellScript.h" -#include "SpellAuraEffects.h" +#include "TemporarySummon.h" #include "zulaman.h" enum Yells @@ -328,7 +331,7 @@ class boss_hexlord_malacrass : public CreatureScript { Unit* Temp = ObjectAccessor::GetUnit(*me, AddGUID[i]); if (Temp && Temp->IsAlive()) - Temp->DealDamage(Temp, Temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); + Temp->DealDamage(Temp, Temp->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false); } } @@ -471,7 +474,7 @@ class boss_hexlord_malacrass : public CreatureScript void UseAbility() { uint8 random = urand(0, 2); - Unit* target = NULL; + Unit* target = nullptr; switch (PlayerAbility[PlayerClass][random].target) { case ABILITY_TARGET_SELF: @@ -1015,15 +1018,13 @@ class spell_hexlord_unstable_affliction : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_WL_UNSTABLE_AFFL_DISPEL)) - return false; - return true; + return ValidateSpellInfo({ SPELL_WL_UNSTABLE_AFFL_DISPEL }); } void HandleDispel(DispelInfo* dispelInfo) { if (Unit* caster = GetCaster()) - caster->CastSpell(dispelInfo->GetDispeller(), SPELL_WL_UNSTABLE_AFFL_DISPEL, true, NULL, GetEffect(EFFECT_0)); + caster->CastSpell(dispelInfo->GetDispeller(), SPELL_WL_UNSTABLE_AFFL_DISPEL, true, nullptr, GetEffect(EFFECT_0)); } void Register() override diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp index 91978d052ad..90c0516da52 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp @@ -24,10 +24,14 @@ SDCategory: Zul'Aman EndScriptData */ #include "ScriptMgr.h" +#include "CellImpl.h" +#include "GridNotifiers.h" +#include "InstanceScript.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "ScriptedCreature.h" +#include "TemporarySummon.h" #include "zulaman.h" -#include "GridNotifiers.h" -#include "CellImpl.h" enum Yells { @@ -194,7 +198,7 @@ class boss_janalai : public CreatureScript void FireWall() { uint8 WallNum; - Creature* wall = NULL; + Creature* wall = nullptr; for (uint8 i = 0; i < 4; ++i) { if (i == 0 || i == 2) @@ -366,7 +370,7 @@ class boss_janalai : public CreatureScript if (!map->IsDungeon()) return; - Map::PlayerList const &PlayerList = map->GetPlayers(); + Map::PlayerList const& PlayerList = map->GetPlayers(); for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) if (Player* i_pl = i->GetSource()) if (i_pl->IsAlive()) @@ -441,7 +445,7 @@ class npc_janalai_firebomb : public CreatureScript void Reset() override { } - void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override + void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override { if (spell->Id == SPELL_FIRE_BOMB_THROW) DoCast(me, SPELL_FIRE_BOMB_DUMMY, true); @@ -667,7 +671,7 @@ class npc_janalai_egg : public CreatureScript void UpdateAI(uint32 /*diff*/) override { } - void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override + void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override { if (spell->Id == SPELL_HATCH_EGG) DoCast(SPELL_SUMMON_HATCHLING); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp index e2acc47d651..559390fece3 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp @@ -24,11 +24,11 @@ SDCategory: Zul'Aman EndScriptData */ #include "ScriptMgr.h" +#include "CellImpl.h" +#include "GridNotifiersImpl.h" +#include "MotionMaster.h" #include "ScriptedCreature.h" #include "zulaman.h" -#include "GridNotifiers.h" -#include "GridNotifiersImpl.h" -#include "CellImpl.h" enum Yells { diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp index 10d0772932c..1ebecc41b4b 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp @@ -23,9 +23,12 @@ SDComment: EndScriptData */ #include "ScriptMgr.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "ScriptedCreature.h" -#include "zulaman.h" #include "SpellInfo.h" +#include "TemporarySummon.h" +#include "zulaman.h" enum Says { @@ -580,7 +583,7 @@ class npc_zuljin_vortex : public CreatureScript void EnterCombat(Unit* /*target*/) override { } - void SpellHit(Unit* caster, const SpellInfo* spell) override + void SpellHit(Unit* caster, SpellInfo const* spell) override { if (spell->Id == SPELL_ZAP_INFORM) DoCast(caster, SPELL_ZAP_DAMAGE, true); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp index f0eb8ef7911..0c972756a72 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -24,10 +24,13 @@ SDCategory: Zul'Aman EndScriptData */ #include "ScriptMgr.h" +#include "GameObject.h" #include "InstanceScript.h" -#include "zulaman.h" +#include "Log.h" +#include "Map.h" #include "Player.h" #include "TemporarySummon.h" +#include "zulaman.h" enum Misc { diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index affb1ab9406..9598940bbd4 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -28,12 +28,15 @@ npc_forest_frog EndContentData */ #include "ScriptMgr.h" +#include "GameObject.h" +#include "InstanceScript.h" +#include "MotionMaster.h" +#include "Player.h" #include "ScriptedCreature.h" #include "ScriptedGossip.h" -#include "zulaman.h" -#include "Player.h" #include "SpellInfo.h" #include "SpellScript.h" +#include "zulaman.h" /*###### ## npc_forest_frog @@ -103,7 +106,7 @@ class npc_forest_frog : public CreatureScript me->UpdateEntry(cEntry); } - void SpellHit(Unit* caster, const SpellInfo* spell) override + void SpellHit(Unit* caster, SpellInfo const* spell) override { if (spell->Id == SPELL_REMOVE_AMANI_CURSE && caster->GetTypeId() == TYPEID_PLAYER && me->GetEntry() == NPC_FOREST_FROG) { @@ -171,7 +174,7 @@ class npc_zulaman_hostage : public CreatureScript { if (HostageEntry[i] == entry) { - me->SummonGameObject(ChestEntry[i], Position(x - 2, y, z, 0.f), G3D::Quat(), 0); + me->SummonGameObject(ChestEntry[i], Position(x - 2, y, z, 0.f), QuaternionData(), 0); break; } } @@ -292,7 +295,7 @@ class npc_harrison_jones : public CreatureScript return false; } - void SpellHit(Unit*, const SpellInfo* spell) override + void SpellHit(Unit*, SpellInfo const* spell) override { if (spell->Id == SPELL_COSMETIC_SPEAR_THROW) { diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h index 99988310544..ae1323af6aa 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.h @@ -19,6 +19,8 @@ #ifndef DEF_ZULAMAN_H #define DEF_ZULAMAN_H +#include "CreatureAIImpl.h" + #define ZulamanScriptName "instance_zulaman" #define DataHeader "ZA" @@ -65,10 +67,10 @@ enum ZAGameObjectIds GO_STRANGE_GONG = 187359 }; -template <class AI> -inline AI* GetZulAmanAI(Creature* creature) +template <class AI, class T> +inline AI* GetZulAmanAI(T* obj) { - return GetInstanceAI<AI>(creature, ZulamanScriptName); + return GetInstanceAI<AI>(obj, ZulamanScriptName); } #endif diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp index 40a1836d46a..8946edbe809 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp @@ -25,8 +25,12 @@ TCCategory: Zul'Gurub EndScriptData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" #include "GameObjectAI.h" +#include "InstanceScript.h" +#include "ObjectAccessor.h" +#include "MotionMaster.h" +#include "ScriptedCreature.h" #include "SpellInfo.h" #include "zulgurub.h" @@ -240,7 +244,7 @@ class boss_arlokk : public CreatureScript me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_UNEQUIP)); me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(EQUIP_UNEQUIP)); /* - const CreatureTemplate* cinfo = me->GetCreatureTemplate(); + CreatureTemplate const* cinfo = me->GetCreatureTemplate(); me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 35))); me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 35))); me->UpdateDamagePhysical(BASE_ATTACK); @@ -288,7 +292,7 @@ class boss_arlokk : public CreatureScript me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_DAGGER)); me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, uint32(WEAPON_DAGGER)); /* - const CreatureTemplate* cinfo = me->GetCreatureTemplate(); + CreatureTemplate const* cinfo = me->GetCreatureTemplate(); me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg)); me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg)); me->UpdateDamagePhysical(BASE_ATTACK); diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp index a32e2fba7c0..f29babec4fe 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp @@ -108,7 +108,7 @@ class boss_gahzranka : public CreatureScript // gahzranka CreatureAI* GetAI(Creature* creature) const override { - return new boss_gahzrankaAI(creature); + return GetZulGurubAI<boss_gahzrankaAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp index cb3859bf94e..4a6feab82eb 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp @@ -109,7 +109,7 @@ class boss_grilek : public CreatureScript // grilek CreatureAI* GetAI(Creature* creature) const override { - return new boss_grilekAI(creature); + return GetZulGurubAI<boss_grilekAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp index fb573604e74..16c8154af87 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp @@ -23,6 +23,7 @@ Category: Zul'Gurub */ #include "ScriptMgr.h" +#include "InstanceScript.h" #include "ScriptedCreature.h" #include "zulgurub.h" @@ -173,7 +174,7 @@ class boss_hakkar : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_hakkarAI>(creature); + return GetZulGurubAI<boss_hakkarAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp index ac223fff71f..6b0c75b9cc3 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp @@ -25,6 +25,7 @@ EndScriptData */ #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "TemporarySummon.h" #include "zulgurub.h" enum Spells @@ -114,7 +115,7 @@ class boss_hazzarah : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_hazzarahAI(creature); + return GetZulGurubAI<boss_hazzarahAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp index ab62c42ab18..63d6388d497 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp @@ -17,6 +17,7 @@ #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "TemporarySummon.h" #include "zulgurub.h" enum Says @@ -257,7 +258,7 @@ class npc_batrider : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new npc_batriderAI(creature); + return GetZulGurubAI<npc_batriderAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp index a849a680621..2c6ebefd1cb 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp @@ -17,7 +17,10 @@ */ #include "ScriptMgr.h" +#include "InstanceScript.h" +#include "ObjectAccessor.h" #include "ScriptedCreature.h" +#include "TemporarySummon.h" #include "zulgurub.h" enum Say @@ -164,7 +167,7 @@ class boss_jindo : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_jindoAI(creature); + return GetZulGurubAI<boss_jindoAI>(creature); } }; @@ -213,7 +216,7 @@ class npc_healing_ward : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_healing_wardAI>(creature); + return GetZulGurubAI<npc_healing_wardAI>(creature); } }; @@ -260,7 +263,7 @@ class npc_shade_of_jindo : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new npc_shade_of_jindoAI(creature); + return GetZulGurubAI<npc_shade_of_jindoAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp index e30fe8861f2..17027e2d056 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp @@ -24,10 +24,13 @@ SDCategory: Zul'Gurub EndScriptData */ #include "ScriptMgr.h" +#include "InstanceScript.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "ScriptedCreature.h" -#include "Spell.h" #include "SpellAuras.h" #include "SpellScript.h" +#include "TemporarySummon.h" #include "zulgurub.h" enum Says @@ -429,7 +432,7 @@ class npc_vilebranch_speaker : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_vilebranch_speakerAI>(creature); + return GetZulGurubAI<npc_vilebranch_speakerAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp index 03bc99d177a..9537aaec3e5 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp @@ -25,6 +25,7 @@ EndScriptData */ #include "ScriptMgr.h" #include "ScriptedCreature.h" +#include "TemporarySummon.h" #include "zulgurub.h" enum Says @@ -168,7 +169,7 @@ class boss_marli : public CreatureScript } case EVENT_CHARGE_PLAYER: { - Unit* target = NULL; + Unit* target = nullptr; int i = 0; while (i++ < 3) // max 3 tries to get a random target with power_mana { @@ -216,7 +217,7 @@ class boss_marli : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_marliAI(creature); + return GetZulGurubAI<boss_marliAI>(creature); } }; @@ -265,7 +266,7 @@ class npc_spawn_of_marli : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new npc_spawn_of_marliAI(creature); + return GetZulGurubAI<npc_spawn_of_marliAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp index 502630a8a89..351445c0c62 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp @@ -165,7 +165,7 @@ class boss_renataki : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_renatakiAI(creature); + return GetZulGurubAI<boss_renatakiAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp index ac4d6d9e96f..7e6a9970629 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp @@ -24,6 +24,8 @@ SDCategory: Zul'Gurub EndScriptData */ #include "ScriptMgr.h" +#include "InstanceScript.h" +#include "ObjectAccessor.h" #include "ScriptedCreature.h" #include "zulgurub.h" @@ -164,7 +166,7 @@ class boss_thekal : public CreatureScript me->SetStandState(UNIT_STAND_STATE_STAND); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); /* - const CreatureTemplate* cinfo = me->GetCreatureTemplate(); + CreatureTemplate const* cinfo = me->GetCreatureTemplate(); me->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 40))); me->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 40))); me->UpdateDamagePhysical(BASE_ATTACK); @@ -257,7 +259,7 @@ class boss_thekal : public CreatureScript me->SetStandState(UNIT_STAND_STATE_SLEEP); me->AttackStop(); instance->SetBossState(DATA_THEKAL, SPECIAL); - WasDead=true; + WasDead = true; } if (me->HasUnitState(UNIT_STATE_CASTING)) @@ -269,7 +271,7 @@ class boss_thekal : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<boss_thekalAI>(creature); + return GetZulGurubAI<boss_thekalAI>(creature); } }; @@ -422,7 +424,7 @@ class npc_zealot_lorkhan : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_zealot_lorkhanAI>(creature); + return GetZulGurubAI<npc_zealot_lorkhanAI>(creature); } }; @@ -572,7 +574,7 @@ class npc_zealot_zath : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI<npc_zealot_zathAI>(creature); + return GetZulGurubAI<npc_zealot_zathAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp index caa4587aaa1..e8b0b59d317 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp @@ -275,7 +275,7 @@ class boss_venoxis : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_venoxisAI(creature); + return GetZulGurubAI<boss_venoxisAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp index 750b6d2246a..44500347ca2 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp @@ -101,7 +101,7 @@ class boss_wushoolay : public CreatureScript CreatureAI* GetAI(Creature* creature) const override { - return new boss_wushoolayAI(creature); + return GetZulGurubAI<boss_wushoolayAI>(creature); } }; diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp index b1b7869f4a9..b9ec02029f1 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp @@ -24,7 +24,10 @@ SDCategory: Zul'Gurub EndScriptData */ #include "ScriptMgr.h" +#include "Creature.h" +#include "GameObject.h" #include "InstanceScript.h" +#include "Map.h" #include "zulgurub.h" DoorData const doorData[] = @@ -79,11 +82,10 @@ class instance_zulgurub : public InstanceMapScript void OnGameObjectCreate(GameObject* go) override { + InstanceScript::OnGameObjectCreate(go); + switch (go->GetEntry()) { - case GO_FORCEFIELD: - AddDoor(go, true); - break; case GO_GONG_OF_BETHEKK: _goGongOfBethekkGUID = go->GetGUID(); if (GetBossState(DATA_ARLOKK) == DONE) @@ -96,18 +98,6 @@ class instance_zulgurub : public InstanceMapScript } } - void OnGameObjectRemove(GameObject* go) override - { - switch (go->GetEntry()) - { - case GO_FORCEFIELD: - AddDoor(go, false); - break; - default: - break; - } - } - ObjectGuid GetGuidData(uint32 uiData) const override { switch (uiData) diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h index 4148b4d9e08..b2adf8cfe04 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h +++ b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h @@ -18,12 +18,13 @@ #ifndef DEF_ZULGURUB_H #define DEF_ZULGURUB_H +#include "CreatureAIImpl.h" + +#define ZGScriptName "instance_zulgurub" #define DataHeader "ZG" uint32 const EncounterCount = 13; -#define ZGScriptName "instance_zulgurub" - enum ZGDataTypes { DATA_JEKLIK = 0, // Main boss @@ -67,8 +68,8 @@ enum ZGGameObjectIds GO_GONG_OF_BETHEKK = 180526 // Arlokk Event }; -template<class AI, class T> -AI* GetZulGurubAI(T* obj) +template <class AI, class T> +inline AI* GetZulGurubAI(T* obj) { return GetInstanceAI<AI>(obj, ZGScriptName); } diff --git a/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp b/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp index 2e4fd37554d..ae5435aa571 100644 --- a/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp @@ -48,9 +48,7 @@ class spell_razelikh_teleport_group : public SpellScriptLoader bool Validate(SpellInfo const* /*spell*/) override { - if (!sSpellMgr->GetSpellInfo(SPELL_TELEPORT_SINGLE) && !sSpellMgr->GetSpellInfo(SPELL_TELEPORT_SINGLE_IN_GROUP)) - return false; - return true; + return ValidateSpellInfo({ SPELL_TELEPORT_SINGLE, SPELL_TELEPORT_SINGLE_IN_GROUP }); } void HandleScriptEffect(SpellEffIndex /* effIndex */) @@ -59,7 +57,7 @@ class spell_razelikh_teleport_group : public SpellScriptLoader { if (Group* group = player->GetGroup()) { - for (GroupReference* itr = group->GetFirstMember(); itr != NULL; itr = itr->next()) + for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next()) if (Player* member = itr->GetSource()) if (member->IsWithinDistInMap(player, 20.0f) && !member->isDead()) member->CastSpell(member, SPELL_TELEPORT_SINGLE_IN_GROUP, true); diff --git a/src/server/scripts/EasternKingdoms/zone_duskwood.cpp b/src/server/scripts/EasternKingdoms/zone_duskwood.cpp index e521a3d1bb7..f350efd6396 100644 --- a/src/server/scripts/EasternKingdoms/zone_duskwood.cpp +++ b/src/server/scripts/EasternKingdoms/zone_duskwood.cpp @@ -26,6 +26,7 @@ EndScriptData */ #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "Player.h" +#include "TemporarySummon.h" enum TwilightCorrupter { @@ -146,7 +147,7 @@ class at_twilight_grove : public AreaTriggerScript public: at_twilight_grove() : AreaTriggerScript("at_twilight_grove") { } - bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) override + bool OnTrigger(Player* player, AreaTriggerEntry const* /*at*/) override { if (player->GetQuestStatus(QUEST_NIGHTMARES_CORRUPTION) == QUEST_STATUS_INCOMPLETE) if (!player->FindNearestCreature(NPC_TWILIGHT_CORRUPTER, 500.0f, true)) diff --git a/src/server/scripts/EasternKingdoms/zone_ghostlands.cpp b/src/server/scripts/EasternKingdoms/zone_ghostlands.cpp index edf1d87c677..5a8197d8f5f 100644 --- a/src/server/scripts/EasternKingdoms/zone_ghostlands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_ghostlands.cpp @@ -28,10 +28,11 @@ npc_ranger_lilatha EndContentData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" -#include "ScriptedEscortAI.h" +#include "GameObject.h" #include "Player.h" +#include "ScriptedEscortAI.h" +#include "ScriptedGossip.h" +#include "TemporarySummon.h" #include "WorldSession.h" /*###### diff --git a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp index 5f7f56eee8e..af79fd66ea5 100644 --- a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp @@ -29,9 +29,10 @@ npc_rinji EndContentData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedEscortAI.h" +#include "GameObject.h" +#include "MotionMaster.h" #include "Player.h" +#include "ScriptedEscortAI.h" /*###### ## npc_oox09hl diff --git a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp index 20b628e95d8..bc0f6ea959f 100644 --- a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp +++ b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp @@ -29,9 +29,11 @@ pyrewood_ambush EndContentData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "CreatureAIImpl.h" #include "ScriptedEscortAI.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "TemporarySummon.h" /*###### ## npc_deathstalker_erland @@ -224,7 +226,7 @@ public: { if (Creature* summoned = me->SummonCreature(creatureId, PyrewoodSpawnPoints[position][0], PyrewoodSpawnPoints[position][1], PyrewoodSpawnPoints[position][2], PyrewoodSpawnPoints[position][3], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000)) { - Unit* target = NULL; + Unit* target = nullptr; if (PlayerGUID) if (Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID)) if (player->IsAlive() && RAND(0, 1)) diff --git a/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp index dab69c434e6..d883f282549 100644 --- a/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp +++ b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp @@ -32,10 +32,12 @@ npc_lord_gregor_lescovar EndContentData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" -#include "ScriptedEscortAI.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedEscortAI.h" +#include "ScriptedGossip.h" +#include "TemporarySummon.h" /*###### ## npc_bartleby diff --git a/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp b/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp index 4fd9fa4d865..edcfc78d510 100644 --- a/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp +++ b/src/server/scripts/EasternKingdoms/zone_stranglethorn_vale.cpp @@ -68,7 +68,7 @@ public: me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); } - void SpellHit(Unit* caster, const SpellInfo* spell) override + void SpellHit(Unit* caster, SpellInfo const* spell) override { if (bReset || spell->Id != 3607) return; diff --git a/src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp b/src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp index 5cd85585a9d..e0396397889 100644 --- a/src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp +++ b/src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp @@ -17,9 +17,10 @@ */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedEscortAI.h" +#include "GameObject.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedEscortAI.h" /*###### ## npc_galen_goodward @@ -74,11 +75,11 @@ public: { switch (uiPointId) { - case 0: + case 0: { - GameObject* cage = NULL; + GameObject* cage = nullptr; if (galensCageGUID) - cage = me->GetMap()->GetGameObject(galensCageGUID); + cage = ObjectAccessor::GetGameObject(*me, galensCageGUID); else cage = GetClosestGameObjectWithEntry(me, GO_GALENS_CAGE, INTERACTION_DISTANCE); if (cage) @@ -88,9 +89,9 @@ public: } break; } - case 21: - Talk(EMOTE_DISAPPEAR); - break; + case 21: + Talk(EMOTE_DISAPPEAR); + break; } } @@ -99,7 +100,7 @@ public: switch (waypointId) { case 0: - if (GameObject* cage = me->GetMap()->GetGameObject(galensCageGUID)) + if (GameObject* cage = ObjectAccessor::GetGameObject(*me, galensCageGUID)) cage->ResetDoorOrButton(); break; case 20: diff --git a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp index a8d6b67b718..19833db218c 100644 --- a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp +++ b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp @@ -30,9 +30,11 @@ go_mausoleum_trigger EndContentData */ #include "ScriptMgr.h" -#include "ScriptedCreature.h" +#include "GameObject.h" #include "GameObjectAI.h" +#include "ObjectAccessor.h" #include "Player.h" +#include "ScriptedCreature.h" /*###### ## npc_calvin_montague diff --git a/src/server/scripts/EasternKingdoms/zone_undercity.cpp b/src/server/scripts/EasternKingdoms/zone_undercity.cpp index 9524e341b1c..37fe5cec1f9 100644 --- a/src/server/scripts/EasternKingdoms/zone_undercity.cpp +++ b/src/server/scripts/EasternKingdoms/zone_undercity.cpp @@ -30,9 +30,11 @@ npc_parqual_fintallas EndContentData */ #include "ScriptMgr.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" +#include "Player.h" #include "ScriptedCreature.h" #include "ScriptedGossip.h" -#include "Player.h" /*###### ## npc_lady_sylvanas_windrunner diff --git a/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp index 5839d40c15f..7ba95268562 100644 --- a/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp @@ -153,7 +153,7 @@ public: void DoDie() { //summoner dies here - me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); + me->DealDamage(me, me->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false); //override any database `spawntimesecs` to prevent duplicated summons uint32 rTime = me->GetRespawnDelay(); if (rTime < 600) |
