aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Kalimdor
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2017-05-28 16:34:44 +0200
committerShauren <shauren.trinity@gmail.com>2017-05-28 16:34:44 +0200
commita0a158b5b851db7e2c16819ec89e913d914a3aba (patch)
treee2170b14fe7bba2bf70c30500eb129c6eadc2c20 /src/server/scripts/Kalimdor
parentd427fed13b49aec1722544b3ca72a0a41160bbe3 (diff)
Core/Scripts: Include cleanup
Diffstat (limited to 'src/server/scripts/Kalimdor')
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp9
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h9
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp4
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp4
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp4
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp7
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp13
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp17
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp7
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp13
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp5
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp77
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h9
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp25
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp28
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp9
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp6
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp15
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h11
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp11
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp5
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp5
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp5
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp29
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp11
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h11
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp3
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp3
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp3
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp11
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp12
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h9
-rw-r--r--src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp1
-rw-r--r--src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp47
-rw-r--r--src/server/scripts/Kalimdor/Firelands/firelands.cpp26
-rw-r--r--src/server/scripts/Kalimdor/Firelands/firelands.h22
-rw-r--r--src/server/scripts/Kalimdor/Firelands/instance_firelands.cpp4
-rw-r--r--src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp14
-rw-r--r--src/server/scripts/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp11
-rw-r--r--src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp11
-rw-r--r--src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.h12
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp3
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp3
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp4
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/instance_maraudon.cpp4
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/maraudon.h31
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp10
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp8
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h1
-rw-r--r--src/server/scripts/Kalimdor/RagefireChasm/instance_ragefire_chasm.cpp1
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp4
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp4
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp4
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp4
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp20
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h6
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp19
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp12
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.h10
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp17
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp18
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp10
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp4
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp15
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp5
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp4
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h9
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp9
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp20
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp4
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp3
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp5
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp24
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp4
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp12
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp4
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp14
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h9
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp8
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp6
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h9
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp3
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp17
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp11
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h9
-rw-r--r--src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp7
-rw-r--r--src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp16
-rw-r--r--src/server/scripts/Kalimdor/zone_durotar.cpp16
-rw-r--r--src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp13
-rw-r--r--src/server/scripts/Kalimdor/zone_silithus.cpp14
-rw-r--r--src/server/scripts/Kalimdor/zone_tanaris.cpp7
-rw-r--r--src/server/scripts/Kalimdor/zone_the_barrens.cpp7
-rw-r--r--src/server/scripts/Kalimdor/zone_winterspring.cpp7
98 files changed, 610 insertions, 434 deletions
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
index bccaf0e5246..0300eccc116 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
@@ -16,11 +16,12 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
#include "blackfathom_deeps.h"
-#include "ScriptedEscortAI.h"
+#include "GameObject.h"
+#include "InstanceScript.h"
#include "Player.h"
+#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
#include "SpellScript.h"
enum Spells
@@ -74,7 +75,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_blackfathom_deeps_eventAI>(creature);
+ return GetBlackfathomDeepsAI<npc_blackfathom_deeps_eventAI>(creature);
}
struct npc_blackfathom_deeps_eventAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h
index 98daa49ebb5..41884b0143c 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h
@@ -19,6 +19,9 @@
#ifndef BFD_H_
#define BFD_H_
+#include "CreatureAIImpl.h"
+
+#define BFDScriptName "instance_blackfathom_deeps"
#define DataHeader "BFD"
uint32 const EncounterCount = 3;
@@ -68,4 +71,10 @@ enum BFDGameObjectIds
GO_ALTAR_OF_THE_DEEPS = 103016
};
+template<typename AI>
+inline AI* GetBlackfathomDeepsAI(Creature* creature)
+{
+ return GetInstanceAI<AI>(creature, BFDScriptName);
+}
+
#endif // BFD_H_
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp
index cee400603e1..56b0f9e2624 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp
@@ -16,8 +16,8 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "blackfathom_deeps.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -88,7 +88,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_aku_maiAI>(creature);
+ return GetBlackfathomDeepsAI<boss_aku_maiAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
index a287751e3cd..e9f6943a9a7 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
@@ -16,8 +16,8 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "blackfathom_deeps.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -66,7 +66,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_gelihastAI>(creature);
+ return GetBlackfathomDeepsAI<boss_gelihastAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp
index 68d898fb611..2868965f12f 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp
@@ -16,8 +16,8 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "blackfathom_deeps.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -101,7 +101,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_kelrisAI>(creature);
+ return GetBlackfathomDeepsAI<boss_kelrisAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp
index eca757c6177..96b55fdc8e6 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp
@@ -24,8 +24,11 @@ SDCategory: Blackfathom Deeps
EndScriptData */
#include "ScriptMgr.h"
-#include "InstanceScript.h"
#include "blackfathom_deeps.h"
+#include "Creature.h"
+#include "GameObject.h"
+#include "InstanceScript.h"
+#include "Map.h"
const Position LorgusPosition[4] =
{
@@ -47,7 +50,7 @@ const Position SpawnsLocation[] =
class instance_blackfathom_deeps : public InstanceMapScript
{
public:
- instance_blackfathom_deeps() : InstanceMapScript("instance_blackfathom_deeps", 48) { }
+ instance_blackfathom_deeps() : InstanceMapScript(BFDScriptName, 48) { }
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
index 1f41c7a25e6..91c3744a7e4 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp
@@ -16,10 +16,11 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "SpellScript.h"
#include "hyjal.h"
#include "hyjal_trash.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
+#include "SpellScript.h"
enum Spells
{
@@ -49,7 +50,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_anetheronAI>(creature);
+ return GetHyjalAI<boss_anetheronAI>(creature);
}
struct boss_anetheronAI : public hyjal_trashAI
@@ -186,7 +187,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_towering_infernalAI>(creature);
+ return GetHyjalAI<npc_towering_infernalAI>(creature);
}
struct npc_towering_infernalAI : public ScriptedAI
@@ -274,9 +275,7 @@ class spell_anetheron_vampiric_aura : public SpellScriptLoader
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- if (!sSpellMgr->GetSpellInfo(SPELL_VAMPIRIC_AURA_HEAL))
- return false;
- return true;
+ return ValidateSpellInfo({ SPELL_VAMPIRIC_AURA_HEAL });
}
void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo)
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
index d36e7fda284..38fb4c8a68e 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
@@ -24,10 +24,11 @@ SDCategory: Caverns of Time, Mount Hyjal
EndScriptData */
#include "ScriptMgr.h"
+#include "hyjal.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
-#include "Player.h"
-#include "hyjal.h"
enum Texts
{
@@ -99,7 +100,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_ancient_wispAI>(creature);
+ return GetHyjalAI<npc_ancient_wispAI>(creature);
}
struct npc_ancient_wispAI : public ScriptedAI
@@ -162,7 +163,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new npc_doomfireAI(creature);
+ return GetHyjalAI<npc_doomfireAI>(creature);
}
struct npc_doomfireAI : public ScriptedAI
@@ -191,7 +192,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new npc_doomfire_targettingAI(creature);
+ return GetHyjalAI<npc_doomfire_targettingAI>(creature);
}
struct npc_doomfire_targettingAI : public ScriptedAI
@@ -530,7 +531,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_archimondeAI>(creature);
+ return GetHyjalAI<boss_archimondeAI>(creature);
}
};
@@ -546,9 +547,7 @@ class spell_archimonde_drain_world_tree_dummy : public SpellScriptLoader
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- if (!sSpellMgr->GetSpellInfo(SPELL_DRAIN_WORLD_TREE_TRIGGERED))
- return false;
- return true;
+ return ValidateSpellInfo({ SPELL_DRAIN_WORLD_TREE_TRIGGERED });
}
void HandleScript(SpellEffIndex /*effIndex*/)
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
index e449f19681f..91218ae09c8 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp
@@ -16,9 +16,10 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "hyjal.h"
#include "hyjal_trash.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
enum Spells
{
@@ -48,7 +49,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_azgalorAI>(creature);
+ return GetHyjalAI<boss_azgalorAI>(creature);
}
struct boss_azgalorAI : public hyjal_trashAI
@@ -190,7 +191,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_lesser_doomguardAI>(creature);
+ return GetHyjalAI<npc_lesser_doomguardAI>(creature);
}
struct npc_lesser_doomguardAI : public hyjal_trashAI
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
index 51b32c2f20f..15ecb603ddd 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp
@@ -16,11 +16,12 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "SpellAuraEffects.h"
-#include "SpellScript.h"
#include "hyjal.h"
#include "hyjal_trash.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
+#include "SpellAuraEffects.h"
+#include "SpellScript.h"
enum Spells
{
@@ -49,7 +50,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_kazrogalAI>(creature);
+ return GetHyjalAI<boss_kazrogalAI>(creature);
}
struct boss_kazrogalAI : public hyjal_trashAI
@@ -206,9 +207,7 @@ class spell_mark_of_kazrogal : public SpellScriptLoader
bool Validate(SpellInfo const* /*spell*/) override
{
- if (!sSpellMgr->GetSpellInfo(SPELL_MARK_DAMAGE))
- return false;
- return true;
+ return ValidateSpellInfo({ SPELL_MARK_DAMAGE });
}
void OnPeriodic(AuraEffect const* aurEff)
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
index b6891597076..42916c45218 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp
@@ -16,9 +16,10 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "hyjal.h"
#include "hyjal_trash.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
enum Spells
{
@@ -44,7 +45,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_rage_winterchillAI>(creature);
+ return GetHyjalAI<boss_rage_winterchillAI>(creature);
}
struct boss_rage_winterchillAI : public hyjal_trashAI
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
index 6c22a3c716e..40f5b3673e9 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
@@ -30,11 +30,11 @@ npc_tyrande_whisperwind
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
#include "hyjalAI.h"
-#include "Player.h"
+#include "InstanceScript.h"
#include "Log.h"
+#include "Player.h"
+#include "ScriptedGossip.h"
#define GOSSIP_ITEM_BEGIN_ALLY "My companions and I are with you, Lady Proudmoore."
#define GOSSIP_ITEM_ANETHERON "We are ready for whatever Archimonde might send our way, Lady Proudmoore."
@@ -103,27 +103,27 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- if (!creature->GetInstanceScript())
- return NULL;
-
- hyjalAI* ai = new hyjalAI(creature);
+ if (hyjalAI* ai = GetHyjalAI<hyjalAI>(creature))
+ {
+ ai->Reset();
+ ai->EnterEvadeMode();
- ai->Reset();
- ai->EnterEvadeMode();
+ ai->Spells[0].SpellId = SPELL_BLIZZARD;
+ ai->Spells[0].Cooldown = urand(15000, 35000);
+ ai->Spells[0].TargetType = TARGETTYPE_RANDOM;
- ai->Spells[0].SpellId = SPELL_BLIZZARD;
- ai->Spells[0].Cooldown = urand(15000, 35000);
- ai->Spells[0].TargetType = TARGETTYPE_RANDOM;
+ ai->Spells[1].SpellId = SPELL_PYROBLAST;
+ ai->Spells[1].Cooldown = urand(5500, 9500);
+ ai->Spells[1].TargetType = TARGETTYPE_RANDOM;
- ai->Spells[1].SpellId = SPELL_PYROBLAST;
- ai->Spells[1].Cooldown = urand(5500, 9500);
- ai->Spells[1].TargetType = TARGETTYPE_RANDOM;
+ ai->Spells[2].SpellId = SPELL_SUMMON_ELEMENTALS;
+ ai->Spells[2].Cooldown = urand(15000, 45000);
+ ai->Spells[2].TargetType = TARGETTYPE_SELF;
- ai->Spells[2].SpellId = SPELL_SUMMON_ELEMENTALS;
- ai->Spells[2].Cooldown = urand(15000, 45000);
- ai->Spells[2].TargetType = TARGETTYPE_SELF;
+ return ai;
+ }
- return ai;
+ return nullptr;
}
};
@@ -188,23 +188,23 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- if (!creature->GetInstanceScript())
- return NULL;
-
- hyjalAI* ai = new hyjalAI(creature);
+ if (hyjalAI* ai = GetHyjalAI<hyjalAI>(creature))
+ {
+ ai->Reset();
+ ai->EnterEvadeMode();
- ai->Reset();
- ai->EnterEvadeMode();
+ ai->Spells[0].SpellId = SPELL_CHAIN_LIGHTNING;
+ ai->Spells[0].Cooldown = urand(3000, 8000);
+ ai->Spells[0].TargetType = TARGETTYPE_VICTIM;
- ai->Spells[0].SpellId = SPELL_CHAIN_LIGHTNING;
- ai->Spells[0].Cooldown = urand(3000, 8000);
- ai->Spells[0].TargetType = TARGETTYPE_VICTIM;
+ ai->Spells[1].SpellId = SPELL_SUMMON_DIRE_WOLF;
+ ai->Spells[1].Cooldown = urand(6000, 41000);
+ ai->Spells[1].TargetType = TARGETTYPE_RANDOM;
- ai->Spells[1].SpellId = SPELL_SUMMON_DIRE_WOLF;
- ai->Spells[1].Cooldown = urand(6000, 41000);
- ai->Spells[1].TargetType = TARGETTYPE_RANDOM;
+ return ai;
+ }
- return ai;
+ return nullptr;
}
};
@@ -216,13 +216,14 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- if (!creature->GetInstanceScript())
- return NULL;
+ if (hyjalAI* ai = GetHyjalAI<hyjalAI>(creature))
+ {
+ ai->Reset();
+ ai->EnterEvadeMode();
+ return ai;
+ }
- hyjalAI* ai = new hyjalAI(creature);
- ai->Reset();
- ai->EnterEvadeMode();
- return ai;
+ return nullptr;
}
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h
index caf7d690097..5a12cc0f6e3 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h
@@ -19,6 +19,9 @@
#ifndef DEF_HYJAL_H
#define DEF_HYJAL_H
+#include "CreatureAIImpl.h"
+
+#define HyjalScriptName "instance_hyjal"
#define DataHeader "HY"
uint32 const EncounterCount = 5;
@@ -93,4 +96,10 @@ enum HYGameobjectIds
#define MINRAIDDAMAGE 700000 // minimal damage before trash can drop loot and reputation, resets if faction leader dies
+template<typename AI>
+inline AI* GetHyjalAI(Creature* creature)
+{
+ return GetInstanceAI<AI>(creature, HyjalScriptName);
+}
+
#endif
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
index 52db6e7d9ba..6479dd2cdfe 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
@@ -24,15 +24,14 @@ SDCategory: Caverns of Time, Mount Hyjal
EndScriptData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedEscortAI.h"
-#include "GridNotifiers.h"
-#include "GridNotifiersImpl.h"
-#include "Cell.h"
#include "CellImpl.h"
-#include "Log.h"
-#include "hyjalAI.h"
+#include "GridNotifiersImpl.h"
#include "hyjal_trash.h"
+#include "hyjalAI.h"
+#include "InstanceScript.h"
+#include "Log.h"
+#include "ObjectAccessor.h"
+#include "TemporarySummon.h"
enum Spawns
{
@@ -651,7 +650,7 @@ void hyjalAI::SpawnVeins()
return;
for (uint8 i = 0; i < 7; ++i)
{
- GameObject* gem = me->SummonGameObject(GO_ANCIENT_VEIN, VeinPos[i][0], VeinPos[i][1], VeinPos[i][2], VeinPos[i][3], G3D::Quat(VeinPos[i][4], VeinPos[i][5], VeinPos[i][6], VeinPos[i][7]), 0);
+ GameObject* gem = me->SummonGameObject(GO_ANCIENT_VEIN, VeinPos[i][0], VeinPos[i][1], VeinPos[i][2], VeinPos[i][3], QuaternionData(VeinPos[i][4], VeinPos[i][5], VeinPos[i][6], VeinPos[i][7]), 0);
if (gem)
VeinGUID[i]=gem->GetGUID();
}
@@ -663,7 +662,7 @@ void hyjalAI::SpawnVeins()
return;
for (uint8 i = 7; i < 14; ++i)
{
- GameObject* gem = me->SummonGameObject(GO_ANCIENT_VEIN, VeinPos[i][0], VeinPos[i][1], VeinPos[i][2], VeinPos[i][3], G3D::Quat(VeinPos[i][4], VeinPos[i][5], VeinPos[i][6], VeinPos[i][7]), 0);
+ GameObject* gem = me->SummonGameObject(GO_ANCIENT_VEIN, VeinPos[i][0], VeinPos[i][1], VeinPos[i][2], VeinPos[i][3], QuaternionData(VeinPos[i][4], VeinPos[i][5], VeinPos[i][6], VeinPos[i][7]), 0);
if (gem)
VeinGUID[i] = gem->GetGUID();
}
@@ -726,7 +725,7 @@ void hyjalAI::UpdateAI(uint32 diff)
HideNearPos(me->GetPositionX(), me->GetPositionY());
HideNearPos(5037.76f, -1889.71f);
for (uint8 i = 0; i < 92; ++i)//summon fires
- me->SummonGameObject(GO_ROARING_FLAME, AllianceFirePos[i][0], AllianceFirePos[i][1], AllianceFirePos[i][2], AllianceFirePos[i][3], G3D::Quat(AllianceFirePos[i][4], AllianceFirePos[i][5], AllianceFirePos[i][6], AllianceFirePos[i][7]), 0);
+ me->SummonGameObject(GO_ROARING_FLAME, AllianceFirePos[i][0], AllianceFirePos[i][1], AllianceFirePos[i][2], AllianceFirePos[i][3], QuaternionData(AllianceFirePos[i][4], AllianceFirePos[i][5], AllianceFirePos[i][6], AllianceFirePos[i][7]), 0);
}
else me->SetVisible(true);
@@ -739,7 +738,7 @@ void hyjalAI::UpdateAI(uint32 diff)
HideNearPos(5563, -2763.19f);
HideNearPos(5542.2f, -2629.36f);
for (uint8 i = 0; i < 65; ++i)//summon fires
- me->SummonGameObject(GO_ROARING_FLAME, HordeFirePos[i][0], HordeFirePos[i][1], HordeFirePos[i][2], HordeFirePos[i][3], G3D::Quat(HordeFirePos[i][4], HordeFirePos[i][5], HordeFirePos[i][6], HordeFirePos[i][7]), 0);
+ me->SummonGameObject(GO_ROARING_FLAME, HordeFirePos[i][0], HordeFirePos[i][1], HordeFirePos[i][2], HordeFirePos[i][3], QuaternionData(HordeFirePos[i][4], HordeFirePos[i][5], HordeFirePos[i][6], HordeFirePos[i][7]), 0);
}
else me->SetVisible(true);
@@ -1016,7 +1015,7 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
{
case 0://alliance
for (uint8 i = 0; i < 92; ++i)//summon fires
- me->SummonGameObject(GO_ROARING_FLAME, AllianceFirePos[i][0], AllianceFirePos[i][1], AllianceFirePos[i][2], AllianceFirePos[i][3], G3D::Quat(AllianceFirePos[i][4], AllianceFirePos[i][5], AllianceFirePos[i][6], AllianceFirePos[i][7]), 0);
+ me->SummonGameObject(GO_ROARING_FLAME, AllianceFirePos[i][0], AllianceFirePos[i][1], AllianceFirePos[i][2], AllianceFirePos[i][3], QuaternionData(AllianceFirePos[i][4], AllianceFirePos[i][5], AllianceFirePos[i][6], AllianceFirePos[i][7]), 0);
for (uint8 i = 0; i < 25; ++i)//summon 25 ghouls
{
@@ -1057,7 +1056,7 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
break;
case 1://horde
for (uint8 i = 0; i < 65; ++i)//summon fires
- me->SummonGameObject(GO_ROARING_FLAME, HordeFirePos[i][0], HordeFirePos[i][1], HordeFirePos[i][2], HordeFirePos[i][3], G3D::Quat(HordeFirePos[i][4], HordeFirePos[i][5], HordeFirePos[i][6], HordeFirePos[i][7]), 0);
+ me->SummonGameObject(GO_ROARING_FLAME, HordeFirePos[i][0], HordeFirePos[i][1], HordeFirePos[i][2], HordeFirePos[i][3], QuaternionData(HordeFirePos[i][4], HordeFirePos[i][5], HordeFirePos[i][6], HordeFirePos[i][7]), 0);
for (uint8 i = 0; i < 26; ++i)//summon infernals
{
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
index bc204ed6c53..32b90c6bfc9 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
@@ -16,10 +16,12 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "hyjal.h"
#include "hyjal_trash.h"
#include "hyjalAI.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
+#include "TemporarySummon.h"
enum Spells
{
@@ -523,7 +525,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_giant_infernalAI>(creature);
+ return GetHyjalAI<npc_giant_infernalAI>(creature);
}
};
@@ -534,7 +536,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_abominationAI>(creature);
+ return GetHyjalAI<npc_abominationAI>(creature);
}
struct npc_abominationAI : public hyjal_trashAI
@@ -629,7 +631,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_ghoulAI>(creature);
+ return GetHyjalAI<npc_ghoulAI>(creature);
}
struct npc_ghoulAI : public hyjal_trashAI
@@ -728,7 +730,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_necromancerAI>(creature);
+ return GetHyjalAI<npc_necromancerAI>(creature);
}
struct npc_necromancerAI : public hyjal_trashAI
@@ -852,7 +854,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_bansheeAI>(creature);
+ return GetHyjalAI<npc_bansheeAI>(creature);
}
struct npc_bansheeAI : public hyjal_trashAI
@@ -952,7 +954,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_crypt_fiendAI>(creature);
+ return GetHyjalAI<npc_crypt_fiendAI>(creature);
}
struct npc_crypt_fiendAI : public hyjal_trashAI
@@ -1038,7 +1040,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_fel_stalkerAI>(creature);
+ return GetHyjalAI<npc_fel_stalkerAI>(creature);
}
struct npc_fel_stalkerAI : public hyjal_trashAI
@@ -1124,7 +1126,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_frost_wyrmAI>(creature);
+ return GetHyjalAI<npc_frost_wyrmAI>(creature);
}
struct npc_frost_wyrmAI : public hyjal_trashAI
@@ -1172,7 +1174,7 @@ public:
float x, y, z;
me->GetPosition(x, y, z);
- z = me->GetMap()->GetHeight(me->GetPhases(), x, y, z);
+ me->UpdateGroundPositionZ(x, y, z);
me->GetMotionMaster()->MovePoint(0, x, y, z);
me->SetPosition(x, y, z, 0);
}
@@ -1244,7 +1246,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_gargoyleAI>(creature);
+ return GetHyjalAI<npc_gargoyleAI>(creature);
}
struct npc_gargoyleAI : public hyjal_trashAI
@@ -1290,7 +1292,7 @@ public:
{
float x, y, z;
me->GetPosition(x, y, z);
- z = me->GetMap()->GetHeight(me->GetPhases(), x, y, z);
+ me->UpdateGroundPositionZ(x, y, z);
me->GetMotionMaster()->MovePoint(0, x, y, z);
me->SetPosition(x, y, z, 0);
hyjal_trashAI::JustDied(killer);
@@ -1382,7 +1384,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new alliance_riflemanAI(creature);
+ return GetHyjalAI<alliance_riflemanAI>(creature);
}
struct alliance_riflemanAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
index 39dfcabc6ea..8e7e0f4b246 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
@@ -24,10 +24,13 @@ SDCategory: Caverns of Time, Mount Hyjal
EndScriptData */
#include "ScriptMgr.h"
-#include "InstanceScript.h"
-#include "ScriptedCreature.h"
+#include "Creature.h"
+#include "CreatureAI.h"
+#include "GameObject.h"
#include "hyjal.h"
+#include "InstanceScript.h"
#include "Log.h"
+#include "Map.h"
/* Battle of Mount Hyjal encounters:
0 - Rage Winterchill event
@@ -51,7 +54,7 @@ ObjectData const creatureData[] =
class instance_hyjal : public InstanceMapScript
{
public:
- instance_hyjal() : InstanceMapScript("instance_hyjal", 534) { }
+ instance_hyjal() : InstanceMapScript(HyjalScriptName, 534) { }
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp
index 93fc93f348e..470d5f7f90c 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp
@@ -24,8 +24,8 @@ SDCategory:
Script Data End */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "culling_of_stratholme.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -114,7 +114,7 @@ class boss_epoch : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_epochAI>(creature);
+ return GetCullingOfStratholmeAI<boss_epochAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp
index 1a7452732f9..5ea544a3f1b 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp
@@ -16,8 +16,8 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "culling_of_stratholme.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -104,7 +104,7 @@ class boss_infinite_corruptor : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_infinite_corruptorAI>(creature);
+ return GetCullingOfStratholmeAI<boss_infinite_corruptorAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp
index 1c05b82d06b..1e24c9780e6 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp
@@ -24,9 +24,11 @@ SDCategory:
Script Data End */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "culling_of_stratholme.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
#include "Player.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -64,7 +66,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_mal_ganisAI>(creature);
+ return GetCullingOfStratholmeAI<boss_mal_ganisAI>(creature);
}
struct boss_mal_ganisAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp
index e4252ab7e7a..11de41f5c74 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp
@@ -16,8 +16,8 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "culling_of_stratholme.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -99,7 +99,7 @@ class boss_meathook : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_meathookAI>(creature);
+ return GetCullingOfStratholmeAI<boss_meathookAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp
index cb512c02cf4..3030f50a74c 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp
@@ -16,8 +16,8 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "culling_of_stratholme.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -120,7 +120,7 @@ class boss_salramm : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_salrammAI>(creature);
+ return GetCullingOfStratholmeAI<boss_salrammAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
index 9de4194c733..f28c9e06e79 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
@@ -16,13 +16,16 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
#include "culling_of_stratholme.h"
-#include "ScriptedEscortAI.h"
+#include "GameObject.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
#include "PassiveAI.h"
#include "Player.h"
+#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
#include "SpellInfo.h"
+#include "TemporarySummon.h"
enum Says
{
@@ -343,7 +346,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_arthasAI>(creature);
+ return GetCullingOfStratholmeAI<npc_arthasAI>(creature);
}
struct npc_arthasAI : public npc_escortAI
@@ -1256,7 +1259,7 @@ class npc_crate_helper : public CreatureScript
instance->SetData(DATA_CRATE_COUNT, instance->GetData(DATA_CRATE_COUNT) + 1);
if (GameObject* crate = me->FindNearestGameObject(GO_SUSPICIOUS_CRATE, 5.0f))
{
- crate->SummonGameObject(GO_PLAGUED_CRATE, *crate, G3D::Quat(), DAY);
+ crate->SummonGameObject(GO_PLAGUED_CRATE, *crate, QuaternionData(), DAY);
crate->Delete();
}
}
@@ -1268,7 +1271,7 @@ class npc_crate_helper : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return new npc_crate_helperAI(creature);
+ return GetCullingOfStratholmeAI<npc_crate_helperAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h
index 0cd1a7a6459..b6c93aa939e 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h
@@ -18,8 +18,11 @@
#ifndef DEF_CULLING_OF_STRATHOLME_H
#define DEF_CULLING_OF_STRATHOLME_H
-#define DataHeader "CS"
+#include "CreatureAIImpl.h"
+
#define CoSScriptName "instance_culling_of_stratholme"
+#define DataHeader "CS"
+
uint32 const EncounterCount = 5;
enum CSDataTypes
@@ -100,4 +103,10 @@ enum CSInstanceEvents
EVENT_INFINITE_TIMER = 1
};
+template<typename AI>
+inline AI* GetCullingOfStratholmeAI(Creature* creature)
+{
+ return GetInstanceAI<AI>(creature, CoSScriptName);
+}
+
#endif
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
index 116a04e4291..ef56283f024 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
@@ -16,12 +16,15 @@
*/
#include "ScriptMgr.h"
-#include "InstanceScript.h"
-#include "CreatureTextMgr.h"
+#include "Creature.h"
+#include "CreatureAI.h"
#include "culling_of_stratholme.h"
-#include "Player.h"
+#include "EventMap.h"
+#include "GameObject.h"
+#include "InstanceScript.h"
+#include "Map.h"
#include "TemporarySummon.h"
-#include "SpellInfo.h"
+#include "WorldStatePackets.h"
/* Culling of Stratholme encounters:
0 - Meathook
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
index e23d81aab67..be1e8eefc73 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
@@ -24,8 +24,9 @@ SDCategory: Caverns of Time, Old Hillsbrad Foothills
EndScriptData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
+#include "InstanceScript.h"
#include "old_hillsbrad.h"
+#include "ScriptedCreature.h"
/*######################
# boss_captain_skarloc #
@@ -54,7 +55,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_captain_skarlocAI>(creature);
+ return GetOldHillsbradAI<boss_captain_skarlocAI>(creature);
}
struct boss_captain_skarlocAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp
index 2625434b09a..06b876a3f92 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_epoch_hunter.cpp
@@ -24,8 +24,9 @@ SDCategory: Caverns of Time, Old Hillsbrad Foothills
EndScriptData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
+#include "InstanceScript.h"
#include "old_hillsbrad.h"
+#include "ScriptedCreature.h"
/*###################
# boss_epoch_hunter #
@@ -52,7 +53,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_epoch_hunterAI>(creature);
+ return GetOldHillsbradAI<boss_epoch_hunterAI>(creature);
}
struct boss_epoch_hunterAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
index f3b302497da..f5b2743b487 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
@@ -24,7 +24,8 @@ SDCategory: Caverns of Time, Old Hillsbrad Foothills
EndScriptData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
+#include "GameObject.h"
+#include "InstanceScript.h"
#include "old_hillsbrad.h"
#include "ScriptedEscortAI.h"
@@ -101,7 +102,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_lieutenant_drakeAI(creature);
+ return GetOldHillsbradAI<boss_lieutenant_drakeAI>(creature);
}
struct boss_lieutenant_drakeAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
index ee798819ee6..01c3d39fbe0 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
@@ -24,11 +24,12 @@ SDCategory: Caverns of Time, Old Hillsbrad Foothills
EndScriptData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
+#include "Creature.h"
#include "InstanceScript.h"
+#include "Log.h"
+#include "Map.h"
#include "old_hillsbrad.h"
#include "Player.h"
-#include "Log.h"
#define MAX_ENCOUNTER 6
@@ -44,7 +45,7 @@ EndScriptData */
class instance_old_hillsbrad : public InstanceMapScript
{
public:
- instance_old_hillsbrad() : InstanceMapScript("instance_old_hillsbrad", 560) { }
+ instance_old_hillsbrad() : InstanceMapScript(OHScriptName, 560) { }
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
@@ -74,14 +75,9 @@ public:
{
Map::PlayerList const& players = instance->GetPlayers();
- if (!players.isEmpty())
- {
- for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- {
- if (Player* player = itr->GetSource())
- return player;
- }
- }
+ for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
+ if (Player* player = itr->GetSource())
+ return player;
TC_LOG_DEBUG("scripts", "Instance Old Hillsbrad: GetPlayerInMap, but PlayerList is empty!");
return NULL;
@@ -91,14 +87,9 @@ public:
{
Map::PlayerList const& players = instance->GetPlayers();
- if (!players.isEmpty())
- {
- for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- {
- if (Player* player = itr->GetSource())
- player->KilledMonsterCredit(LODGE_QUEST_TRIGGER);
- }
- }
+ for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
+ if (Player* player = itr->GetSource())
+ player->KilledMonsterCredit(LODGE_QUEST_TRIGGER);
}
void OnCreatureCreate(Creature* creature) override
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
index 898d780b8b0..c96aacef21b 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
@@ -30,11 +30,12 @@ npc_taretha
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
-#include "ScriptedEscortAI.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
#include "old_hillsbrad.h"
#include "Player.h"
+#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
enum Erozion
{
@@ -187,7 +188,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_thrall_old_hillsbradAI>(creature);
+ return GetOldHillsbradAI<npc_thrall_old_hillsbradAI>(creature);
}
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
@@ -565,7 +566,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_tarethaAI>(creature);
+ return GetOldHillsbradAI<npc_tarethaAI>(creature);
}
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h
index ac5abaf9fb8..b7f36987542 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h
@@ -19,6 +19,9 @@
#ifndef DEF_OLD_HILLSBRAD_H
#define DEF_OLD_HILLSBRAD_H
+#include "CreatureAIImpl.h"
+
+#define OHScriptName "instance_old_hillsbrad"
#define DataHeader "OH"
enum OHDataTypes
@@ -41,5 +44,13 @@ enum OHWorldStateIds
WORLD_STATE_OH = 2436
};
+
+template<typename AI>
+inline AI* GetOldHillsbradAI(Creature* creature)
+{
+ return GetInstanceAI<AI>(creature, OHScriptName);
+}
+
+
#endif
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp
index 17b51ddb22f..30e07fbbde5 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp
@@ -24,6 +24,7 @@ Category: Caverns of Time, The Dark Portal
*/
#include "ScriptMgr.h"
+#include "InstanceScript.h"
#include "ScriptedCreature.h"
#include "the_black_morass.h"
@@ -141,7 +142,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_aeonusAI>(creature);
+ return GetBlackMorassAI<boss_aeonusAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp
index 55482fd37d6..f7fc518d2ef 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp
@@ -24,6 +24,7 @@ Category: Caverns of Time, The Black Morass
*/
#include "ScriptMgr.h"
+#include "InstanceScript.h"
#include "ScriptedCreature.h"
#include "the_black_morass.h"
@@ -147,7 +148,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_chrono_lord_dejaAI>(creature);
+ return GetBlackMorassAI<boss_chrono_lord_dejaAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp
index 3ad05a79065..7006fcc4e50 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp
@@ -24,6 +24,7 @@ Category: Caverns of Time, The Black Morass
*/
#include "ScriptMgr.h"
+#include "InstanceScript.h"
#include "ScriptedCreature.h"
#include "the_black_morass.h"
@@ -145,7 +146,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_temporusAI>(creature);
+ return GetBlackMorassAI<boss_temporusAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp
index 81990a81fb3..bc64a7bc959 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp
@@ -24,13 +24,14 @@ Category: Caverns of Time, The Black Morass
*/
#include "ScriptMgr.h"
+#include "EventMap.h"
#include "InstanceScript.h"
-#include "the_black_morass.h"
+#include "Log.h"
+#include "Map.h"
#include "Player.h"
-#include "TemporarySummon.h"
#include "SpellInfo.h"
-#include "ScriptedCreature.h"
-#include "Log.h"
+#include "the_black_morass.h"
+#include "TemporarySummon.h"
enum Misc
{
@@ -72,7 +73,7 @@ enum EventIds
class instance_the_black_morass : public InstanceMapScript
{
public:
- instance_the_black_morass() : InstanceMapScript("instance_the_black_morass", 269) { }
+ instance_the_black_morass() : InstanceMapScript(TBMScriptName, 269) { }
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
index e164b6ca2fa..36ce378f575 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
@@ -30,12 +30,14 @@ npc_saat
EndContentData */
#include "ScriptMgr.h"
+#include "InstanceScript.h"
+#include "Log.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
-#include "the_black_morass.h"
-#include "Player.h"
#include "SpellInfo.h"
-#include "Log.h"
+#include "the_black_morass.h"
enum MedivhBm
{
@@ -71,7 +73,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_medivh_bmAI>(creature);
+ return GetBlackMorassAI<npc_medivh_bmAI>(creature);
}
struct npc_medivh_bmAI : public ScriptedAI
@@ -265,7 +267,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_time_riftAI>(creature);
+ return GetBlackMorassAI<npc_time_riftAI>(creature);
}
struct npc_time_riftAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h
index db477757f09..5423058685a 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h
@@ -19,6 +19,9 @@
#ifndef DEF_THEBLACKMORASS_H
#define DEF_THEBLACKMORASS_H
+#include "CreatureAIImpl.h"
+
+#define TBMScriptName "instance_the_black_morass"
#define DataHeader "TBM"
uint32 const EncounterCount = 2;
@@ -65,5 +68,11 @@ enum TBMCreatureIds
NPC_INFINITE_VANQUISHER = 18995
};
+template<typename AI>
+inline AI* GetBlackMorassAI(Creature* creature)
+{
+ return GetInstanceAI<AI>(creature, TBMScriptName);
+}
+
#endif
diff --git a/src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp b/src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp
index 22ee9fb6bea..f997bcf7460 100644
--- a/src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp
+++ b/src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp
@@ -24,6 +24,7 @@ gets instead the deserter debuff.
#include "ScriptMgr.h"
#include "InstanceScript.h"
+#include "Map.h"
// Bosses (East)
// 0 - Pusillin
diff --git a/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp b/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
index d6933f03032..508b010542e 100644
--- a/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
+++ b/src/server/scripts/Kalimdor/Firelands/boss_alysrazor.cpp
@@ -15,17 +15,17 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ObjectMgr.h"
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "PassiveAI.h"
-#include "SpellScript.h"
-#include "MoveSplineInit.h"
-#include "Cell.h"
#include "CellImpl.h"
-#include "GridNotifiers.h"
-#include "GridNotifiersImpl.h"
+#include "DB2Stores.h"
#include "firelands.h"
+#include "GridNotifiersImpl.h"
+#include "ObjectAccessor.h"
+#include "PassiveAI.h"
+#include "ScriptedCreature.h"
+#include "SpellInfo.h"
+#include "SpellScript.h"
+#include "TemporarySummon.h"
enum Texts
{
@@ -245,7 +245,7 @@ class npc_harbinger_of_flame : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return new npc_harbinger_of_flameAI(creature);
+ return GetFirelandsAI<npc_harbinger_of_flameAI>(creature);
}
};
@@ -347,7 +347,7 @@ class npc_blazing_monstrosity : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return new npc_blazing_monstrosityAI(creature);
+ return GetFirelandsAI<npc_blazing_monstrosityAI>(creature);
}
};
@@ -387,7 +387,7 @@ class npc_molten_barrage : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return new npc_molten_barrageAI(creature);
+ return GetFirelandsAI<npc_molten_barrageAI>(creature);
}
};
@@ -490,7 +490,7 @@ class npc_egg_pile : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return new npc_egg_pileAI(creature);
+ return GetFirelandsAI<npc_egg_pileAI>(creature);
}
};
@@ -541,17 +541,14 @@ class spell_alysrazor_turn_monstrosity : public SpellScriptLoader
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- if (!sSpellMgr->GetSpellInfo(SPELL_GENERIC_DUMMY_CAST))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_KNOCKBACK_RIGHT))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_KNOCKBACK_LEFT))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_KNOCKBACK_FORWARD))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_KNOCKBACK_BACK))
- return false;
- return true;
+ return ValidateSpellInfo(
+ {
+ SPELL_GENERIC_DUMMY_CAST,
+ SPELL_KNOCKBACK_RIGHT,
+ SPELL_KNOCKBACK_LEFT,
+ SPELL_KNOCKBACK_FORWARD,
+ SPELL_KNOCKBACK_BACK
+ });
}
void KnockBarrage(SpellEffIndex effIndex)
@@ -670,9 +667,7 @@ class spell_alysrazor_fieroblast : public SpellScriptLoader
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- if (!sSpellMgr->GetSpellInfo(SPELL_FIRE_IT_UP))
- return false;
- return true;
+ return ValidateSpellInfo({ SPELL_FIRE_IT_UP });
}
void FireItUp()
diff --git a/src/server/scripts/Kalimdor/Firelands/firelands.cpp b/src/server/scripts/Kalimdor/Firelands/firelands.cpp
new file mode 100644
index 00000000000..092ff5c3b2a
--- /dev/null
+++ b/src/server/scripts/Kalimdor/Firelands/firelands.cpp
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2008-2017 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "firelands.h"
+#include "Creature.h"
+#include "CreatureAI.h"
+
+bool DelayedAttackStartEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
+{
+ _owner->AI()->DoZoneInCombat(_owner, 200.0f);
+ return true;
+}
diff --git a/src/server/scripts/Kalimdor/Firelands/firelands.h b/src/server/scripts/Kalimdor/Firelands/firelands.h
index d160bbdef65..59fa43baeec 100644
--- a/src/server/scripts/Kalimdor/Firelands/firelands.h
+++ b/src/server/scripts/Kalimdor/Firelands/firelands.h
@@ -18,8 +18,10 @@
#ifndef FIRELANDS_H_
#define FIRELANDS_H_
-#include "Map.h"
-#include "CreatureAI.h"
+#include "CreatureAIImpl.h"
+#include "EventProcessor.h"
+
+class Creature;
#define DataHeader "FL"
#define FirelandsScriptName "instance_firelands"
@@ -52,24 +54,16 @@ class DelayedAttackStartEvent : public BasicEvent
public:
DelayedAttackStartEvent(Creature* owner) : _owner(owner) { }
- bool Execute(uint64 /*e_time*/, uint32 /*p_time*/) override
- {
- _owner->AI()->DoZoneInCombat(_owner, 200.0f);
- return true;
- }
+ bool Execute(uint64 /*e_time*/, uint32 /*p_time*/) override;
private:
Creature* _owner;
};
-template<class AI>
-CreatureAI* GetFirelandsAI(Creature* creature)
+template<typename AI>
+inline AI* GetFirelandsAI(Creature* creature)
{
- if (InstanceMap* instance = creature->GetMap()->ToInstanceMap())
- if (instance->GetInstanceScript())
- if (instance->GetScriptId() == sObjectMgr->GetScriptId(FirelandsScriptName))
- return new AI(creature);
- return NULL;
+ return GetInstanceAI<AI>(creature, FirelandsScriptName);
}
#endif // FIRELANDS_H_
diff --git a/src/server/scripts/Kalimdor/Firelands/instance_firelands.cpp b/src/server/scripts/Kalimdor/Firelands/instance_firelands.cpp
index e5edb9af6fa..da1fe55d2a5 100644
--- a/src/server/scripts/Kalimdor/Firelands/instance_firelands.cpp
+++ b/src/server/scripts/Kalimdor/Firelands/instance_firelands.cpp
@@ -16,8 +16,10 @@
*/
#include "ScriptMgr.h"
-#include "InstanceScript.h"
+#include "Creature.h"
#include "firelands.h"
+#include "InstanceScript.h"
+#include "Map.h"
class instance_firelands : public InstanceMapScript
{
diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp
index 9e0c6a12e17..9efa74edd4f 100644
--- a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp
+++ b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp
@@ -15,15 +15,15 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ObjectMgr.h"
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "SpellScript.h"
-#include "SpellAuraEffects.h"
#include "GridNotifiers.h"
-#include "Player.h"
-#include "ObjectAccessor.h"
#include "halls_of_origination.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
+#include "ScriptedCreature.h"
+#include "SpellAuraEffects.h"
+#include "SpellScript.h"
enum Texts
{
@@ -289,7 +289,7 @@ class npc_omega_stance : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return new npc_omega_stanceAI(creature);
+ return GetHallsOfOriginationAI<npc_omega_stanceAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp
index 587c210bf50..bdf4e6e3c0a 100644
--- a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp
+++ b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_earthrager_ptah.cpp
@@ -15,15 +15,15 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ObjectMgr.h"
#include "ScriptMgr.h"
+#include "halls_of_origination.h"
+#include "InstanceScript.h"
+#include "Player.h"
#include "ScriptedCreature.h"
-#include "SpellScript.h"
#include "SpellAuraEffects.h"
-#include "Player.h"
+#include "SpellScript.h"
+#include "TemporarySummon.h"
#include "Weather.h"
-#include "WorldSession.h"
-#include "halls_of_origination.h"
enum Texts
{
@@ -107,6 +107,7 @@ public:
for (std::list<Creature*>::iterator itr = units.begin(); itr != units.end(); ++itr)
(*itr)->DespawnOrUnsummon();
+ units.clear();
GetCreatureListWithEntryInGrid(units, me, NPC_JEWELED_SCARAB, 100.0f);
for (std::list<Creature*>::iterator itr = units.begin(); itr != units.end(); ++itr)
(*itr)->DespawnOrUnsummon();
diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp
index 0aa63f2811b..c8c4c57bac7 100644
--- a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp
+++ b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_temple_guardian_anhuur.cpp
@@ -15,14 +15,15 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ObjectMgr.h"
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "SpellScript.h"
-#include "SpellAuraEffects.h"
#include "GridNotifiers.h"
-#include "Player.h"
#include "halls_of_origination.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
+#include "ScriptedCreature.h"
+#include "SpellAuraEffects.h"
+#include "SpellScript.h"
enum Texts
{
diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.h b/src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.h
index 9a252662e9e..43b54694841 100644
--- a/src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.h
+++ b/src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.h
@@ -18,6 +18,8 @@
#ifndef HALLS_OF_ORIGINATION_H
#define HALLS_OF_ORIGINATION_H
+#include "CreatureAIImpl.h"
+
#define DataHeader "HOO"
#define HoOScriptName "instance_halls_of_origination"
@@ -114,14 +116,10 @@ enum HOOGlobalActions
ACTION_OMEGA_TRIGGER,
};
-template<class AI>
-CreatureAI* GetHallsOfOriginationAI(Creature* creature)
+template<typename AI>
+inline AI* GetHallsOfOriginationAI(Creature* creature)
{
- if (InstanceMap* instance = creature->GetMap()->ToInstanceMap())
- if (instance->GetInstanceScript())
- if (instance->GetScriptId() == sObjectMgr->GetScriptId(HoOScriptName))
- return new AI(creature);
- return NULL;
+ return GetInstanceAI<AI>(creature, HoOScriptName);
}
#endif // HALLS_OF_ORIGINATION_H
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp
index 37f79658906..047f3ae9836 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_landslide.cpp
@@ -24,6 +24,7 @@ SDCategory: Maraudon
EndScriptData */
#include "ScriptMgr.h"
+#include "maraudon.h"
#include "ScriptedCreature.h"
enum Spells
@@ -40,7 +41,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_landslideAI(creature);
+ return GetMaraudonAI<boss_landslideAI>(creature);
}
struct boss_landslideAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
index 51065ed35d4..a163dea9765 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_noxxion.cpp
@@ -24,6 +24,7 @@ SDCategory: Maraudon
EndScriptData */
#include "ScriptMgr.h"
+#include "maraudon.h"
#include "ScriptedCreature.h"
enum Spells
@@ -39,7 +40,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_noxxionAI(creature);
+ return GetMaraudonAI<boss_noxxionAI>(creature);
}
struct boss_noxxionAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp
index e5b98337883..c8116fe027b 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_princess_theradras.cpp
@@ -24,7 +24,7 @@ SDCategory: Maraudon
EndScriptData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
+#include "maraudon.h"
#include "ScriptedCreature.h"
enum Spells
@@ -42,7 +42,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_ptheradrasAI(creature);
+ return GetMaraudonAI<boss_ptheradrasAI>(creature);
}
struct boss_ptheradrasAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/Maraudon/instance_maraudon.cpp b/src/server/scripts/Kalimdor/Maraudon/instance_maraudon.cpp
index b3e3552b4d5..35d5760605f 100644
--- a/src/server/scripts/Kalimdor/Maraudon/instance_maraudon.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/instance_maraudon.cpp
@@ -24,11 +24,13 @@ gets instead the deserter debuff.
#include "ScriptMgr.h"
#include "InstanceScript.h"
+#include "Map.h"
+#include "maraudon.h"
class instance_maraudon : public InstanceMapScript
{
public:
- instance_maraudon() : InstanceMapScript("instance_maraudon", 349) { }
+ instance_maraudon() : InstanceMapScript(MaraudonScriptName, 349) { }
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
diff --git a/src/server/scripts/Kalimdor/Maraudon/maraudon.h b/src/server/scripts/Kalimdor/Maraudon/maraudon.h
new file mode 100644
index 00000000000..a60deb6b081
--- /dev/null
+++ b/src/server/scripts/Kalimdor/Maraudon/maraudon.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2008-2017 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef maraudon_h__
+#define maraudon_h__
+
+#include "CreatureAIImpl.h"
+
+#define MaraudonScriptName "instance_maraudon"
+
+template<typename AI>
+inline AI* GetMaraudonAI(Creature* creature)
+{
+ return GetInstanceAI<AI>(creature, MaraudonScriptName);
+}
+
+#endif // maraudon_h__
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
index 1da2fcb45c3..049ab5ef45e 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp
@@ -26,12 +26,14 @@ SDCategory: Onyxia's Lair
EndScriptData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "Cell.h"
#include "CellImpl.h"
-#include "GridNotifiers.h"
+#include "CreatureAIImpl.h"
#include "GridNotifiersImpl.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
#include "onyxias_lair.h"
+#include "ScriptedCreature.h"
+#include "TemporarySummon.h"
enum Yells
{
@@ -492,7 +494,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_onyxiaAI>(creature);
+ return GetInstanceAI<boss_onyxiaAI>(creature, OLScriptName);
}
};
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
index a0dfec7d722..e7472e1abd4 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
@@ -23,11 +23,11 @@ SDCategory: Onyxia's Lair
EndScriptData */
#include "ScriptMgr.h"
-#include "InstanceScript.h"
-#include "Cell.h"
+#include "AreaBoundary.h"
#include "CellImpl.h"
-#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
+#include "InstanceScript.h"
+#include "Map.h"
#include "onyxias_lair.h"
#include "TemporarySummon.h"
@@ -39,7 +39,7 @@ BossBoundaryData const boundaries =
class instance_onyxias_lair : public InstanceMapScript
{
public:
- instance_onyxias_lair() : InstanceMapScript("instance_onyxias_lair", 249) { }
+ instance_onyxias_lair() : InstanceMapScript(OLScriptName, 249) { }
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h b/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h
index ba931c86ccd..d9d86dce711 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h
@@ -18,6 +18,7 @@
#ifndef DEF_ONYXIAS_LAIR_H
#define DEF_ONYXIAS_LAIR_H
+#define OLScriptName "instance_onyxias_lair"
#define DataHeader "OL"
uint32 const EncounterCount = 1;
diff --git a/src/server/scripts/Kalimdor/RagefireChasm/instance_ragefire_chasm.cpp b/src/server/scripts/Kalimdor/RagefireChasm/instance_ragefire_chasm.cpp
index c49d6b296ec..ba00eb87728 100644
--- a/src/server/scripts/Kalimdor/RagefireChasm/instance_ragefire_chasm.cpp
+++ b/src/server/scripts/Kalimdor/RagefireChasm/instance_ragefire_chasm.cpp
@@ -24,6 +24,7 @@ gets instead the deserter debuff.
#include "ScriptMgr.h"
#include "InstanceScript.h"
+#include "Map.h"
class instance_ragefire_chasm : public InstanceMapScript
{
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
index ffb75543d84..2c531662492 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
@@ -16,8 +16,8 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "razorfen_downs.h"
+#include "ScriptedCreature.h"
enum Say
{
@@ -151,7 +151,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_amnennar_the_coldbringerAI(creature);
+ return GetRazorfenDownsAI<boss_amnennar_the_coldbringerAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp
index 553375db4f8..4cd75637854 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp
@@ -16,8 +16,8 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "razorfen_downs.h"
+#include "ScriptedCreature.h"
enum Say
{
@@ -97,7 +97,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_gluttonAI(creature);
+ return GetRazorfenDownsAI<boss_gluttonAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp
index 2f6e469f257..a2294e120b0 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp
@@ -16,8 +16,8 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "razorfen_downs.h"
+#include "ScriptedCreature.h"
enum Say
{
@@ -129,7 +129,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_mordresh_fire_eyeAI(creature);
+ return GetRazorfenDownsAI<boss_mordresh_fire_eyeAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp
index 2ad263d325b..c4b521a0130 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp
@@ -16,8 +16,8 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "razorfen_downs.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -100,7 +100,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_tuten_kashAI(creature);
+ return GetRazorfenDownsAI<boss_tuten_kashAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
index 24cb88a071c..d485d6f7802 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
@@ -28,14 +28,14 @@ npc_henry_stern
EndContentData */
#include "ScriptMgr.h"
+#include "CellImpl.h"
+#include "GridNotifiersImpl.h"
+#include "InstanceScript.h"
+#include "Player.h"
+#include "razorfen_downs.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
-#include "razorfen_downs.h"
-#include "Player.h"
-#include "GridNotifiers.h"
-#include "GridNotifiersImpl.h"
-#include "Cell.h"
-#include "CellImpl.h"
+#include "TemporarySummon.h"
/*###
## npc_belnistrasz for Quest 3525 "Extinguishing the Idol"
@@ -204,7 +204,7 @@ public:
case EVENT_COMPLETE:
{
DoCast(me, SPELL_IDOM_ROOM_CAMERA_SHAKE);
- me->SummonGameObject(GO_BELNISTRASZS_BRAZIER, 2577.196f, 947.0781f, 53.16757f, 2.356195f, G3D::Quat(0.f, 0.f, 0.9238796f, 0.3826832f), 3600);
+ me->SummonGameObject(GO_BELNISTRASZS_BRAZIER, 2577.196f, 947.0781f, 53.16757f, 2.356195f, QuaternionData(0.f, 0.f, 0.9238796f, 0.3826832f), 3600);
std::list<WorldObject*> ClusterList;
Trinity::AllWorldObjectsInRange objects(me, 50.0f);
Trinity::WorldObjectListSearcher<Trinity::AllWorldObjectsInRange> searcher(me, ClusterList, objects);
@@ -255,7 +255,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_belnistraszAI>(creature);
+ return GetRazorfenDownsAI<npc_belnistraszAI>(creature);
}
};
@@ -293,7 +293,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_idol_room_spawnerAI>(creature);
+ return GetRazorfenDownsAI<npc_idol_room_spawnerAI>(creature);
}
};
@@ -363,7 +363,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_tomb_creatureAI>(creature);
+ return GetRazorfenDownsAI<npc_tomb_creatureAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h
index 2501b399d11..fd6f687afb3 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h
@@ -18,6 +18,8 @@
#ifndef DEF_RAZORFEN_DOWNS_H
#define DEF_RAZORFEN_DOWNS_H
+#include "CreatureAIImpl.h"
+
#define RFDScriptName "instance_razorfen_downs"
#define DataHeader "RFD"
@@ -61,8 +63,8 @@ enum RFDGameObjectIds
GO_BELNISTRASZS_BRAZIER = 152097
};
-template<class AI>
-AI* GetRazorfenDownsAI(Creature* creature)
+template<typename AI>
+inline AI* GetRazorfenDownsAI(Creature* creature)
{
return GetInstanceAI<AI>(creature, RFDScriptName);
}
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
index dc0bbd57255..8f704f906ce 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
@@ -24,17 +24,18 @@ SDCategory: Razorfen Kraul
EndScriptData */
#include "ScriptMgr.h"
+#include "GameObject.h"
#include "InstanceScript.h"
-#include "razorfen_kraul.h"
-#include "Player.h"
#include "Log.h"
+#include "Map.h"
+#include "razorfen_kraul.h"
#define WARD_KEEPERS_NR 2
class instance_razorfen_kraul : public InstanceMapScript
{
public:
- instance_razorfen_kraul() : InstanceMapScript("instance_razorfen_kraul", 47) { }
+ instance_razorfen_kraul() : InstanceMapScript(RFKScriptName, 47) { }
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
@@ -52,18 +53,6 @@ public:
ObjectGuid DoorWardGUID;
int WardKeeperDeath;
- Player* GetPlayerInMap()
- {
- Map::PlayerList const& players = instance->GetPlayers();
- for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- {
- if (Player* player = itr->GetSource())
- return player;
- }
- TC_LOG_DEBUG("scripts", "Instance Razorfen Kraul: GetPlayerInMap, but PlayerList is empty!");
- return NULL;
- }
-
void OnGameObjectCreate(GameObject* go) override
{
switch (go->GetEntry())
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
index 1cf97e8e6dc..c8ba60f7aef 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
@@ -17,11 +17,11 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedEscortAI.h"
-#include "razorfen_kraul.h"
-#include "Player.h"
+#include "GameObject.h"
#include "PetAI.h"
+#include "Player.h"
+#include "razorfen_kraul.h"
+#include "ScriptedEscortAI.h"
#include "SpellScript.h"
enum Willix
@@ -132,7 +132,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new npc_willixAI(creature);
+ return GetRazorfenKraulAI<npc_willixAI>(creature);
}
};
@@ -151,7 +151,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new npc_snufflenose_gopherAI(creature);
+ return GetRazorfenKraulAI<npc_snufflenose_gopherAI>(creature);
}
struct npc_snufflenose_gopherAI : public PetAI
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.h b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.h
index 1de42a0bb3a..f8bb926baff 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.h
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.h
@@ -19,7 +19,17 @@
#ifndef DEF_RAZORFEN_KRAUL_H
#define DEF_RAZORFEN_KRAUL_H
+#include "CreatureAIImpl.h"
+
+#define RFKScriptName "instance_razorfen_kraul"
#define DataHeader "RFK"
#define EVENT_WARD_KEEPER 1
+
+template<typename AI>
+inline AI* GetRazorfenKraulAI(Creature* creature)
+{
+ return GetInstanceAI<AI>(creature, RFKScriptName);
+}
+
#endif
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
index 23247e0ba06..aa383be1443 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
@@ -17,9 +17,11 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "Player.h"
+#include "InstanceScript.h"
+#include "Map.h"
+#include "ObjectAccessor.h"
#include "ruins_of_ahnqiraj.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -241,7 +243,7 @@ class boss_ayamiss : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_ayamissAI>(creature);
+ return GetAQ20AI<boss_ayamissAI>(creature);
}
};
@@ -259,14 +261,13 @@ class npc_hive_zara_larva : public CreatureScript
void MovementInform(uint32 type, uint32 id) override
{
- if (type == POINT_MOTION_TYPE)
- if (id == POINT_PARALYZE)
- if (Player* target = ObjectAccessor::GetPlayer(*me, _instance->GetGuidData(DATA_PARALYZED)))
+ if (type == POINT_MOTION_TYPE && id == POINT_PARALYZE)
+ if (Unit* target = ObjectAccessor::GetUnit(*me, _instance->GetGuidData(DATA_PARALYZED)))
+ if (target->GetTypeId() == TYPEID_PLAYER)
DoCast(target, SPELL_FEED); // Omnomnom
}
void MoveInLineOfSight(Unit* who) override
-
{
if (_instance->GetBossState(DATA_AYAMISS) == IN_PROGRESS)
return;
@@ -295,7 +296,7 @@ class npc_hive_zara_larva : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_hive_zara_larvaAI>(creature);
+ return GetAQ20AI<npc_hive_zara_larvaAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
index 735463744d7..88097b1ec30 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
@@ -17,9 +17,11 @@
*/
#include "ScriptMgr.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
+#include "ruins_of_ahnqiraj.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
-#include "ruins_of_ahnqiraj.h"
enum Emotes
{
@@ -77,7 +79,7 @@ class boss_buru : public CreatureScript
BossAI::EnterEvadeMode(why);
for (ObjectGuid eggGuid : Eggs)
- if (Creature* egg = me->GetMap()->GetCreature(eggGuid))
+ if (Creature* egg = ObjectAccessor::GetCreature(*me, eggGuid))
egg->Respawn();
Eggs.clear();
@@ -161,7 +163,7 @@ class boss_buru : public CreatureScript
events.ScheduleEvent(EVENT_CREEPING_PLAGUE, 6000);
break;
case EVENT_RESPAWN_EGG:
- if (Creature* egg = me->GetMap()->GetCreature(*Eggs.begin()))
+ if (Creature* egg = ObjectAccessor::GetCreature(*me, Eggs.front()))
{
egg->Respawn();
Eggs.pop_front();
@@ -189,7 +191,7 @@ class boss_buru : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_buruAI(creature);
+ return GetAQ20AI<boss_buruAI>(creature);
}
};
@@ -208,7 +210,7 @@ class npc_buru_egg : public CreatureScript
void EnterCombat(Unit* attacker) override
{
- if (Creature* buru = me->GetMap()->GetCreature(_instance->GetGuidData(DATA_BURU)))
+ if (Creature* buru = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_BURU)))
if (!buru->IsInCombat())
buru->AI()->AttackStart(attacker);
}
@@ -216,7 +218,7 @@ class npc_buru_egg : public CreatureScript
void JustSummoned(Creature* who) override
{
if (who->GetEntry() == NPC_HATCHLING)
- if (Creature* buru = me->GetMap()->GetCreature(_instance->GetGuidData(DATA_BURU)))
+ if (Creature* buru = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_BURU)))
if (Unit* target = buru->AI()->SelectTarget(SELECT_TARGET_RANDOM))
who->AI()->AttackStart(target);
}
@@ -227,7 +229,7 @@ class npc_buru_egg : public CreatureScript
DoCastAOE(SPELL_EXPLODE_2, true); // Unknown purpose
DoCast(me, SPELL_SUMMON_HATCHLING, true);
- if (Creature* buru = me->GetMap()->GetCreature(_instance->GetGuidData(DATA_BURU)))
+ if (Creature* buru = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_BURU)))
if (boss_buru::boss_buruAI* buruAI = dynamic_cast<boss_buru::boss_buruAI*>(buru->AI()))
buruAI->ManageRespawn(me->GetGUID());
}
@@ -237,7 +239,7 @@ class npc_buru_egg : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_buru_eggAI>(creature);
+ return GetAQ20AI<npc_buru_eggAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
index 1e8db0f104c..3d208c4fd1b 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
@@ -15,11 +15,11 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ObjectMgr.h"
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ruins_of_ahnqiraj.h"
#include "CreatureTextMgr.h"
+#include "InstanceScript.h"
+#include "ruins_of_ahnqiraj.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -83,7 +83,7 @@ class boss_kurinnaxx : public CreatureScript
void JustDied(Unit* /*killer*/) override
{
_JustDied();
- if (Creature* Ossirian = me->GetMap()->GetCreature(instance->GetGuidData(DATA_OSSIRIAN)))
+ if (Creature* Ossirian = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_OSSIRIAN)))
sCreatureTextMgr->SendChat(Ossirian, SAY_KURINAXX_DEATH, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
}
@@ -136,7 +136,7 @@ class boss_kurinnaxx : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_kurinnaxxAI>(creature);
+ return GetAQ20AI<boss_kurinnaxxAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
index 9f214eb5e12..0c3dc662dde 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
@@ -16,8 +16,8 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "ruins_of_ahnqiraj.h"
+#include "ScriptedCreature.h"
enum Texts
{
@@ -183,7 +183,7 @@ class boss_moam : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_moamAI(creature);
+ return GetAQ20AI<boss_moamAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
index 8a111f1de10..beca6e88156 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
@@ -15,14 +15,16 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "ScriptMgr.h"
+#include "GameObject.h"
+#include "InstanceScript.h"
#include "MiscPackets.h"
#include "Player.h"
#include "ruins_of_ahnqiraj.h"
#include "ScriptedCreature.h"
-#include "ScriptMgr.h"
#include "SpellInfo.h"
+#include "TemporarySummon.h"
#include "Weather.h"
-#include "WorldPacket.h"
enum Texts
{
@@ -118,7 +120,8 @@ class boss_ossirian : public CreatureScript
if (spell->Id == SpellWeakness[i])
{
me->RemoveAurasDueToSpell(SPELL_SUPREME);
- ((TempSummon*)caster)->UnSummon();
+ if (Creature* creatureCaster = caster->ToCreature())
+ creatureCaster->DespawnOrUnsummon();
SpawnNextCrystal();
}
}
@@ -187,10 +190,10 @@ class boss_ossirian : public CreatureScript
if (CrystalIterator == NUM_CRYSTALS)
CrystalIterator = 0;
- if (Creature* Trigger = me->GetMap()->SummonCreature(NPC_OSSIRIAN_TRIGGER, CrystalCoordinates[CrystalIterator]))
+ if (Creature* Trigger = me->SummonCreature(NPC_OSSIRIAN_TRIGGER, CrystalCoordinates[CrystalIterator]))
{
TriggerGUID = Trigger->GetGUID();
- if (GameObject* Crystal = Trigger->SummonGameObject(GO_OSSIRIAN_CRYSTAL, CrystalCoordinates[CrystalIterator], G3D::Quat(), uint32(-1)))
+ if (GameObject* Crystal = Trigger->SummonGameObject(GO_OSSIRIAN_CRYSTAL, CrystalCoordinates[CrystalIterator], QuaternionData(), uint32(-1)))
{
CrystalGUID = Crystal->GetGUID();
++CrystalIterator;
@@ -269,7 +272,7 @@ class boss_ossirian : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_ossirianAI>(creature);
+ return GetAQ20AI<boss_ossirianAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
index 5fd456c0295..1ab55c301ba 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
@@ -15,10 +15,9 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ObjectMgr.h"
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "ruins_of_ahnqiraj.h"
+#include "ScriptedCreature.h"
enum Yells
{
@@ -130,7 +129,7 @@ class boss_rajaxx : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_rajaxxAI(creature);
+ return GetAQ20AI<boss_rajaxxAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp
index 2c3e23f4dd4..8a24b8bdaf3 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp
@@ -16,13 +16,15 @@
*/
#include "ScriptMgr.h"
+#include "Creature.h"
#include "InstanceScript.h"
+#include "Map.h"
#include "ruins_of_ahnqiraj.h"
class instance_ruins_of_ahnqiraj : public InstanceMapScript
{
public:
- instance_ruins_of_ahnqiraj() : InstanceMapScript("instance_ruins_of_ahnqiraj", 509) { }
+ instance_ruins_of_ahnqiraj() : InstanceMapScript(AQ20ScriptName, 509) { }
struct instance_ruins_of_ahnqiraj_InstanceMapScript : public InstanceScript
{
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h
index 944c2768b9d..42da5d7cf7c 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/ruins_of_ahnqiraj.h
@@ -18,6 +18,9 @@
#ifndef DEF_RUINS_OF_AHNQIRAJ_H
#define DEF_RUINS_OF_AHNQIRAJ_H
+#include "CreatureAIImpl.h"
+
+#define AQ20ScriptName "instance_ruins_of_ahnqiraj"
#define DataHeader "AQR"
enum AQRDataTypes
@@ -57,4 +60,10 @@ enum AQRGameObjectIds
GO_OSSIRIAN_CRYSTAL = 180619
};
+template<typename AI>
+inline AI* GetAQ20AI(Creature* creature)
+{
+ return GetInstanceAI<AI>(creature, AQ20ScriptName);
+}
+
#endif
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
index 8fd8e42e554..5558fb1c70f 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
@@ -24,8 +24,11 @@ SDCategory: Temple of Ahn'Qiraj
EndScriptData */
#include "ScriptMgr.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
#include "ScriptedCreature.h"
#include "temple_of_ahnqiraj.h"
+#include "TemporarySummon.h"
enum Spells
{
@@ -48,7 +51,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_kriAI>(creature);
+ return GetAQ40AI<boss_kriAI>(creature);
}
struct boss_kriAI : public ScriptedAI
@@ -147,7 +150,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_vemAI>(creature);
+ return GetAQ40AI<boss_vemAI>(creature);
}
struct boss_vemAI : public ScriptedAI
@@ -242,7 +245,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_yaujAI>(creature);
+ return GetAQ40AI<boss_yaujAI>(creature);
}
struct boss_yaujAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
index b77d317ba01..992d05720e1 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
@@ -24,9 +24,13 @@ SDCategory: Temple of Ahn'Qiraj
EndScriptData */
#include "ScriptMgr.h"
+#include "InstanceScript.h"
+#include "Map.h"
+#include "MapReference.h"
+#include "ObjectAccessor.h"
#include "ScriptedCreature.h"
#include "temple_of_ahnqiraj.h"
-#include "Player.h"
+#include "TemporarySummon.h"
/*
* This is a 2 phases events. Here follows an explanation of the main events and transition between phases and sub-phases.
@@ -153,7 +157,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<eye_of_cthunAI>(creature);
+ return GetAQ40AI<eye_of_cthunAI>(creature);
}
struct eye_of_cthunAI : public ScriptedAI
@@ -453,7 +457,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<cthunAI>(creature);
+ return GetAQ40AI<cthunAI>(creature);
}
struct cthunAI : public ScriptedAI
@@ -891,7 +895,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new eye_tentacleAI(creature);
+ return GetAQ40AI<eye_tentacleAI>(creature);
}
struct eye_tentacleAI : public ScriptedAI
@@ -969,7 +973,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new claw_tentacleAI(creature);
+ return GetAQ40AI<claw_tentacleAI>(creature);
}
struct claw_tentacleAI : public ScriptedAI
@@ -1083,7 +1087,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new giant_claw_tentacleAI(creature);
+ return GetAQ40AI<giant_claw_tentacleAI>(creature);
}
struct giant_claw_tentacleAI : public ScriptedAI
@@ -1207,7 +1211,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new giant_eye_tentacleAI(creature);
+ return GetAQ40AI<giant_eye_tentacleAI>(creature);
}
struct giant_eye_tentacleAI : public ScriptedAI
@@ -1273,7 +1277,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new flesh_tentacleAI(creature);
+ return GetAQ40AI<flesh_tentacleAI>(creature);
}
struct flesh_tentacleAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
index 011cf1509a5..e03bbe211c5 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
@@ -25,6 +25,8 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "temple_of_ahnqiraj.h"
+#include "TemporarySummon.h"
#define SOUND_SENTENCE_YOU 8588
#define SOUND_SERVE_TO 8589
@@ -48,7 +50,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_fankrissAI(creature);
+ return GetAQ40AI<boss_fankrissAI>(creature);
}
struct boss_fankrissAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp
index 45a61cecd47..d0912023709 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_huhuran.cpp
@@ -25,6 +25,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "temple_of_ahnqiraj.h"
enum Huhuran
{
@@ -46,7 +47,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_huhuranAI(creature);
+ return GetAQ40AI<boss_huhuranAI>(creature);
}
struct boss_huhuranAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
index daf9e3eb535..3c9956adeae 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
@@ -43,7 +43,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_ouroAI(creature);
+ return GetAQ40AI<boss_ouroAI>(creature);
}
struct boss_ouroAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
index 006d6377b42..8d1e8ad302e 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
@@ -25,6 +25,7 @@ EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
+#include "temple_of_ahnqiraj.h"
enum Sartura
{
@@ -48,7 +49,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_sarturaAI(creature);
+ return GetAQ40AI<boss_sarturaAI>(creature);
}
struct boss_sarturaAI : public ScriptedAI
@@ -198,7 +199,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new npc_sartura_royal_guardAI(creature);
+ return GetAQ40AI<npc_sartura_royal_guardAI>(creature);
}
struct npc_sartura_royal_guardAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
index 1cbdaf7b18d..2163ea31ab2 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
@@ -81,7 +81,7 @@ class boss_skeram : public CreatureScript
{
ScriptedAI::EnterEvadeMode(why);
if (me->IsSummon())
- ((TempSummon*)me)->UnSummon();
+ me->DespawnOrUnsummon();
}
void JustSummoned(Creature* creature) override
@@ -199,25 +199,10 @@ class boss_skeram : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_skeramAI(creature);
+ return GetAQ40AI<boss_skeramAI>(creature);
}
};
-class PlayerOrPetCheck
-{
- public:
- bool operator()(WorldObject* object) const
- {
- if (object->GetTypeId() == TYPEID_PLAYER)
- return false;
-
- if (Creature* creature = object->ToCreature())
- return !creature->IsPet();
-
- return true;
- }
-};
-
class spell_skeram_arcane_explosion : public SpellScriptLoader
{
public:
@@ -229,7 +214,10 @@ class spell_skeram_arcane_explosion : public SpellScriptLoader
void FilterTargets(std::list<WorldObject*>& targets)
{
- targets.remove_if(PlayerOrPetCheck());
+ targets.remove_if([](WorldObject* target)
+ {
+ return target->GetTypeId() != TYPEID_PLAYER && (target->GetTypeId() != TYPEID_UNIT || !target->ToUnit()->IsPet());
+ });
}
void Register() override
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
index 924888219d0..c70bede36ed 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
@@ -395,7 +395,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_veknilashAI>(creature);
+ return GetAQ40AI<boss_veknilashAI>(creature);
}
struct boss_veknilashAI : public boss_twinemperorsAI
@@ -483,7 +483,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_veklorAI>(creature);
+ return GetAQ40AI<boss_veklorAI>(creature);
}
struct boss_veklorAI : public boss_twinemperorsAI
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
index 1d41e808bc9..c8102675ac5 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
@@ -16,9 +16,12 @@
*/
#include "ScriptMgr.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
#include "ScriptedCreature.h"
#include "SpellInfo.h"
#include "temple_of_ahnqiraj.h"
+#include "TemporarySummon.h"
enum Spells
{
@@ -255,7 +258,7 @@ class boss_viscidus : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_viscidusAI(creature);
+ return GetAQ40AI<boss_viscidusAI>(creature);
}
};
@@ -272,10 +275,9 @@ class npc_glob_of_viscidus : public CreatureScript
{
InstanceScript* Instance = me->GetInstanceScript();
- if (Creature* Viscidus = me->GetMap()->GetCreature(Instance->GetGuidData(DATA_VISCIDUS)))
+ if (Creature* Viscidus = ObjectAccessor::GetCreature(*me, Instance->GetGuidData(DATA_VISCIDUS)))
{
- if (BossAI* ViscidusAI = dynamic_cast<BossAI*>(Viscidus->GetAI()))
- ViscidusAI->SummonedCreatureDespawn(me);
+ Viscidus->AI()->SummonedCreatureDespawn(me);
if (Viscidus->IsAlive() && Viscidus->GetHealthPct() < 5.0f)
{
@@ -304,7 +306,7 @@ class npc_glob_of_viscidus : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_glob_of_viscidusAI>(creature);
+ return GetAQ40AI<npc_glob_of_viscidusAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
index 054844c9c2f..51bc8a27550 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
@@ -24,13 +24,15 @@ SDCategory: Temple of Ahn'Qiraj
EndScriptData */
#include "ScriptMgr.h"
+#include "Creature.h"
#include "InstanceScript.h"
+#include "Map.h"
#include "temple_of_ahnqiraj.h"
class instance_temple_of_ahnqiraj : public InstanceMapScript
{
public:
- instance_temple_of_ahnqiraj() : InstanceMapScript("instance_temple_of_ahnqiraj", 531) { }
+ instance_temple_of_ahnqiraj() : InstanceMapScript(AQ40ScriptName, 531) { }
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp
index 9a8bfff933f..cf987d35289 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp
@@ -24,17 +24,11 @@ SDCategory: Temple of Ahn'Qiraj
EndScriptData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "WorldPacket.h"
-
-#include "Item.h"
-#include "Player.h"
-#include "Spell.h"
-
-#include "Cell.h"
#include "CellImpl.h"
-#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
+#include "ObjectAccessor.h"
+#include "ScriptedCreature.h"
+#include "temple_of_ahnqiraj.h"
enum Spells
{
@@ -66,7 +60,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new aqsentinelAI(creature);
+ return GetAQ40AI<aqsentinelAI>(creature);
}
struct aqsentinelAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h
index 58e75af6276..bff449e9d82 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h
@@ -19,6 +19,9 @@
#ifndef DEF_TEMPLE_OF_AHNQIRAJ_H
#define DEF_TEMPLE_OF_AHNQIRAJ_H
+#include "CreatureAIImpl.h"
+
+#define AQ40ScriptName "instance_temple_of_ahnqiraj"
#define DataHeader "AQT"
enum AQTDataTypes
@@ -62,4 +65,10 @@ enum AQTCreatures
NPC_VEKNILASH = 15275
};
+template<typename AI>
+inline AI* GetAQ40AI(Creature* creature)
+{
+ return GetInstanceAI<AI>(creature, AQ40ScriptName);
+}
+
#endif
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
index c5a360258c6..44448706a25 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
+++ b/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
@@ -23,9 +23,11 @@ SDComment: Everything seems to work, still need some checking
SDCategory: Wailing Caverns
EndScriptData */
-#include "Log.h"
-#include "InstanceScript.h"
#include "ScriptMgr.h"
+#include "Creature.h"
+#include "InstanceScript.h"
+#include "Log.h"
+#include "Map.h"
#include "wailing_caverns.h"
#define MAX_ENCOUNTER 9
@@ -33,7 +35,7 @@ EndScriptData */
class instance_wailing_caverns : public InstanceMapScript
{
public:
- instance_wailing_caverns() : InstanceMapScript("instance_wailing_caverns", 43) { }
+ instance_wailing_caverns() : InstanceMapScript(WCScriptName, 43) { }
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
index 7f9710d504f..27b096e3561 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
+++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
@@ -27,11 +27,11 @@ EndScriptData */
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
+#include "InstanceScript.h"
+#include "Player.h"
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "wailing_caverns.h"
-#include "Player.h"
/*######
## npc_disciple_of_naralex
@@ -81,7 +81,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_disciple_of_naralexAI>(creature);
+ return GetWailingCavernsAI<npc_disciple_of_naralexAI>(creature);
}
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h
index 1b655815934..d0757964c85 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h
+++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h
@@ -19,6 +19,9 @@
#ifndef DEF_WAILING_CAVERNS_H
#define DEF_WAILING_CAVERNS_H
+#include "CreatureAIImpl.h"
+
+#define WCScriptName "instance_wailing_caverns"
#define DataHeader "WC"
enum WCDataTypes
@@ -37,4 +40,10 @@ enum WCDataTypes
DATA_NARALEX = 3679,
};
+template<typename AI>
+inline AI* GetWailingCavernsAI(Creature* creature)
+{
+ return GetInstanceAI<AI>(creature, WCScriptName);
+}
+
#endif
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp b/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp
index 424803ae2ca..0fd0ffa8c41 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/boss_zum_rah.cpp
@@ -21,6 +21,7 @@ Category: Tanaris, ZulFarrak
*/
#include "ScriptMgr.h"
+#include "InstanceScript.h"
#include "ScriptedCreature.h"
#include "zulfarrak.h"
@@ -157,7 +158,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_zum_rahAI>(creature);
+ return GetZulFarrakAI<boss_zum_rahAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
index cafd9a8c917..695d99872e9 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
@@ -16,10 +16,11 @@
*/
#include "ScriptMgr.h"
+#include "GameObject.h"
#include "InstanceScript.h"
-#include "zulfarrak.h"
-#include "Player.h"
+#include "Map.h"
#include "TemporarySummon.h"
+#include "zulfarrak.h"
enum Misc
{
@@ -99,7 +100,7 @@ float Spawnsway[2][3] =
class instance_zulfarrak : public InstanceMapScript
{
public:
- instance_zulfarrak() : InstanceMapScript("instance_zulfarrak", 209) { }
+ instance_zulfarrak() : InstanceMapScript(ZFScriptName, 209) { }
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
@@ -328,9 +329,11 @@ public:
if (pyramidSpawns[i][0] == (float)wave)
{
Position pos = {pyramidSpawns[i][2], pyramidSpawns[i][3], 8.87f, 0};
- TempSummon* ts = instance->SummonCreature(uint32(pyramidSpawns[i][1]), pos);
- ts->GetMotionMaster()->MoveRandom(10);
- addsAtBase.push_back(ts->GetGUID());
+ if (TempSummon* ts = instance->SummonCreature(uint32(pyramidSpawns[i][1]), pos))
+ {
+ ts->GetMotionMaster()->MoveRandom(10);
+ addsAtBase.push_back(ts->GetGUID());
+ }
}
}
}
@@ -359,7 +362,7 @@ public:
void SendAddsUpStairs(uint32 count)
{
//pop a add from list, send him up the stairs...
- for (uint32 addCount = 0; addCount<count && !addsAtBase.empty(); addCount++)
+ for (uint32 addCount = 0; addCount < count && !addsAtBase.empty(); addCount++)
{
if (Creature* add = instance->GetCreature(*addsAtBase.begin()))
{
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
index 5b419b0217a..c30d956bcc4 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
@@ -29,10 +29,13 @@ npc_weegli_blastfuse
EndContentData */
#include "ScriptMgr.h"
+#include "GameObject.h"
+#include "InstanceScript.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "zulfarrak.h"
-#include "Player.h"
/*######
## npc_sergeant_bly
@@ -97,7 +100,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_sergeant_blyAI>(creature);
+ return GetZulFarrakAI<npc_sergeant_blyAI>(creature);
}
struct npc_sergeant_blyAI : public ScriptedAI
@@ -141,7 +144,7 @@ public:
{
case 1:
//weegli doesn't fight - he goes & blows up the door
- if (Creature* pWeegli = instance->instance->GetCreature(instance->GetGuidData(ENTRY_WEEGLI)))
+ if (Creature* pWeegli = ObjectAccessor::GetCreature(*me, instance->GetGuidData(ENTRY_WEEGLI)))
pWeegli->AI()->DoAction(0);
Talk(SAY_1);
Text_Timer = 5000;
@@ -300,7 +303,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_weegli_blastfuseAI>(creature);
+ return GetZulFarrakAI<npc_weegli_blastfuseAI>(creature);
}
struct npc_weegli_blastfuseAI : public ScriptedAI
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h
index cb38db2c55c..bc6ed4441a2 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h
+++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h
@@ -19,6 +19,9 @@
#ifndef DEF_ZF_H
#define DEF_ZF_H
+#include "CreatureAIImpl.h"
+
+#define ZFScriptName "instance_zulfarrak"
#define DataHeader "ZF"
enum ZFEntries
@@ -54,4 +57,10 @@ enum ZFPyramidPhases
PYRAMID_KILLED_ALL_TROLLS,
};
+template<typename AI>
+inline AI* GetZulFarrakAI(Creature* creature)
+{
+ return GetInstanceAI<AI>(creature, ZFScriptName);
+}
+
#endif \ No newline at end of file
diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
index 6a06ff3f7be..e9337d3e4ee 100644
--- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
@@ -33,12 +33,13 @@ npc_death_ravager
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedEscortAI.h"
-#include "ScriptedGossip.h"
#include "CellImpl.h"
#include "GridNotifiersImpl.h"
#include "Log.h"
+#include "ObjectAccessor.h"
+#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
+#include "TemporarySummon.h"
/*######
## npc_draenei_survivor
diff --git a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
index 04da6aa74aa..f1aec9a37be 100644
--- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
@@ -27,14 +27,14 @@ EndScriptData */
npc_webbed_creature
EndContentData */
-#include "Player.h"
-#include "Group.h"
-#include "GridNotifiersImpl.h"
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedEscortAI.h"
-#include "PassiveAI.h"
#include "CellImpl.h"
+#include "GridNotifiersImpl.h"
+#include "Group.h"
+#include "ObjectAccessor.h"
+#include "PassiveAI.h"
+#include "Player.h"
+#include "ScriptedEscortAI.h"
/*######
## npc_webbed_creature
@@ -499,7 +499,7 @@ public:
_explosivesGuids.clear();
for (uint8 i = 0; i != MAX_EXPLOSIVES; ++i)
{
- if (GameObject* explosive = me->SummonGameObject(GO_DRAENEI_EXPLOSIVES_1, ExplosivesPos[0][i], G3D::Quat(), 0))
+ if (GameObject* explosive = me->SummonGameObject(GO_DRAENEI_EXPLOSIVES_1, ExplosivesPos[0][i], QuaternionData(), 0))
_explosivesGuids.push_back(explosive->GetGUID());
}
me->HandleEmoteCommand(EMOTE_ONESHOT_NONE); // reset anim state
@@ -595,7 +595,7 @@ public:
_explosivesGuids.clear();
for (uint8 i = 0; i != MAX_EXPLOSIVES; ++i)
{
- if (GameObject* explosive = me->SummonGameObject(GO_DRAENEI_EXPLOSIVES_2, ExplosivesPos[1][i], G3D::Quat(), 0))
+ if (GameObject* explosive = me->SummonGameObject(GO_DRAENEI_EXPLOSIVES_2, ExplosivesPos[1][i], QuaternionData(), 0))
_explosivesGuids.push_back(explosive->GetGUID());
}
Talk(SAY_LEGOSO_15);
diff --git a/src/server/scripts/Kalimdor/zone_durotar.cpp b/src/server/scripts/Kalimdor/zone_durotar.cpp
index 3a3d045cb06..a1a6b2d5329 100644
--- a/src/server/scripts/Kalimdor/zone_durotar.cpp
+++ b/src/server/scripts/Kalimdor/zone_durotar.cpp
@@ -135,12 +135,16 @@ class spell_voodoo : public SpellScriptLoader
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- if (!sSpellMgr->GetSpellInfo(SPELL_BREW) || !sSpellMgr->GetSpellInfo(SPELL_GHOSTLY) ||
- !sSpellMgr->GetSpellInfo(SPELL_HEX1) || !sSpellMgr->GetSpellInfo(SPELL_HEX2) ||
- !sSpellMgr->GetSpellInfo(SPELL_HEX3) || !sSpellMgr->GetSpellInfo(SPELL_GROW) ||
- !sSpellMgr->GetSpellInfo(SPELL_LAUNCH))
- return false;
- return true;
+ return ValidateSpellInfo(
+ {
+ SPELL_BREW,
+ SPELL_GHOSTLY,
+ SPELL_HEX1,
+ SPELL_HEX2,
+ SPELL_HEX3,
+ SPELL_GROW,
+ SPELL_LAUNCH
+ });
}
void HandleDummy(SpellEffIndex /*effIndex*/)
diff --git a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
index dbc46b60a93..bb5ca8716e8 100644
--- a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
+++ b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
@@ -28,6 +28,7 @@ EndContentData */
#include "ScriptMgr.h"
#include "Player.h"
+#include "QuestDef.h"
#include "ScriptedEscortAI.h"
#include "ScriptedGossip.h"
#include "SpellInfo.h"
@@ -247,9 +248,7 @@ class spell_ooze_zap : public SpellScriptLoader
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- if (!sSpellMgr->GetSpellInfo(SPELL_OOZE_ZAP))
- return false;
- return true;
+ return ValidateSpellInfo({ SPELL_OOZE_ZAP });
}
SpellCastResult CheckRequirement()
@@ -294,9 +293,7 @@ class spell_ooze_zap_channel_end : public SpellScriptLoader
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- if (!sSpellMgr->GetSpellInfo(SPELL_OOZE_ZAP_CHANNEL_END))
- return false;
- return true;
+ return ValidateSpellInfo({ SPELL_OOZE_ZAP_CHANNEL_END });
}
void HandleDummy(SpellEffIndex effIndex)
@@ -330,9 +327,7 @@ class spell_energize_aoe : public SpellScriptLoader
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- if (!sSpellMgr->GetSpellInfo(SPELL_ENERGIZED))
- return false;
- return true;
+ return ValidateSpellInfo({ SPELL_ENERGIZED });
}
void FilterTargets(std::list<WorldObject*>& targets)
diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp
index 81481b54a73..afece0568de 100644
--- a/src/server/scripts/Kalimdor/zone_silithus.cpp
+++ b/src/server/scripts/Kalimdor/zone_silithus.cpp
@@ -36,10 +36,14 @@ go_wind_stone
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
+#include "CreatureAIImpl.h"
+#include "GameObject.h"
#include "Group.h"
#include "Player.h"
+#include "ObjectAccessor.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
+#include "TemporarySummon.h"
/*#####
# Quest: A Pawn on the Eternal Board
@@ -505,11 +509,11 @@ public:
DoCast(player, SPELL_CALL_PRISMATIC_BARRIER, true);
break;
case 37:
- me->SummonGameObject(GO_GATE_OF_AHN_QIRAJ, Position(-8130.f, 1525.f, 17.5f, 0.f), G3D::Quat(), 0);
+ me->SummonGameObject(GO_GATE_OF_AHN_QIRAJ, Position(-8130.f, 1525.f, 17.5f, 0.f), QuaternionData(), 0);
break;
case 38:
DoCast(player, SPELL_CALL_GLYPHS_OF_WARDING, true);
- me->SummonGameObject(GO_GLYPH_OF_AHN_QIRAJ, Position(-8130.f, 1525.f, 17.5f, 0.f), G3D::Quat(), 0);
+ me->SummonGameObject(GO_GLYPH_OF_AHN_QIRAJ, Position(-8130.f, 1525.f, 17.5f, 0.f), QuaternionData(), 0);
break;
case 39:
Talk(ANACHRONOS_SAY_5, Fandral);
@@ -518,7 +522,7 @@ public:
Fandral->CastSpell(me, SPELL_CALL_ANCIENTS, true);
break;
case 41:
- Fandral->SummonGameObject(GO_ROOTS_OF_AHN_QIRAJ, Position(-8130.f, 1525.f, 17.5f, 0.f), G3D::Quat(), 0);
+ Fandral->SummonGameObject(GO_ROOTS_OF_AHN_QIRAJ, Position(-8130.f, 1525.f, 17.5f, 0.f), QuaternionData(), 0);
Fandral->AI()->Talk(FANDRAL_SAY_3);
break;
case 42:
diff --git a/src/server/scripts/Kalimdor/zone_tanaris.cpp b/src/server/scripts/Kalimdor/zone_tanaris.cpp
index c1880995732..4c074407025 100644
--- a/src/server/scripts/Kalimdor/zone_tanaris.cpp
+++ b/src/server/scripts/Kalimdor/zone_tanaris.cpp
@@ -29,12 +29,11 @@ npc_OOX17
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
-#include "Player.h"
-#include "WorldSession.h"
+#include "ScriptedGossip.h"
/*######
## npc_aquementas
diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
index 5045c1efe8a..88d776d887d 100644
--- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp
+++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
@@ -28,11 +28,12 @@ npc_wizzlecrank_shredder
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
-#include "ScriptedEscortAI.h"
+#include "ObjectAccessor.h"
#include "Player.h"
+#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
#include "SpellInfo.h"
+#include "TemporarySummon.h"
/*######
## npc_beaten_corpse
diff --git a/src/server/scripts/Kalimdor/zone_winterspring.cpp b/src/server/scripts/Kalimdor/zone_winterspring.cpp
index 687740ce559..8d87d82e4a7 100644
--- a/src/server/scripts/Kalimdor/zone_winterspring.cpp
+++ b/src/server/scripts/Kalimdor/zone_winterspring.cpp
@@ -30,10 +30,11 @@ go_elune_fire
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"
/*######