aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Kalimdor
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2017-06-19 23:20:06 -0300
committerariel- <ariel-@users.noreply.github.com>2017-06-19 23:20:06 -0300
commit85a7d5ce9ac68b30da2277cc91d4b70358f1880d (patch)
treedf3d2084ee2e35008903c03178039b9c986e2d08 /src/server/scripts/Kalimdor
parent052fc24315ace866ea1cf610e85df119b68100c9 (diff)
Core: ported headers cleanup from master branch
Diffstat (limited to 'src/server/scripts/Kalimdor')
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp18
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h9
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp2
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp2
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp2
-rw-r--r--src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp12
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp15
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp23
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp9
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp17
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp7
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp11
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h9
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp35
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h1
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp91
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp12
-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.cpp6
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp7
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp16
-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.cpp9
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp3
-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.cpp14
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp8
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp18
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h9
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_aeonus.cpp5
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_chrono_lord_deja.cpp5
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/boss_temporus.cpp6
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp14
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp14
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.h9
-rw-r--r--src/server/scripts/Kalimdor/DireMaul/instance_dire_maul.cpp2
-rw-r--r--src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp3
-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.cpp18
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp11
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h10
-rw-r--r--src/server/scripts/Kalimdor/RagefireChasm/instance_ragefire_chasm.cpp1
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp6
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp23
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.h6
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp9
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp9
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.h10
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp11
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp18
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp13
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp27
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp6
-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.cpp11
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp30
-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.cpp4
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp5
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp9
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp30
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp10
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp134
-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.cpp7
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp30
-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.cpp11
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp26
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h9
-rw-r--r--src/server/scripts/Kalimdor/boss_azuregos.cpp10
-rw-r--r--src/server/scripts/Kalimdor/zone_ashenvale.cpp6
-rw-r--r--src/server/scripts/Kalimdor/zone_azshara.cpp10
-rw-r--r--src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp15
-rw-r--r--src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp21
-rw-r--r--src/server/scripts/Kalimdor/zone_darkshore.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_desolace.cpp7
-rw-r--r--src/server/scripts/Kalimdor/zone_durotar.cpp26
-rw-r--r--src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp18
-rw-r--r--src/server/scripts/Kalimdor/zone_felwood.cpp3
-rw-r--r--src/server/scripts/Kalimdor/zone_feralas.cpp7
-rw-r--r--src/server/scripts/Kalimdor/zone_moonglade.cpp14
-rw-r--r--src/server/scripts/Kalimdor/zone_orgrimmar.cpp11
-rw-r--r--src/server/scripts/Kalimdor/zone_silithus.cpp23
-rw-r--r--src/server/scripts/Kalimdor/zone_tanaris.cpp9
-rw-r--r--src/server/scripts/Kalimdor/zone_the_barrens.cpp12
-rw-r--r--src/server/scripts/Kalimdor/zone_thousand_needles.cpp6
-rw-r--r--src/server/scripts/Kalimdor/zone_ungoro_crater.cpp6
-rw-r--r--src/server/scripts/Kalimdor/zone_winterspring.cpp39
104 files changed, 772 insertions, 524 deletions
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
index b2d7f9cc166..8c57ce77ba0 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.cpp
@@ -16,12 +16,14 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
#include "blackfathom_deeps.h"
-#include "ScriptedEscortAI.h"
+#include "InstanceScript.h"
+#include "GameObject.h"
#include "GameObjectAI.h"
+#include "Map.h"
#include "Player.h"
+#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
enum Spells
{
@@ -53,7 +55,7 @@ class go_blackfathom_altar : public GameObjectScript
GameObjectAI* GetAI(GameObject* go) const override
{
- return GetInstanceAI<go_blackfathom_altarAI>(go);
+ return GetBlackfathomDeepsAI<go_blackfathom_altarAI>(go);
}
};
@@ -79,7 +81,7 @@ class go_blackfathom_fire : public GameObjectScript
GameObjectAI* GetAI(GameObject* go) const override
{
- return GetInstanceAI<go_blackfathom_fireAI>(go);
+ return GetBlackfathomDeepsAI<go_blackfathom_fireAI>(go);
}
};
@@ -90,7 +92,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
@@ -131,7 +133,7 @@ public:
void AttackPlayer()
{
- Map::PlayerList const &PlList = me->GetMap()->GetPlayers();
+ Map::PlayerList const& PlList = me->GetMap()->GetPlayers();
if (PlList.isEmpty())
return;
@@ -252,7 +254,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new npc_morriduneAI(creature);
+ return GetBlackfathomDeepsAI<npc_morriduneAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h b/src/server/scripts/Kalimdor/BlackfathomDeeps/blackfathom_deeps.h
index 98daa49ebb5..b90a970da8b 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 <class AI, class T>
+inline AI* GetBlackfathomDeepsAI(T* obj)
+{
+ return GetInstanceAI<AI>(obj, 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..19a671997e8 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp
@@ -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..290ed9ee6c9 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
@@ -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..aee43175d9b 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/boss_kelris.cpp
@@ -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..16525357bb3 100644
--- a/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp
+++ b/src/server/scripts/Kalimdor/BlackfathomDeeps/instance_blackfathom_deeps.cpp
@@ -24,10 +24,14 @@ 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"
+#include "Random.h"
-const Position LorgusPosition[4] =
+Position const LorgusPosition[4] =
{
{ -458.500610f, -38.343079f, -33.474445f, 0.0f },
{ -469.423615f, -88.400513f, -39.265102f, 0.0f },
@@ -35,7 +39,7 @@ const Position LorgusPosition[4] =
{ -759.640564f, 16.658913f, -29.159529f, 0.0f }
};
-const Position SpawnsLocation[] =
+Position const SpawnsLocation[] =
{
{-775.431f, -153.853f, -25.871f, 3.207f},
{-775.404f, -174.132f, -25.871f, 3.185f},
@@ -47,7 +51,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 9965053bfc6..4e9fdbc0bc3 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
@@ -102,7 +103,7 @@ public:
{
if (waypointId == 7)
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
@@ -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
@@ -273,9 +274,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..caed3f73324 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
@@ -24,10 +24,13 @@ SDCategory: Caverns of Time, Mount Hyjal
EndScriptData */
#include "ScriptMgr.h"
+#include "hyjal.h"
+#include "InstanceScript.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
-#include "Player.h"
-#include "hyjal.h"
enum Texts
{
@@ -99,7 +102,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
@@ -140,7 +143,7 @@ public:
{
if (CheckTimer <= diff)
{
- if (Unit* Archimonde = ObjectAccessor::GetUnit(*me, ArchimondeGUID))
+ if (Creature* Archimonde = ObjectAccessor::GetCreature(*me, ArchimondeGUID))
{
if (Archimonde->HealthBelowPct(2) || !Archimonde->IsAlive())
DoCast(me, SPELL_DENOUEMENT_WISP);
@@ -162,7 +165,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 +194,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
@@ -389,7 +392,7 @@ public:
DoSpawnCreature(NPC_ANCIENT_WISP, float(rand32() % 40), float(rand32() % 40), 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
++WispCount;
if (WispCount >= 30)
- me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
+ me->DealDamage(me, me->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false);
events.ScheduleEvent(EVENT_SUMMON_WHISP, 1500);
break;
default:
@@ -530,7 +533,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_archimondeAI>(creature);
+ return GetHyjalAI<boss_archimondeAI>(creature);
}
};
@@ -546,9 +549,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 e8ba1f90d37..4eb9a71cff4 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
@@ -105,7 +106,7 @@ public:
{
if (waypointId == 7 && instance)
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
@@ -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..d5b43ab4d2d 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
@@ -100,7 +101,7 @@ public:
{
if (waypointId == 7 && instance)
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
@@ -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)
@@ -217,7 +216,7 @@ class spell_mark_of_kazrogal : public SpellScriptLoader
if (target->GetPower(POWER_MANA) == 0)
{
- target->CastSpell(target, SPELL_MARK_DAMAGE, true, NULL, aurEff);
+ target->CastSpell(target, SPELL_MARK_DAMAGE, true, nullptr, aurEff);
// Remove aura
SetDuration(0);
}
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..9d96aa20133 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
@@ -95,7 +96,7 @@ public:
{
if (waypointId == 7 && instance)
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
index 83cb6d7d91c..7d33e4bb375 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp
@@ -30,10 +30,11 @@ npc_tyrande_whisperwind
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
#include "hyjalAI.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."
@@ -122,7 +123,7 @@ class npc_jaina_proudmoore : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_jaina_proudmooreAI>(creature);
+ return GetHyjalAI<npc_jaina_proudmooreAI>(creature);
}
};
@@ -202,7 +203,7 @@ class npc_thrall : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_thrallAI>(creature);
+ return GetHyjalAI<npc_thrallAI>(creature);
}
};
@@ -250,7 +251,7 @@ class npc_tyrande_whisperwind : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_tyrande_whisperwindAI>(creature);
+ return GetHyjalAI<npc_tyrande_whisperwindAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.h
index caf7d690097..a90f7789690 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 <class AI, class T>
+inline AI* GetHyjalAI(T* obj)
+{
+ return GetInstanceAI<AI>(obj, HyjalScriptName);
+}
+
#endif
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
index db091296389..882689ee76d 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
@@ -24,14 +24,15 @@ 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 "hyjalAI.h"
+#include "GridNotifiersImpl.h"
#include "hyjal_trash.h"
+#include "hyjalAI.h"
+#include "InstanceScript.h"
+#include "Log.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
+#include "TemporarySummon.h"
enum Spawns
{
@@ -428,7 +429,7 @@ void hyjalAI::EnterEvadeMode(EvadeReason /*why*/)
if (me->IsAlive())
me->GetMotionMaster()->MoveTargetedHome();
- me->SetLootRecipient(NULL);
+ me->SetLootRecipient(nullptr);
}
void hyjalAI::EnterCombat(Unit* /*who*/)
@@ -458,7 +459,7 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3])
{
SpawnLoc[i] = Base[random][i];
}
- Creature* creature = NULL;
+ Creature* creature = nullptr;
switch (entry)
{
case 17906: //GARGOYLE
@@ -650,7 +651,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();
}
@@ -662,7 +663,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();
}
@@ -674,7 +675,7 @@ void hyjalAI::DeSpawnVeins()
{
if (Faction == 1)
{
- Creature* unit=ObjectAccessor::GetCreature((*me), instance->GetGuidData(DATA_JAINAPROUDMOORE));
+ Creature* unit = ObjectAccessor::GetCreature((*me), instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (!unit)return;
hyjalAI* ai = CAST_AI(hyjalAI, unit->AI());
if (!ai)return;
@@ -686,7 +687,7 @@ void hyjalAI::DeSpawnVeins()
}
else if (Faction)
{
- Creature* unit=ObjectAccessor::GetCreature((*me), instance->GetGuidData(DATA_THRALL));
+ Creature* unit = ObjectAccessor::GetCreature((*me), instance->GetGuidData(DATA_THRALL));
if (!unit)
return;
hyjalAI* ai = CAST_AI(hyjalAI, unit->AI());
@@ -725,7 +726,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);
@@ -738,7 +739,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);
@@ -854,7 +855,7 @@ void hyjalAI::UpdateAI(uint32 diff)
if (me->IsNonMeleeSpellCast(false))
me->InterruptNonMeleeSpells(false);
- Unit* target = NULL;
+ Unit* target = nullptr;
switch (Spells[i].TargetType)
{
@@ -1015,7 +1016,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
{
@@ -1056,7 +1057,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/hyjalAI.h b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h
index f6ce9011852..a61a568f61b 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h
@@ -204,7 +204,6 @@ struct hyjalAI : public npc_escortAI
private:
uint32 SpellTimer[3];
- //std::list<uint64> CreatureList;
};
#endif
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
index 5b93cafce32..b26d9081fc8 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
@@ -16,10 +16,13 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "hyjal.h"
#include "hyjal_trash.h"
#include "hyjalAI.h"
+#include "InstanceScript.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
+#include "TemporarySummon.h"
enum Spells
{
@@ -446,7 +449,7 @@ public:
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
@@ -458,8 +461,10 @@ public:
if (Delay <= diff)
{
Delay=0;
- }else{
- Delay-=diff;
+ }
+ else
+ {
+ Delay -= diff;
return;
}
if (!meteor)
@@ -482,7 +487,7 @@ public:
CanMove = true;
if (instance->GetData(DATA_ALLIANCE_RETREAT) && !instance->GetData(DATA_HORDE_RETREAT))
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
} else if (instance->GetData(DATA_ALLIANCE_RETREAT) && instance->GetData(DATA_HORDE_RETREAT)){
@@ -510,7 +515,7 @@ public:
if (!imol)
{
DoCast(me, SPELL_IMMOLATION);
- imol=true;
+ imol = true;
}
if (FlameBuffetTimer <= diff)
{
@@ -523,7 +528,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_giant_infernalAI>(creature);
+ return GetHyjalAI<npc_giant_infernalAI>(creature);
}
};
@@ -534,7 +539,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_abominationAI>(creature);
+ return GetHyjalAI<npc_abominationAI>(creature);
}
struct npc_abominationAI : public hyjal_trashAI
@@ -559,13 +564,13 @@ public:
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
else
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
@@ -628,7 +633,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_ghoulAI>(creature);
+ return GetHyjalAI<npc_ghoulAI>(creature);
}
struct npc_ghoulAI : public hyjal_trashAI
@@ -657,13 +662,13 @@ public:
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
else
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
@@ -726,7 +731,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_necromancerAI>(creature);
+ return GetHyjalAI<npc_necromancerAI>(creature);
}
struct npc_necromancerAI : public hyjal_trashAI
@@ -767,13 +772,13 @@ public:
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
else
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
@@ -850,7 +855,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_bansheeAI>(creature);
+ return GetHyjalAI<npc_bansheeAI>(creature);
}
struct npc_bansheeAI : public hyjal_trashAI
@@ -880,13 +885,13 @@ public:
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
else
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
@@ -950,7 +955,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
@@ -976,13 +981,13 @@ public:
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
else
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
@@ -1036,7 +1041,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
@@ -1062,13 +1067,13 @@ public:
{
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
else
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
if (target && target->IsAlive())
me->AddThreat(target, 0.0f);
}
@@ -1122,7 +1127,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
@@ -1154,7 +1159,7 @@ public:
{
if (waypointId == 2 && !IsOverrun)
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
{
me->AddThreat(target, 0.0f);
@@ -1170,7 +1175,7 @@ public:
float x, y, z;
me->GetPosition(x, y, z);
- z = me->GetMap()->GetHeight(me->GetPhaseMask(), x, y, z);
+ me->UpdateGroundPositionZ(x, y, z);
me->GetMotionMaster()->MovePoint(0, x, y, z);
me->UpdatePosition(x, y, z, 0);
}
@@ -1218,7 +1223,9 @@ public:
{
me->GetMotionMaster()->MoveChase(me->GetVictim());
MoveTimer = 2000;
- } else MoveTimer-=diff;
+ }
+ else
+ MoveTimer -= diff;
}
if (FrostBreathTimer <= diff)
@@ -1230,7 +1237,9 @@ public:
me->GetMotionMaster()->Clear();
FrostBreathTimer = 4000;
}
- } else FrostBreathTimer -= diff;
+ }
+ else
+ FrostBreathTimer -= diff;
}
};
};
@@ -1242,7 +1251,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_gargoyleAI>(creature);
+ return GetHyjalAI<npc_gargoyleAI>(creature);
}
struct npc_gargoyleAI : public hyjal_trashAI
@@ -1275,7 +1284,7 @@ public:
{
if (waypointId == 2 && !IsOverrun)
{
- Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
+ Creature* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL));
if (target && target->IsAlive())
{
me->AddThreat(target, 0.0f);
@@ -1288,7 +1297,7 @@ public:
{
float x, y, z;
me->GetPosition(x, y, z);
- z = me->GetMap()->GetHeight(me->GetPhaseMask(), x, y, z);
+ me->UpdateGroundPositionZ(x, y, z);
me->GetMotionMaster()->MovePoint(0, x, y, z);
me->UpdatePosition(x, y, z, 0);
hyjal_trashAI::JustDied(killer);
@@ -1351,12 +1360,14 @@ public:
{
float x, y, z;
me->EnsureVictim()->GetPosition(x, y, z);
- me->GetMotionMaster()->MovePoint(0, x, y, z+Zpos);
+ me->GetMotionMaster()->MovePoint(0, x, y, z + Zpos);
Zpos -= 1.0f;
if (Zpos <= 0)
Zpos = 0;
MoveTimer = 2000;
- } else MoveTimer-=diff;
+ }
+ else
+ MoveTimer -= diff;
}
if (StrikeTimer <= diff)
@@ -1367,8 +1378,12 @@ public:
me->StopMoving();
me->GetMotionMaster()->Clear();
StrikeTimer = 2000 + rand32() % 1000;
- } else StrikeTimer=0;
- } else StrikeTimer -= diff;
+ }
+ else
+ StrikeTimer = 0;
+ }
+ else
+ StrikeTimer -= diff;
}
};
};
@@ -1380,7 +1395,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 d3caf27c344..0a71552e804 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
@@ -24,9 +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
@@ -50,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
{
@@ -276,7 +280,7 @@ public:
return str_data;
}
- void Load(const char* in) override
+ void Load(char const* in) override
{
if (!in)
{
diff --git a/src/server/scripts/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..1f42939c2f2 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
{
@@ -55,7 +55,7 @@ class boss_infinite_corruptor : public CreatureScript
if (Creature* guardian = me->FindNearestCreature(NPC_GUARDIAN_OF_TIME, 100.0f))
{
- DoCast((Unit*)NULL, SPELL_CORRUPTION_OF_TIME_CHANNEL, false);
+ DoCast((Unit*)nullptr, SPELL_CORRUPTION_OF_TIME_CHANNEL, false);
guardian->CastSpell(guardian, SPELL_CORRUPTION_OF_TIME_TARGET, false);
}
}
@@ -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..2224ca4f439 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,12 @@ SDCategory:
Script Data End */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "culling_of_stratholme.h"
+#include "InstanceScript.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
#include "Player.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -64,7 +67,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..9ebba661c10 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp
@@ -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..925b6367d93 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
@@ -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 da1080c5d27..3b92e2926c6 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,17 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
#include "culling_of_stratholme.h"
-#include "ScriptedEscortAI.h"
+#include "GameObject.h"
+#include "InstanceScript.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
#include "PassiveAI.h"
#include "Player.h"
+#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
#include "SpellInfo.h"
+#include "TemporarySummon.h"
enum Says
{
@@ -1224,7 +1228,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_arthasAI>(creature);
+ return GetCullingOfStratholmeAI<npc_arthasAI>(creature);
}
};
@@ -1249,7 +1253,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();
}
}
@@ -1261,7 +1265,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..926645eca85 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 <class AI, class T>
+inline AI* GetCullingOfStratholmeAI(T* obj)
+{
+ return GetInstanceAI<AI>(obj, 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 00b6edb7ee3..9881b57a840 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,17 @@
*/
#include "ScriptMgr.h"
-#include "InstanceScript.h"
+#include "CreatureAI.h"
#include "CreatureTextMgr.h"
#include "culling_of_stratholme.h"
+#include "EventMap.h"
+#include "GameObject.h"
+#include "InstanceScript.h"
+#include "Map.h"
+#include "MotionMaster.h"
#include "Player.h"
-#include "TemporarySummon.h"
#include "SpellInfo.h"
+#include "TemporarySummon.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..292e61ee3c8 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_captain_skarloc.cpp
@@ -24,6 +24,7 @@ SDCategory: Caverns of Time, Old Hillsbrad Foothills
EndScriptData */
#include "ScriptMgr.h"
+#include "InstanceScript.h"
#include "ScriptedCreature.h"
#include "old_hillsbrad.h"
@@ -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 34072f03975..2f4225f7a74 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/boss_leutenant_drake.cpp
@@ -24,10 +24,12 @@ SDCategory: Caverns of Time, Old Hillsbrad Foothills
EndScriptData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
+#include "GameObject.h"
+#include "GameObjectAI.h"
+#include "InstanceScript.h"
+#include "MotionMaster.h"
#include "old_hillsbrad.h"
#include "ScriptedEscortAI.h"
-#include "GameObjectAI.h"
/*######
## go_barrel_old_hillsbrad
@@ -56,7 +58,7 @@ public:
GameObjectAI* GetAI(GameObject* go) const override
{
- return GetInstanceAI<go_barrel_old_hillsbradAI>(go);
+ return GetOldHillsbradAI<go_barrel_old_hillsbradAI>(go);
}
};
@@ -79,7 +81,7 @@ enum LieutenantDrake
SPELL_FRIGHTENING_SHOUT = 33789
};
-G3D::Vector3 const DrakeWP[]=
+Position const DrakeWP[]=
{
{ 2125.84f, 88.2535f, 54.8830f },
{ 2111.01f, 93.8022f, 52.6356f },
@@ -109,7 +111,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
@@ -163,7 +165,7 @@ public:
/// @todo make this work
if (CanPatrol && wpId == 0)
{
- me->GetMotionMaster()->MovePoint(wpId, DrakeWP[wpId].x, DrakeWP[wpId].y, DrakeWP[wpId].z);
+ me->GetMotionMaster()->MovePoint(wpId, DrakeWP[wpId]);
++wpId;
}
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 5e4c9c0ed0e..145e13155b1 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
@@ -24,8 +24,10 @@ 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"
@@ -43,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
{
@@ -83,7 +85,7 @@ public:
}
TC_LOG_DEBUG("scripts", "Instance Old Hillsbrad: GetPlayerInMap, but PlayerList is empty!");
- return NULL;
+ return nullptr;
}
void UpdateQuestCredit()
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
index 2a4d13d1634..29e94b2bd9f 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
@@ -30,11 +30,13 @@ 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 "Map.h"
#include "Player.h"
+#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
enum Erozion
{
@@ -100,7 +102,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_erozionAI>(creature);
+ return GetOldHillsbradAI<npc_erozionAI>(creature);
}
};
@@ -349,7 +351,7 @@ public:
case 106:
{
//trigger taretha to run down outside
- if (Creature* Taretha = instance->instance->GetCreature(instance->GetGuidData(DATA_TARETHA)))
+ if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TARETHA)))
{
if (Player* player = GetPlayerForEscort())
ENSURE_AI(npc_escortAI, (Taretha->AI()))->Start(false, true, player->GetGUID());
@@ -541,7 +543,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_thrall_old_hillsbradAI>(creature);
+ return GetOldHillsbradAI<npc_thrall_old_hillsbradAI>(creature);
}
};
@@ -612,7 +614,7 @@ public:
if (instance->GetGuidData(DATA_EPOCH).IsEmpty())
me->SummonCreature(ENTRY_EPOCH, 2639.13f, 698.55f, 65.43f, 4.59f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000);
- if (Creature* thrall = (ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL))))
+ if (Creature* thrall = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL)))
ENSURE_AI(npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, thrall->AI())->StartWP();
}
}
@@ -632,7 +634,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_tarethaAI>(creature);
+ return GetOldHillsbradAI<npc_tarethaAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.h
index 52eb8a6c4f7..109285640cb 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,4 +44,10 @@ enum OHWorldStateIds
WORLD_STATE_OH = 2436
};
+template <class AI, class T>
+inline AI* GetOldHillsbradAI(T* obj)
+{
+ return GetInstanceAI<AI>(obj, 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..5763344ba81 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"
@@ -79,7 +80,7 @@ public:
if (me->IsWithinDistInMap(who, 20.0f))
{
Talk(SAY_BANISH);
- me->DealDamage(who, who->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
+ me->DealDamage(who, who->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false);
}
}
@@ -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..5bf079c556e 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"
@@ -82,7 +83,7 @@ public:
if (me->IsWithinDistInMap(who, 20.0f))
{
Talk(SAY_BANISH);
- me->DealDamage(who, who->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
+ me->DealDamage(who, who->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false);
}
}
@@ -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..79dec3487fc 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"
@@ -85,7 +86,6 @@ public:
}
void MoveInLineOfSight(Unit* who) override
-
{
//Despawn Time Keeper
if (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_TIME_KEEPER)
@@ -94,7 +94,7 @@ public:
{
Talk(SAY_BANISH);
- me->DealDamage(who, who->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
+ me->DealDamage(who, who->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false);
}
}
@@ -145,7 +145,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 053b670c254..0705071dfb9 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,12 +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 "TemporarySummon.h"
+#include "the_black_morass.h"
enum Misc
{
@@ -71,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
{
@@ -180,7 +182,7 @@ public:
{
if (medivh->IsAlive())
{
- medivh->DealDamage(medivh, medivh->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
+ medivh->DealDamage(medivh, medivh->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false);
m_auiEncounter[0] = FAIL;
m_auiEncounter[1] = NOT_STARTED;
}
@@ -276,7 +278,7 @@ public:
return summon;
TC_LOG_DEBUG("scripts", "Instance The Black Morass: What just happened there? No boss, no loot, no fun...");
- return NULL;
+ return nullptr;
}
void DoSpawnPortal()
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 2f76b20ea30..6aa008f89f5 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/the_black_morass.cpp
@@ -17,11 +17,15 @@
*/
#include "ScriptMgr.h"
+#include "InstanceScript.h"
+#include "Log.h"
+#include "Map.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 "the_black_morass.h"
enum MedivhBm
{
@@ -57,7 +61,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
@@ -139,7 +143,7 @@ public:
void EnterCombat(Unit* /*who*/) override { }
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override
{
if (SpellCorrupt_Timer)
return;
@@ -250,7 +254,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 c5274e9c985..8798f8fffe6 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,4 +68,10 @@ enum TBMCreatureIds
NPC_INFINITE_VANQUISHER = 18995
};
+template <class AI, class T>
+inline AI* GetBlackMorassAI(T* obj)
+{
+ return GetInstanceAI<AI>(obj, 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..8d3710c21f4 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
@@ -67,7 +68,6 @@ public:
{
return new instance_dire_maul_InstanceMapScript(map);
}
-
};
void AddSC_instance_dire_maul()
diff --git a/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp b/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
index 491b05063f4..04fd6552e3e 100644
--- a/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.cpp
+++ b/src/server/scripts/Kalimdor/Maraudon/boss_celebras_the_cursed.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 celebras_the_cursedAI(creature);
+ return GetMaraudonAI<celebras_the_cursedAI>(creature);
}
struct celebras_the_cursedAI : public ScriptedAI
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 36514199010..fa351c51f87 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..928cfb0cf78
--- /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 <class AI, class T>
+inline AI* GetMaraudonAI(T* obj)
+{
+ return GetInstanceAI<AI>(obj, 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 52a86f5d2fa..8799facf2f6 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 "GridNotifiersImpl.h"
+#include "InstanceScript.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
#include "onyxias_lair.h"
+#include "ScriptedCreature.h"
+#include "TemporarySummon.h"
enum Yells
{
@@ -193,7 +195,7 @@ public:
Talk(SAY_KILL);
}
- void SpellHit(Unit* /*pCaster*/, const SpellInfo* Spell) override
+ void SpellHit(Unit* /*pCaster*/, SpellInfo const* Spell) override
{
if (Spell->Id == SPELL_BREATH_EAST_TO_WEST ||
Spell->Id == SPELL_BREATH_WEST_TO_EAST ||
@@ -271,7 +273,7 @@ public:
}
}
- void SpellHitTarget(Unit* target, const SpellInfo* Spell) override
+ void SpellHitTarget(Unit* target, SpellInfo const* Spell) override
{
//Workaround - Couldn't find a way to group this spells (All Eruption)
if (((Spell->Id >= 17086 && Spell->Id <= 17095) ||
@@ -301,7 +303,7 @@ public:
return &MoveData[i];
}
- return NULL;
+ return nullptr;
}
void SetNextRandomPoint()
@@ -353,7 +355,7 @@ public:
{
DoCastVictim(SPELL_BELLOWING_ROAR);
// Eruption
- GameObject* Floor = NULL;
+ GameObject* Floor = nullptr;
Trinity::GameObjectInRangeCheck check(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 15);
Trinity::GameObjectLastSearcher<Trinity::GameObjectInRangeCheck> searcher(me, Floor, check);
Cell::VisitGridObjects(me, searcher, 30.0f);
@@ -492,7 +494,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_onyxiaAI>(creature);
+ return GetOnyxiaAI<boss_onyxiaAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
index afb7c801a01..ab0fb75cb16 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
@@ -23,11 +23,10 @@ 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 "onyxias_lair.h"
#include "TemporarySummon.h"
@@ -39,7 +38,7 @@ BossBoundaryData const boundaries =
class instance_onyxias_lair : public InstanceMapScript
{
public:
- instance_onyxias_lair() : InstanceMapScript("instance_onyxias_lair", 249) { }
+ instance_onyxias_lair() : InstanceMapScript(OnyxiaScriptName, 249) { }
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
@@ -112,7 +111,7 @@ public:
//THIS GOB IS A TRAP - What shall i do? =(
//Cast it spell? Copyed Heigan method
floorEruption->SendCustomAnim(floorEruption->GetGoAnimProgress());
- floorEruption->CastSpell(NULL, Difficulty(instance->GetSpawnMode()) == RAID_DIFFICULTY_10MAN_NORMAL ? 17731 : 69294); //pFloorEruption->GetGOInfo()->trap.spellId
+ floorEruption->CastSpell(nullptr, Difficulty(instance->GetSpawnMode()) == RAID_DIFFICULTY_10MAN_NORMAL ? 17731 : 69294); //pFloorEruption->GetGOInfo()->trap.spellId
//Get all immediatly nearby floors
std::list<GameObject*> nearFloorList;
@@ -240,7 +239,7 @@ public:
}
}
- bool CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* /*source*/, Unit const* /*target = NULL*/, uint32 /*miscValue1 = 0*/) override
+ bool CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* /*source*/, Unit const* /*target = nullptr*/, uint32 /*miscValue1 = 0*/) override
{
switch (criteriaId)
{
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h b/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h
index ba931c86ccd..1144b3835b6 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/onyxias_lair.h
@@ -18,6 +18,9 @@
#ifndef DEF_ONYXIAS_LAIR_H
#define DEF_ONYXIAS_LAIR_H
+#include "CreatureAIImpl.h"
+
+#define OnyxiaScriptName "instance_onyxias_lair"
#define DataHeader "OL"
uint32 const EncounterCount = 1;
@@ -69,4 +72,11 @@ enum OLAchievementData
ACHIEV_CRITERIA_DEEP_BREATH_25_PLAYER = 12569, // Criteria for achievement 4407: She Deep Breaths More (25 player) Everybody evade Deep Breath
ACHIEV_TIMED_START_EVENT = 6601, // Timed event for achievement 4402, 4005: More Dots! (10, 25 player) 5 min kill
};
+
+template <class AI, class T>
+inline AI* GetOnyxiaAI(T* obj)
+{
+ return GetInstanceAI<AI>(obj, OnyxiaScriptName);
+}
+
#endif
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..c4cb219ea82 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
@@ -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..b4fcf2a6298 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_glutton.cpp
@@ -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..d7b9153ead7 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_mordresh_fire_eye.cpp
@@ -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..b3c5a2c46a4 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp
@@ -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/instance_razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp
index 5fcc2e15a35..00b8099dbe2 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/instance_razorfen_downs.cpp
@@ -16,10 +16,12 @@
*/
#include "ScriptMgr.h"
-#include "ObjectMgr.h"
+#include "GameObject.h"
#include "InstanceScript.h"
+#include "Map.h"
+#include "MotionMaster.h"
+#include "ObjectMgr.h"
#include "razorfen_downs.h"
-#include "Player.h"
#include "TemporarySummon.h"
Position const PosSummonTutenkash[15] =
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
index a5329422683..f43f3cfc5db 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
@@ -28,15 +28,16 @@ npc_henry_stern
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
+#include "CellImpl.h"
#include "GameObjectAI.h"
-#include "ScriptedGossip.h"
-#include "razorfen_downs.h"
-#include "Player.h"
-#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
-#include "Cell.h"
-#include "CellImpl.h"
+#include "InstanceScript.h"
+#include "MotionMaster.h"
+#include "Player.h"
+#include "razorfen_downs.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
+#include "TemporarySummon.h"
/*###
## npc_belnistrasz for Quest 3525 "Extinguishing the Idol"
@@ -203,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);
@@ -254,7 +255,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_belnistraszAI>(creature);
+ return GetRazorfenDownsAI<npc_belnistraszAI>(creature);
}
};
@@ -292,7 +293,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_idol_room_spawnerAI>(creature);
+ return GetRazorfenDownsAI<npc_idol_room_spawnerAI>(creature);
}
};
@@ -362,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 fa78d8518c1..19c26869343 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, class T>
-AI* GetRazorfenDownsAI(T* obj)
+template <class AI, class T>
+inline AI* GetRazorfenDownsAI(T* obj)
{
return GetInstanceAI<AI>(obj, RFDScriptName);
}
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
index c14383ffaa5..2348de6c45c 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/instance_razorfen_kraul.cpp
@@ -24,16 +24,19 @@ SDCategory: Razorfen Kraul
EndScriptData */
#include "ScriptMgr.h"
+#include "GameObject.h"
#include "InstanceScript.h"
-#include "razorfen_kraul.h"
+#include "Log.h"
+#include "Map.h"
#include "Player.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
{
@@ -60,7 +63,7 @@ public:
return player;
}
TC_LOG_DEBUG("scripts", "Instance Razorfen Kraul: GetPlayerInMap, but PlayerList is empty!");
- return NULL;
+ return nullptr;
}
void OnGameObjectCreate(GameObject* go) override
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
index 64feea50156..b2ee684d0f5 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
@@ -17,11 +17,10 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedEscortAI.h"
-#include "razorfen_kraul.h"
-#include "Player.h"
#include "PetAI.h"
+#include "Player.h"
+#include "razorfen_kraul.h"
+#include "ScriptedEscortAI.h"
#include "SpellScript.h"
enum Willix
@@ -132,7 +131,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return new npc_willixAI(creature);
+ return GetRazorfenKraulAI<npc_willixAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.h b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.h
index 1de42a0bb3a..c4ec5207ccf 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 <class AI, class T>
+inline AI* GetRazorfenKraulAI(T* obj)
+{
+ return GetInstanceAI<AI>(obj, RFKScriptName);
+}
+
#endif
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
index 23247e0ba06..59432c4051b 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ayamiss.cpp
@@ -17,9 +17,12 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
+#include "InstanceScript.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
#include "Player.h"
#include "ruins_of_ahnqiraj.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -208,7 +211,7 @@ class boss_ayamiss : public CreatureScript
break;
case EVENT_SWARMER_ATTACK:
for (GuidList::iterator i = _swarmers.begin(); i != _swarmers.end(); ++i)
- if (Creature* swarmer = me->GetMap()->GetCreature(*i))
+ if (Creature* swarmer = ObjectAccessor::GetCreature(*me, *i))
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
swarmer->AI()->AttackStart(target);
@@ -241,7 +244,7 @@ class boss_ayamiss : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_ayamissAI>(creature);
+ return GetAQ20AI<boss_ayamissAI>(creature);
}
};
@@ -295,7 +298,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..e0e0925e7ab 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
@@ -15,11 +15,12 @@
* 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 "ObjectAccessor.h"
+#include "ruins_of_ahnqiraj.h"
+#include "ScriptedCreature.h"
enum Spells
{
@@ -83,8 +84,8 @@ class boss_kurinnaxx : public CreatureScript
void JustDied(Unit* /*killer*/) override
{
_JustDied();
- if (Creature* Ossirian = me->GetMap()->GetCreature(instance->GetGuidData(DATA_OSSIRIAN)))
- sCreatureTextMgr->SendChat(Ossirian, SAY_KURINAXX_DEATH, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
+ if (Creature* Ossirian = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_OSSIRIAN)))
+ sCreatureTextMgr->SendChat(Ossirian, SAY_KURINAXX_DEATH, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
}
void UpdateAI(uint32 diff) override
@@ -136,7 +137,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..f38f3058f7c 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
@@ -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 6d0001bac73..7d9d85f876e 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_ossirian.cpp
@@ -16,13 +16,19 @@
*/
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
+#include "GameObject.h"
#include "GameObjectAI.h"
-#include "ruins_of_ahnqiraj.h"
+#include "InstanceScript.h"
+#include "Map.h"
+#include "ObjectAccessor.h"
+#include "Opcodes.h"
#include "Player.h"
+#include "ruins_of_ahnqiraj.h"
+#include "ScriptedCreature.h"
#include "SpellInfo.h"
+#include "TemporarySummon.h"
+#include "Weather.h"
#include "WorldPacket.h"
-#include "Opcodes.h"
enum Texts
{
@@ -118,7 +124,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();
}
}
@@ -127,7 +134,7 @@ class boss_ossirian : public CreatureScript
void DoAction(int32 action) override
{
if (action == ACTION_TRIGGER_WEAKNESS)
- if (Creature* Trigger = me->GetMap()->GetCreature(TriggerGUID))
+ if (Creature* Trigger = ObjectAccessor::GetCreature(*me, TriggerGUID))
if (!Trigger->HasUnitState(UNIT_STATE_CASTING))
Trigger->CastSpell(Trigger, SpellWeakness[urand(0, 4)], false);
}
@@ -179,7 +186,7 @@ class boss_ossirian : public CreatureScript
void Cleanup()
{
- if (GameObject* Crystal = me->GetMap()->GetGameObject(CrystalGUID))
+ if (GameObject* Crystal = ObjectAccessor::GetGameObject(*me, CrystalGUID))
Crystal->Use(me);
}
@@ -188,10 +195,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;
@@ -270,7 +277,7 @@ class boss_ossirian : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_ossirianAI>(creature);
+ return GetAQ20AI<boss_ossirianAI>(creature);
}
};
@@ -298,7 +305,7 @@ class go_ossirian_crystal : public GameObjectScript
GameObjectAI* GetAI(GameObject* go) const override
{
- return GetInstanceAI<go_ossirian_crystalAI>(go);
+ return GetAQ20AI<go_ossirian_crystalAI>(go);
}
};
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
index 5fd456c0295..397477b7129 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp
@@ -16,9 +16,9 @@
*/
#include "ObjectMgr.h"
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
#include "ruins_of_ahnqiraj.h"
+#include "ScriptedCreature.h"
+#include "ScriptMgr.h"
enum Yells
{
@@ -130,7 +130,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..1c25c905328 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 <class AI, class T>
+inline AI* GetAQ20AI(T* obj)
+{
+ return GetInstanceAI<AI>(obj, 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 19af5cad56d..779e973f330 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
@@ -201,7 +204,7 @@ public:
//Charge_Timer
if (Charge_Timer <= diff)
{
- Unit* target = NULL;
+ Unit* target = nullptr;
target = SelectTarget(SELECT_TARGET_RANDOM, 0);
if (target)
{
@@ -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 9e03c3031aa..6f531894c98 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 "ObjectAccessor.h"
+#include "Player.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
@@ -284,7 +288,7 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
{
- Creature* Spawned = NULL;
+ Creature* Spawned = nullptr;
//Spawn claw tentacle on the random target
Spawned = me->SummonCreature(NPC_CLAW_TENTACLE, *target, TEMPSUMMON_CORPSE_DESPAWN, 500);
@@ -453,7 +457,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<cthunAI>(creature);
+ return GetAQ40AI<cthunAI>(creature);
}
struct cthunAI : public ScriptedAI
@@ -545,7 +549,7 @@ public:
Unit* SelectRandomNotStomach()
{
if (Stomach_Map.empty())
- return NULL;
+ return nullptr;
std::unordered_map<ObjectGuid, bool>::const_iterator i = Stomach_Map.begin();
@@ -566,7 +570,7 @@ public:
}
if (temp.empty())
- return NULL;
+ return nullptr;
j = temp.begin();
@@ -587,7 +591,7 @@ public:
if (WisperTimer <= diff)
{
//Play random sound to the zone
- Map::PlayerList const &PlayerList = me->GetMap()->GetPlayers();
+ Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers();
for (Map::PlayerList::const_iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr)
me->PlayDirectSound(RANDOM_SOUND_WHISPER, itr->GetSource());
@@ -754,7 +758,7 @@ public:
//Set target in stomach
Stomach_Map[target->GetGUID()] = true;
target->InterruptNonMeleeSpells(false);
- target->CastSpell(target, SPELL_MOUTH_TENTACLE, true, NULL, NULL, me->GetGUID());
+ target->CastSpell(target, SPELL_MOUTH_TENTACLE, true, nullptr, nullptr, me->GetGUID());
StomachEnterTarget = target->GetGUID();
StomachEnterVisTimer = 3800;
}
@@ -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 2e8ee5f4259..3a154f40eed 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
@@ -122,7 +122,7 @@ public:
//ChangeTarget_Timer
if (Submerged && ChangeTarget_Timer <= diff)
{
- Unit* target = NULL;
+ Unit* target = nullptr;
target = SelectTarget(SELECT_TARGET_RANDOM, 0);
if (target)
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 116f634893f..76833e06841 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
@@ -83,7 +83,7 @@ class boss_skeram : public CreatureScript
{
ScriptedAI::EnterEvadeMode(why);
if (me->IsSummon())
- ((TempSummon*)me)->UnSummon();
+ me->DespawnOrUnsummon();
}
void JustSummoned(Creature* creature) override
@@ -200,7 +200,7 @@ class boss_skeram : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_skeramAI(creature);
+ return GetAQ40AI<boss_skeramAI>(creature);
}
};
@@ -258,10 +258,7 @@ public:
bool Validate(SpellInfo const* /*spell*/) override
{
- if (!sSpellMgr->GetSpellInfo(SPELL_TRUE_FULFILLMENT_2)
- || !sSpellMgr->GetSpellInfo(SPELL_GENERIC_DISMOUNT))
- return false;
- return true;
+ return ValidateSpellInfo({ SPELL_TRUE_FULFILLMENT_2, SPELL_GENERIC_DISMOUNT });
}
void HandleEffect(SpellEffIndex /*effIndex*/)
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
index e48e74897da..d98cf055d30 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
@@ -24,11 +24,15 @@ SDCategory: Temple of Ahn'Qiraj
EndScriptData */
#include "ScriptMgr.h"
+#include "InstanceScript.h"
+#include "Item.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
#include "ScriptedCreature.h"
+#include "Spell.h"
+#include "SpellInfo.h"
#include "temple_of_ahnqiraj.h"
#include "WorldPacket.h"
-#include "Item.h"
-#include "Spell.h"
enum Spells
{
@@ -167,7 +171,7 @@ struct boss_twinemperorsAI : public ScriptedAI
}
}
- void SpellHit(Unit* caster, const SpellInfo* entry) override
+ void SpellHit(Unit* caster, SpellInfo const* entry) override
{
if (caster == me)
return;
@@ -320,9 +324,9 @@ struct boss_twinemperorsAI : public ScriptedAI
me->GetCreatureListWithEntryInGrid(lUnitList, 15317, 150.0f);
if (lUnitList.empty())
- return NULL;
+ return nullptr;
- Creature* nearb = NULL;
+ Creature* nearb = nullptr;
for (std::list<Creature*>::const_iterator iter = lUnitList.begin(); iter != lUnitList.end(); ++iter)
{
@@ -382,9 +386,13 @@ struct boss_twinemperorsAI : public ScriptedAI
if (!me->IsNonMeleeSpellCast(true))
{
DoCast(me, SPELL_BERSERK);
- EnrageTimer = 60*60000;
- } else EnrageTimer = 0;
- } else EnrageTimer-=diff;
+ EnrageTimer = 60 * 60000;
+ }
+ else
+ EnrageTimer = 0;
+ }
+ else
+ EnrageTimer -= diff;
}
};
@@ -395,7 +403,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 +491,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<boss_veklorAI>(creature);
+ return GetAQ40AI<boss_veklorAI>(creature);
}
struct boss_veklorAI : public boss_twinemperorsAI
@@ -550,7 +558,7 @@ public:
//Blizzard_Timer
if (Blizzard_Timer <= diff)
{
- Unit* target = NULL;
+ Unit* target = nullptr;
target = SelectTarget(SELECT_TARGET_RANDOM, 0, 45, true);
if (target)
DoCast(target, SPELL_BLIZZARD);
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
index 1d41e808bc9..189b706d153 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
@@ -16,9 +16,13 @@
*/
#include "ScriptMgr.h"
+#include "InstanceScript.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
#include "ScriptedCreature.h"
#include "SpellInfo.h"
#include "temple_of_ahnqiraj.h"
+#include "TemporarySummon.h"
enum Spells
{
@@ -255,7 +259,7 @@ class boss_viscidus : public CreatureScript
CreatureAI* GetAI(Creature* creature) const override
{
- return new boss_viscidusAI(creature);
+ return GetAQ40AI<boss_viscidusAI>(creature);
}
};
@@ -272,7 +276,7 @@ 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);
@@ -304,7 +308,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..8596737bd14 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
{
@@ -70,24 +72,24 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript
{
switch (creature->GetEntry())
{
- case NPC_SKERAM:
- SkeramGUID = creature->GetGUID();
- break;
- case NPC_VEM:
- VemGUID = creature->GetGUID();
- break;
- case NPC_KRI:
- KriGUID = creature->GetGUID();
- break;
- case NPC_VEKLOR:
- VeklorGUID = creature->GetGUID();
- break;
- case NPC_VEKNILASH:
- VeknilashGUID = creature->GetGUID();
- break;
- case NPC_VISCIDUS:
- ViscidusGUID = creature->GetGUID();
- break;
+ case NPC_SKERAM:
+ SkeramGUID = creature->GetGUID();
+ break;
+ case NPC_VEM:
+ VemGUID = creature->GetGUID();
+ break;
+ case NPC_KRI:
+ KriGUID = creature->GetGUID();
+ break;
+ case NPC_VEKLOR:
+ VeklorGUID = creature->GetGUID();
+ break;
+ case NPC_VEKNILASH:
+ VeknilashGUID = creature->GetGUID();
+ break;
+ case NPC_VISCIDUS:
+ ViscidusGUID = creature->GetGUID();
+ break;
}
}
@@ -101,26 +103,26 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript
{
switch (type)
{
- case DATA_VEMISDEAD:
- if (IsBossDied[0])
- return 1;
- break;
-
- case DATA_VEKLORISDEAD:
- if (IsBossDied[1])
- return 1;
- break;
-
- case DATA_VEKNILASHISDEAD:
- if (IsBossDied[2])
- return 1;
- break;
-
- case DATA_BUG_TRIO_DEATH:
- return BugTrioDeathCount;
-
- case DATA_CTHUN_PHASE:
- return CthunPhase;
+ case DATA_VEMISDEAD:
+ if (IsBossDied[0])
+ return 1;
+ break;
+
+ case DATA_VEKLORISDEAD:
+ if (IsBossDied[1])
+ return 1;
+ break;
+
+ case DATA_VEKNILASHISDEAD:
+ if (IsBossDied[2])
+ return 1;
+ break;
+
+ case DATA_BUG_TRIO_DEATH:
+ return BugTrioDeathCount;
+
+ case DATA_CTHUN_PHASE:
+ return CthunPhase;
}
return 0;
}
@@ -129,18 +131,18 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript
{
switch (identifier)
{
- case DATA_SKERAM:
- return SkeramGUID;
- case DATA_VEM:
- return VemGUID;
- case DATA_KRI:
- return KriGUID;
- case DATA_VEKLOR:
- return VeklorGUID;
- case DATA_VEKNILASH:
- return VeknilashGUID;
- case DATA_VISCIDUS:
- return ViscidusGUID;
+ case DATA_SKERAM:
+ return SkeramGUID;
+ case DATA_VEM:
+ return VemGUID;
+ case DATA_KRI:
+ return KriGUID;
+ case DATA_VEKLOR:
+ return VeklorGUID;
+ case DATA_VEKNILASH:
+ return VeknilashGUID;
+ case DATA_VISCIDUS:
+ return ViscidusGUID;
}
return ObjectGuid::Empty;
} // end GetGuidData
@@ -149,25 +151,25 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript
{
switch (type)
{
- case DATA_VEM_DEATH:
- IsBossDied[0] = true;
- break;
+ case DATA_VEM_DEATH:
+ IsBossDied[0] = true;
+ break;
- case DATA_BUG_TRIO_DEATH:
- ++BugTrioDeathCount;
- break;
+ case DATA_BUG_TRIO_DEATH:
+ ++BugTrioDeathCount;
+ break;
- case DATA_VEKLOR_DEATH:
- IsBossDied[1] = true;
- break;
+ case DATA_VEKLOR_DEATH:
+ IsBossDied[1] = true;
+ break;
- case DATA_VEKNILASH_DEATH:
- IsBossDied[2] = true;
- break;
+ case DATA_VEKNILASH_DEATH:
+ IsBossDied[2] = true;
+ break;
- case DATA_CTHUN_PHASE:
- CthunPhase = data;
- break;
+ case DATA_CTHUN_PHASE:
+ CthunPhase = data;
+ break;
}
}
};
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp
index a4457b7e82b..c7c41ef22c7 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp
@@ -24,17 +24,9 @@ SDCategory: Temple of Ahn'Qiraj
EndScriptData */
#include "ScriptMgr.h"
+#include "ObjectAccessor.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 "temple_of_ahnqiraj.h"
enum Spells
{
@@ -66,7 +58,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..1a1f366a946 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 <class AI, class T>
+inline AI* GetAQ40AI(T* obj)
+{
+ return GetInstanceAI<AI>(obj, 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 672bae016c1..3748e7ffc1c 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
+++ b/src/server/scripts/Kalimdor/WailingCaverns/instance_wailing_caverns.cpp
@@ -24,7 +24,10 @@ SDCategory: Wailing Caverns
EndScriptData */
#include "ScriptMgr.h"
+#include "Creature.h"
#include "InstanceScript.h"
+#include "Log.h"
+#include "Map.h"
#include "wailing_caverns.h"
#define MAX_ENCOUNTER 9
@@ -32,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
{
@@ -115,7 +118,7 @@ public:
return saveStream.str();
}
- void Load(const char* in) override
+ void Load(char const* in) override
{
if (!in)
{
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
index 23516577f44..05385a0c6bf 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
+++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
@@ -27,11 +27,13 @@ EndScriptData */
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
+#include "InstanceScript.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
#include "wailing_caverns.h"
-#include "Player.h"
/*######
## npc_disciple_of_naralex
@@ -205,7 +207,7 @@ public:
++eventProgress;
eventTimer = 15000;
//CAST_AI(npc_escort::npc_escortAI, me->AI())->SetCanDefend(false);
- if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX)))
+ if (Creature* naralex = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_NARALEX)))
DoCast(naralex, SPELL_NARALEXS_AWAKENING, true);
Talk(EMOTE_AWAKENING_RITUAL);
}
@@ -214,7 +216,7 @@ public:
{
++eventProgress;
eventTimer = 15000;
- if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX)))
+ if (Creature* naralex = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_NARALEX)))
naralex->AI()->Talk(EMOTE_TROUBLED_SLEEP);
me->SummonCreature(NPC_DEVIATE_MOCCASIN, 135.943f, 199.701f, -103.529f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000);
me->SummonCreature(NPC_DEVIATE_MOCCASIN, 151.08f, 221.13f, -103.609f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000);
@@ -225,7 +227,7 @@ public:
{
++eventProgress;
eventTimer = 30000;
- if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX)))
+ if (Creature* naralex = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_NARALEX)))
naralex->AI()->Talk(EMOTE_WRITHE_IN_AGONY);
me->SummonCreature(NPC_NIGHTMARE_ECTOPLASM, 133.413f, 207.188f, -102.469f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000);
me->SummonCreature(NPC_NIGHTMARE_ECTOPLASM, 142.857f, 218.645f, -102.905f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 15000);
@@ -239,7 +241,7 @@ public:
if (eventProgress == 5)
{
++eventProgress;
- if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX)))
+ if (Creature* naralex = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_NARALEX)))
naralex->AI()->Talk(EMOTE_HORRENDOUS_VISION);
me->SummonCreature(NPC_MUTANUS_THE_DEVOURER, 150.872f, 262.905f, -103.503f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
Talk(SAY_MUTANUS_THE_DEVOURER);
@@ -250,7 +252,7 @@ public:
{
++eventProgress;
eventTimer = 3000;
- if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX)))
+ if (Creature* naralex = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_NARALEX)))
{
if (me->HasAura(SPELL_NARALEXS_AWAKENING))
me->RemoveAura(SPELL_NARALEXS_AWAKENING);
@@ -264,7 +266,7 @@ public:
{
++eventProgress;
eventTimer = 6000;
- if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX)))
+ if (Creature* naralex = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_NARALEX)))
naralex->AI()->Talk(SAY_THANK_YOU);
}
else
@@ -272,7 +274,7 @@ public:
{
++eventProgress;
eventTimer = 8000;
- if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX)))
+ if (Creature* naralex = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_NARALEX)))
{
naralex->AI()->Talk(SAY_FAREWELL);
naralex->AddAura(SPELL_FLIGHT_FORM, naralex);
@@ -286,7 +288,7 @@ public:
{
++eventProgress;
eventTimer = 1500;
- if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX)))
+ if (Creature* naralex = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_NARALEX)))
naralex->GetMotionMaster()->MovePoint(25, naralex->GetPositionX(), naralex->GetPositionY(), naralex->GetPositionZ());
}
else
@@ -294,7 +296,7 @@ public:
{
++eventProgress;
eventTimer = 2500;
- if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX)))
+ if (Creature* naralex = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_NARALEX)))
{
naralex->GetMotionMaster()->MovePoint(0, 117.095512f, 247.107971f, -96.167870f);
naralex->GetMotionMaster()->MovePoint(1, 90.388809f, 276.135406f, -83.389801f);
@@ -305,7 +307,7 @@ public:
else
if (eventProgress == 11)
{
- if (Creature* naralex = instance->instance->GetCreature(instance->GetGuidData(DATA_NARALEX)))
+ if (Creature* naralex = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_NARALEX)))
naralex->SetVisible(false);
me->SetVisible(false);
instance->SetData(TYPE_NARALEX_PART3, DONE);
@@ -363,7 +365,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_disciple_of_naralexAI>(creature);
+ return GetWailingCavernsAI<npc_disciple_of_naralexAI>(creature);
}
};
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.h
index 1b655815934..98d293c1416 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 <class AI, class T>
+inline AI* GetWailingCavernsAI(T* obj)
+{
+ return GetInstanceAI<AI>(obj, 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 2a7af38c1ab..9e6da47dcf1 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"
@@ -152,7 +153,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 cf8824395e3..0a4426e447e 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/instance_zulfarrak.cpp
@@ -16,10 +16,13 @@
*/
#include "ScriptMgr.h"
+#include "GameObject.h"
#include "InstanceScript.h"
-#include "zulfarrak.h"
+#include "Map.h"
+#include "MotionMaster.h"
#include "Player.h"
#include "TemporarySummon.h"
+#include "zulfarrak.h"
enum Misc
{
@@ -99,7 +102,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
{
@@ -216,9 +219,9 @@ public:
switch (type)
{
case EVENT_PYRAMID:
- PyramidPhase=data;
+ PyramidPhase = data;
break;
- };
+ }
}
virtual void Update(uint32 diff) override
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
index 6539decdd56..f27a910e4e7 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
@@ -29,11 +29,15 @@ npc_weegli_blastfuse
EndContentData */
#include "ScriptMgr.h"
+#include "GameObject.h"
+#include "GameObjectAI.h"
+#include "InstanceScript.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
-#include "GameObjectAI.h"
#include "zulfarrak.h"
-#include "Player.h"
/*######
## npc_sergeant_bly
@@ -99,7 +103,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;
@@ -188,7 +192,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_sergeant_blyAI>(creature);
+ return GetZulFarrakAI<npc_sergeant_blyAI>(creature);
}
};
@@ -222,7 +226,7 @@ public:
private:
void initBlyCrewMember(uint32 entry, float x, float y, float z)
{
- if (Creature* crew = instance->instance->GetCreature(instance->GetGuidData(entry)))
+ if (Creature* crew = ObjectAccessor::GetCreature(*me, instance->GetGuidData(entry)))
{
crew->SetReactState(REACT_AGGRESSIVE);
crew->SetWalk(true);
@@ -235,7 +239,7 @@ public:
GameObjectAI* GetAI(GameObject* go) const override
{
- return GetInstanceAI<go_troll_cageAI>(go);
+ return GetZulFarrakAI<go_troll_cageAI>(go);
}
};
@@ -269,7 +273,7 @@ public:
npc_weegli_blastfuseAI(Creature* creature) : ScriptedAI(creature)
{
instance = creature->GetInstanceScript();
- destroyingDoor=false;
+ destroyingDoor = false;
Bomb_Timer = 10000;
LandMine_Timer = 30000;
}
@@ -344,7 +348,7 @@ public:
me->GetMotionMaster()->MovePoint(0, 1858.57f, 1146.35f, 14.745f);
me->SetHomePosition(1858.57f, 1146.35f, 14.745f, 3.85f); // in case he gets interrupted
Talk(SAY_WEEGLI_OK_I_GO);
- destroyingDoor=true;
+ destroyingDoor = true;
}
}
@@ -381,7 +385,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
- return GetInstanceAI<npc_weegli_blastfuseAI>(creature);
+ return GetZulFarrakAI<npc_weegli_blastfuseAI>(creature);
}
};
@@ -425,7 +429,7 @@ public:
GameObjectAI* GetAI(GameObject* go) const override
{
- return new go_shallow_graveAI(go);
+ return GetZulFarrakAI<go_shallow_graveAI>(go);
}
};
@@ -444,7 +448,7 @@ class at_zumrah : public AreaTriggerScript
public:
at_zumrah() : AreaTriggerScript("at_zumrah") { }
- bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/) override
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*at*/) override
{
Creature* pZumrah = player->FindNearestCreature(ZUMRAH_ID, 30.0f);
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.h
index e6f97b339aa..86916c2a580 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 <class AI, class T>
+inline AI* GetZulFarrakAI(T* obj)
+{
+ return GetInstanceAI<AI>(obj, ZFScriptName);
+}
+
#endif
diff --git a/src/server/scripts/Kalimdor/boss_azuregos.cpp b/src/server/scripts/Kalimdor/boss_azuregos.cpp
index 37542f08d99..a5ade380e31 100644
--- a/src/server/scripts/Kalimdor/boss_azuregos.cpp
+++ b/src/server/scripts/Kalimdor/boss_azuregos.cpp
@@ -16,10 +16,10 @@
*/
#include "ScriptMgr.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
-#include "SpellAuraEffects.h"
-#include "Player.h"
enum Say
{
@@ -188,11 +188,7 @@ class spell_mark_of_frost : public SpellScriptLoader
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- if (!sSpellMgr->GetSpellInfo(SPELL_MARK_OF_FROST))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_AURA_OF_FROST))
- return false;
- return true;
+ return ValidateSpellInfo({ SPELL_MARK_OF_FROST, SPELL_AURA_OF_FROST });
}
void FilterTargets(std::list<WorldObject*>& targets)
diff --git a/src/server/scripts/Kalimdor/zone_ashenvale.cpp b/src/server/scripts/Kalimdor/zone_ashenvale.cpp
index 35fb7d4f418..f5680664e27 100644
--- a/src/server/scripts/Kalimdor/zone_ashenvale.cpp
+++ b/src/server/scripts/Kalimdor/zone_ashenvale.cpp
@@ -28,10 +28,12 @@ npc_ruul_snowhoof
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedEscortAI.h"
+#include "GameObject.h"
#include "GameObjectAI.h"
#include "Player.h"
+#include "ScriptedCreature.h"
+#include "ScriptedEscortAI.h"
+#include "SpellInfo.h"
#include "SpellScript.h"
/*####
diff --git a/src/server/scripts/Kalimdor/zone_azshara.cpp b/src/server/scripts/Kalimdor/zone_azshara.cpp
index b6572c99f7d..0813b05705f 100644
--- a/src/server/scripts/Kalimdor/zone_azshara.cpp
+++ b/src/server/scripts/Kalimdor/zone_azshara.cpp
@@ -17,9 +17,11 @@
*/
#include "ScriptMgr.h"
+#include "ObjectAccessor.h"
+#include "MotionMaster.h"
+#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
-#include "Player.h"
#include "SpellInfo.h"
/*######
@@ -65,7 +67,7 @@ public:
void EnterCombat(Unit* /*who*/) override { }
- void SpellHit(Unit* unit, const SpellInfo* spell) override
+ void SpellHit(Unit* unit, SpellInfo const* spell) override
{
if (spellhit)
return;
@@ -97,9 +99,9 @@ public:
return;
}
// walk 5 seconds before summoning
- if (spellhit && morphtimer<5000)
+ if (spellhit && morphtimer < 5000)
{
- morphtimer+=diff;
+ morphtimer += diff;
if (morphtimer >= 5000)
{
DoCast(me, SPELL_POLYMORPH_BACKFIRE); // summon copies
diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
index 77295abb873..c4036fbe836 100644
--- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
@@ -34,14 +34,15 @@ npc_death_ravager
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedEscortAI.h"
-#include "ScriptedGossip.h"
-#include "GameObjectAI.h"
-#include "Cell.h"
#include "CellImpl.h"
+#include "GameObjectAI.h"
#include "GridNotifiersImpl.h"
-#include "GridNotifiers.h"
+#include "Log.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
+#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
+#include "TemporarySummon.h"
/*######
## npc_draenei_survivor
@@ -112,7 +113,7 @@ public:
}
}
- void SpellHit(Unit* Caster, const SpellInfo* Spell) override
+ void SpellHit(Unit* Caster, SpellInfo const* Spell) override
{
if (Spell->SpellFamilyFlags[2] & 0x080000000)
{
diff --git a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
index 9dfd78f52e9..afecffd2ff1 100644
--- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
@@ -27,14 +27,15 @@ 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 "MotionMaster.h"
+#include "ObjectAccessor.h"
+#include "PassiveAI.h"
+#include "Player.h"
+#include "ScriptedEscortAI.h"
/*######
## npc_webbed_creature
@@ -439,7 +440,7 @@ public:
break;
case EVENT_HEALING_SURGE:
{
- Unit* target = NULL;
+ Unit* target = nullptr;
if (me->GetHealthPct() < 85)
target = me;
else if (Player* player = GetPlayerForEscort())
@@ -508,7 +509,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
@@ -604,7 +605,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);
@@ -749,7 +750,7 @@ public:
SetEscortPaused(true);
//Find Sironas and make it respawn if needed
- Creature* sironas = NULL;
+ Creature* sironas = nullptr;
Trinity::AllCreaturesOfEntryInRange check(me, NPC_SIRONAS, SIZE_OF_GRIDS);
Trinity::CreatureSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, sironas, check);
Cell::VisitAllObjects(me, searcher, SIZE_OF_GRIDS);
diff --git a/src/server/scripts/Kalimdor/zone_darkshore.cpp b/src/server/scripts/Kalimdor/zone_darkshore.cpp
index 990c266e041..b2bdd76c137 100644
--- a/src/server/scripts/Kalimdor/zone_darkshore.cpp
+++ b/src/server/scripts/Kalimdor/zone_darkshore.cpp
@@ -104,7 +104,7 @@ public:
}
}
- void SpellHit(Unit* /*pCaster*/, const SpellInfo* pSpell) override
+ void SpellHit(Unit* /*pCaster*/, SpellInfo const* pSpell) override
{
if (HasFollowState(STATE_FOLLOW_INPROGRESS | STATE_FOLLOW_PAUSED) && pSpell->Id == SPELL_AWAKEN)
ClearSleeping();
diff --git a/src/server/scripts/Kalimdor/zone_desolace.cpp b/src/server/scripts/Kalimdor/zone_desolace.cpp
index 0b0264439ff..9027b59f3e3 100644
--- a/src/server/scripts/Kalimdor/zone_desolace.cpp
+++ b/src/server/scripts/Kalimdor/zone_desolace.cpp
@@ -31,11 +31,12 @@ go_demon_portal
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
-#include "ScriptedEscortAI.h"
+#include "GameObject.h"
#include "GameObjectAI.h"
+#include "MotionMaster.h"
#include "Player.h"
+#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
#include "SpellInfo.h"
enum DyingKodo
diff --git a/src/server/scripts/Kalimdor/zone_durotar.cpp b/src/server/scripts/Kalimdor/zone_durotar.cpp
index 821c7d34641..d35c90fca0c 100644
--- a/src/server/scripts/Kalimdor/zone_durotar.cpp
+++ b/src/server/scripts/Kalimdor/zone_durotar.cpp
@@ -16,10 +16,15 @@
*/
#include "ScriptMgr.h"
+#include "CreatureAIImpl.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
#include "ScriptedCreature.h"
-#include "Vehicle.h"
+#include "SpellInfo.h"
#include "SpellScript.h"
-#include "Player.h"
+#include "TemporarySummon.h"
+#include "Vehicle.h"
enum Texts
{
@@ -373,9 +378,7 @@ class spell_mount_check : public SpellScriptLoader
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- if (!sSpellMgr->GetSpellInfo(SPELL_MOUNTING_CHECK))
- return false;
- return true;
+ return ValidateSpellInfo({ SPELL_MOUNTING_CHECK });
}
void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
@@ -421,11 +424,7 @@ class spell_voljin_war_drums : public SpellScriptLoader
bool Validate(SpellInfo const* /*spellInfo*/) override
{
- if (!sSpellMgr->GetSpellInfo(SPELL_MOTIVATE_1))
- return false;
- if (!sSpellMgr->GetSpellInfo(SPELL_MOTIVATE_2))
- return false;
- return true;
+ return ValidateSpellInfo({ SPELL_MOTIVATE_1, SPELL_MOTIVATE_2 });
}
void HandleDummy(SpellEffIndex /*effIndex*/)
@@ -478,12 +477,7 @@ 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 2c44c1b91aa..898eaa8521e 100644
--- a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
+++ b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
@@ -30,11 +30,12 @@ npc_cassa_crimsonwing - handled by npc_taxi
EndContentData */
#include "ScriptMgr.h"
+#include "MotionMaster.h"
+#include "Player.h"
#include "ScriptedCreature.h"
-#include "ScriptedEscortAI.h"
#include "ScriptedGossip.h"
+#include "SpellInfo.h"
#include "SpellScript.h"
-#include "Player.h"
#include "WorldSession.h"
/*######
@@ -226,7 +227,6 @@ public:
};
-
enum SpellScripts
{
SPELL_OOZE_ZAP = 42489,
@@ -246,9 +246,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()
@@ -293,9 +291,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)
@@ -329,9 +325,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_felwood.cpp b/src/server/scripts/Kalimdor/zone_felwood.cpp
index 4ede963d5ad..70cbad8b295 100644
--- a/src/server/scripts/Kalimdor/zone_felwood.cpp
+++ b/src/server/scripts/Kalimdor/zone_felwood.cpp
@@ -28,9 +28,10 @@ at_ancient_leaf
EndContentData */
#include "ScriptMgr.h"
+#include "Map.h"
+#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
-#include "Player.h"
/*######
## at_ancient_leaf
diff --git a/src/server/scripts/Kalimdor/zone_feralas.cpp b/src/server/scripts/Kalimdor/zone_feralas.cpp
index b9c2a20abf1..16c30f6fadd 100644
--- a/src/server/scripts/Kalimdor/zone_feralas.cpp
+++ b/src/server/scripts/Kalimdor/zone_feralas.cpp
@@ -29,11 +29,12 @@ spell_gordunni_trap
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
+#include "GameObject.h"
+#include "Player.h"
#include "ScriptedEscortAI.h"
#include "ScriptedGossip.h"
+#include "SpellInfo.h"
#include "SpellScript.h"
-#include "Player.h"
#include "WorldSession.h"
/*######
@@ -166,7 +167,7 @@ class spell_gordunni_trap : public SpellScriptLoader
void HandleDummy()
{
Unit* caster = GetCaster();
- if (GameObject* chest = caster->SummonGameObject(urand(0, 1) ? GO_GORDUNNI_DIRT_MOUND_1 : GO_GORDUNNI_DIRT_MOUND_2, *caster, G3D::Quat(), 0))
+ if (GameObject* chest = caster->SummonGameObject(urand(0, 1) ? GO_GORDUNNI_DIRT_MOUND_1 : GO_GORDUNNI_DIRT_MOUND_2, *caster, QuaternionData(), 0))
{
chest->SetSpellId(GetSpellInfo()->Id);
caster->RemoveGameObject(chest, false);
diff --git a/src/server/scripts/Kalimdor/zone_moonglade.cpp b/src/server/scripts/Kalimdor/zone_moonglade.cpp
index 1d220f9ad48..e8e6f5ff8d8 100644
--- a/src/server/scripts/Kalimdor/zone_moonglade.cpp
+++ b/src/server/scripts/Kalimdor/zone_moonglade.cpp
@@ -30,15 +30,15 @@ npc_giant_spotlight
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
+#include "CellImpl.h"
+#include "GridNotifiersImpl.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
#include "ScriptedEscortAI.h"
#include "ScriptedGossip.h"
-#include "Player.h"
#include "SpellInfo.h"
-#include "GridNotifiers.h"
-#include "GridNotifiersImpl.h"
-#include "Cell.h"
-#include "CellImpl.h"
+#include "TemporarySummon.h"
/*######
## npc_clintar_spirit
@@ -443,7 +443,7 @@ public:
DoCast(SPELL_OMEN_SUMMON_SPOTLIGHT);
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override
{
if (spell->Id == SPELL_ELUNE_CANDLE)
{
diff --git a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp
index e75f69287b7..2603173e992 100644
--- a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp
+++ b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp
@@ -29,13 +29,14 @@ npc_thrall_warchief
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
-#include "Player.h"
-#include "Cell.h"
#include "CellImpl.h"
-#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
+#include "TemporarySummon.h"
/*######
## npc_shenthul
diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp
index 436e75ccffa..34d3cc7cded 100644
--- a/src/server/scripts/Kalimdor/zone_silithus.cpp
+++ b/src/server/scripts/Kalimdor/zone_silithus.cpp
@@ -36,11 +36,16 @@ TO DO: Dragons should use the HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF) after tr
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
+#include "CreatureAIImpl.h"
+#include "GameObject.h"
#include "GameObjectAI.h"
#include "Group.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
#include "Player.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
+#include "TemporarySummon.h"
/*#####
# Quest: A Pawn on the Eternal Board
@@ -503,11 +508,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);
@@ -516,7 +521,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:
@@ -552,7 +557,7 @@ public:
case 51:
{
uint32 entries[4] = { NPC_KALDOREI_INFANTRY, NPC_ANUBISATH_CONQUEROR, NPC_QIRAJI_WASP, NPC_QIRAJI_TANK };
- Unit* mob = NULL;
+ Unit* mob = nullptr;
for (uint8 i = 0; i < 4; ++i)
{
mob = player->FindNearestCreature(entries[i], 50);
@@ -616,7 +621,7 @@ public:
{
Talk(ARYGOS_YELL_1);
AnachronosQuestTrigger->AI()->EnterEvadeMode();
- eventEnd=true;
+ eventEnd = true;
}
break;
}
@@ -739,7 +744,7 @@ public:
}
if (!hasTarget)
{
- Unit* target = NULL;
+ Unit* target = nullptr;
if (me->GetEntry() == NPC_ANUBISATH_CONQUEROR || me->GetEntry() == NPC_QIRAJI_TANK || me->GetEntry() == NPC_QIRAJI_WASP)
target = me->FindNearestCreature(NPC_KALDOREI_INFANTRY, 20, true);
if (me->GetEntry() == NPC_KALDOREI_INFANTRY)
@@ -867,7 +872,7 @@ public:
if (Group* EventGroup = player->GetGroup())
{
- Player* groupMember = NULL;
+ Player* groupMember = nullptr;
uint8 GroupMemberCount = 0;
uint8 DeadMemberCount = 0;
diff --git a/src/server/scripts/Kalimdor/zone_tanaris.cpp b/src/server/scripts/Kalimdor/zone_tanaris.cpp
index 197221bddcf..fcd531a10ce 100644
--- a/src/server/scripts/Kalimdor/zone_tanaris.cpp
+++ b/src/server/scripts/Kalimdor/zone_tanaris.cpp
@@ -31,11 +31,12 @@ npc_tooga
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
-#include "Player.h"
+#include "ScriptedGossip.h"
#include "WorldSession.h"
/*######
@@ -106,7 +107,7 @@ public:
!player->HasItemCount(ITEM_SILVER_TOTEM, 1, true))
{
ItemPosCountVec dest;
- uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 11522, 1, NULL);
+ uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 11522, 1, nullptr);
if (msg == EQUIP_ERR_OK)
player->StoreNewItem(dest, ITEM_SILVER_TOTEM, true);
}
diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
index ab63bdbc19e..1705f3e8dea 100644
--- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp
+++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
@@ -33,11 +33,13 @@ npc_wizzlecrank_shredder
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
-#include "ScriptedEscortAI.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
#include "Player.h"
+#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
#include "SpellInfo.h"
+#include "TemporarySummon.h"
/*######
## npc_beaten_corpse
@@ -228,7 +230,7 @@ public:
me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
}
- void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override
+ void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override
{
if (spell->Id == SPELL_FLARE || spell->Id == SPELL_FOLLY)
{
@@ -370,7 +372,7 @@ public:
{
if (EventInProgress)
{
- Player* warrior = NULL;
+ Player* warrior = nullptr;
if (PlayerGUID)
warrior = ObjectAccessor::GetPlayer(*me, PlayerGUID);
diff --git a/src/server/scripts/Kalimdor/zone_thousand_needles.cpp b/src/server/scripts/Kalimdor/zone_thousand_needles.cpp
index d8d48f566bc..a1439f4cc00 100644
--- a/src/server/scripts/Kalimdor/zone_thousand_needles.cpp
+++ b/src/server/scripts/Kalimdor/zone_thousand_needles.cpp
@@ -32,11 +32,11 @@ go_panther_cage
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
-#include "ScriptedEscortAI.h"
+#include "GameObject.h"
#include "GameObjectAI.h"
#include "Player.h"
+#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
/*#####
# npc_kanati
diff --git a/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp b/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp
index f5b28a5f09a..4a1456a18c0 100644
--- a/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp
+++ b/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp
@@ -29,10 +29,10 @@ npc_ringo
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
+#include "ObjectAccessor.h"
+#include "Player.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
-#include "Player.h"
#include "SpellInfo.h"
enum AmeData
@@ -227,7 +227,7 @@ public:
}
}
- void SpellHit(Unit* /*pCaster*/, const SpellInfo* pSpell) override
+ void SpellHit(Unit* /*pCaster*/, SpellInfo const* pSpell) override
{
if (HasFollowState(STATE_FOLLOW_INPROGRESS | STATE_FOLLOW_PAUSED) && pSpell->Id == SPELL_REVIVE_RINGO)
ClearFaint();
diff --git a/src/server/scripts/Kalimdor/zone_winterspring.cpp b/src/server/scripts/Kalimdor/zone_winterspring.cpp
index 40e2dc6e6fd..9bc3711e830 100644
--- a/src/server/scripts/Kalimdor/zone_winterspring.cpp
+++ b/src/server/scripts/Kalimdor/zone_winterspring.cpp
@@ -30,11 +30,14 @@ go_elune_fire
EndContentData */
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
-#include "ScriptedEscortAI.h"
+#include "GameObject.h"
#include "GameObjectAI.h"
+#include "MotionMaster.h"
+#include "ObjectAccessor.h"
#include "Player.h"
+#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
+#include "TemporarySummon.h"
#include "WorldSession.h"
/*######
@@ -168,7 +171,7 @@ public:
// The array MUST be terminated by {0, 0, 0}
DialogueHelper(DialogueEntry const* dialogueArray) :
_dialogueArray(dialogueArray),
- _currentEntry(NULL),
+ _currentEntry(nullptr),
_actionTimer(0)
{ }
// The array MUST be terminated by {0, 0, 0, 0, 0}
@@ -212,7 +215,7 @@ protected:
/// Will be called when a dialogue step was done
virtual void JustDidDialogueStep(int32 /*entry*/) { }
/// Will be called to get a speaker, MUST be implemented if not used in instances
- virtual Creature* GetSpeakerByEntry(int32 /*entry*/) { return NULL; }
+ virtual Creature* GetSpeakerByEntry(int32 /*entry*/) { return nullptr; }
private:
void DoNextDialogueStep()
@@ -422,7 +425,7 @@ public:
(*itr)->Refresh();
}
- if (GameObject* altar = me->GetMap()->GetGameObject(_altarGUID))
+ if (GameObject* altar = ObjectAccessor::GetGameObject(*me, _altarGUID))
me->SetFacingToObject(altar);
break;
}
@@ -436,7 +439,7 @@ public:
case 44:
// Stop the escort and turn towards the altar
SetEscortPaused(true);
- if (GameObject* altar = me->GetMap()->GetGameObject(_altarGUID))
+ if (GameObject* altar = ObjectAccessor::GetGameObject(*me, _altarGUID))
me->SetFacingToObject(altar);
break;
}
@@ -466,7 +469,7 @@ public:
break;
case SAY_PRIESTESS_ALTAR_9:
// move near the escort npc
- if (Creature* priestess = me->GetMap()->GetCreature(_firstPriestessGUID))
+ if (Creature* priestess = ObjectAccessor::GetCreature(*me, _firstPriestessGUID))
priestess->GetMotionMaster()->MovePoint(0, wingThicketLocations[6].m_positionX, wingThicketLocations[6].m_positionY, wingThicketLocations[6].m_positionZ);
break;
case SAY_PRIESTESS_ALTAR_13:
@@ -477,7 +480,7 @@ public:
_guardEluneGUID = guard->GetGUID();
}
// summon the Voice of Elune
- if (GameObject* altar = me->GetMap()->GetGameObject(_altarGUID))
+ if (GameObject* altar = ObjectAccessor::GetGameObject(*me, _altarGUID))
{
if (Creature* voice = me->SummonCreature(NPC_VOICE_ELUNE, altar->GetPositionX(), altar->GetPositionY(), altar->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 30000))
_voiceEluneGUID = voice->GetGUID();
@@ -485,7 +488,7 @@ public:
break;
case SAY_VOICE_ALTAR_15:
// move near the escort npc and continue dialogue
- if (Creature* priestess = me->GetMap()->GetCreature(_secondPriestessGUID))
+ if (Creature* priestess = ObjectAccessor::GetCreature(*me, _secondPriestessGUID))
{
priestess->AI()->Talk(SAY_PRIESTESS_ALTAR_14);
priestess->GetMotionMaster()->MovePoint(0, wingThicketLocations[7].m_positionX, wingThicketLocations[7].m_positionY, wingThicketLocations[7].m_positionZ);
@@ -493,7 +496,7 @@ public:
break;
case SAY_PRIESTESS_ALTAR_19:
// make the voice of elune leave
- if (Creature* guard = me->GetMap()->GetCreature(_guardEluneGUID))
+ if (Creature* guard = ObjectAccessor::GetCreature(*me, _guardEluneGUID))
{
guard->GetMotionMaster()->MovePoint(0, wingThicketLocations[2].m_positionX, wingThicketLocations[2].m_positionY, wingThicketLocations[2].m_positionZ);
guard->DespawnOrUnsummon(4000);
@@ -501,7 +504,7 @@ public:
break;
case SAY_PRIESTESS_ALTAR_20:
// make the first priestess leave
- if (Creature* priestess = me->GetMap()->GetCreature(_firstPriestessGUID))
+ if (Creature* priestess = ObjectAccessor::GetCreature(*me, _firstPriestessGUID))
{
priestess->GetMotionMaster()->MovePoint(0, wingThicketLocations[0].m_positionX, wingThicketLocations[0].m_positionY, wingThicketLocations[0].m_positionZ);
priestess->DespawnOrUnsummon(4000);
@@ -509,7 +512,7 @@ public:
break;
case SAY_PRIESTESS_ALTAR_21:
// make the second priestess leave
- if (Creature* priestess = me->GetMap()->GetCreature(_secondPriestessGUID))
+ if (Creature* priestess = ObjectAccessor::GetCreature(*me, _secondPriestessGUID))
{
priestess->GetMotionMaster()->MovePoint(0, wingThicketLocations[1].m_positionX, wingThicketLocations[1].m_positionY, wingThicketLocations[1].m_positionZ);
priestess->DespawnOrUnsummon(4000);
@@ -525,7 +528,7 @@ public:
break;
case SAY_RANSHALLA_END_2:
// Turn towards the altar and kneel - quest complete
- if (GameObject* altar = me->GetMap()->GetGameObject(_altarGUID))
+ if (GameObject* altar = ObjectAccessor::GetGameObject(*me, _altarGUID))
{
me->SetFacingToObject(altar);
altar->ResetDoorOrButton();
@@ -548,13 +551,13 @@ public:
case NPC_RANSHALLA:
return me;
case NPC_VOICE_ELUNE:
- return me->GetMap()->GetCreature(_voiceEluneGUID);
+ return ObjectAccessor::GetCreature(*me, _voiceEluneGUID);
case NPC_PRIESTESS_DATA_1:
- return me->GetMap()->GetCreature(_firstPriestessGUID);
+ return ObjectAccessor::GetCreature(*me, _firstPriestessGUID);
case NPC_PRIESTESS_DATA_2:
- return me->GetMap()->GetCreature(_secondPriestessGUID);
+ return ObjectAccessor::GetCreature(*me, _secondPriestessGUID);
default:
- return NULL;
+ return nullptr;
}
}