diff options
| author | ariel- <ariel-@users.noreply.github.com> | 2017-06-19 23:20:06 -0300 |
|---|---|---|
| committer | ariel- <ariel-@users.noreply.github.com> | 2017-06-19 23:20:06 -0300 |
| commit | 85a7d5ce9ac68b30da2277cc91d4b70358f1880d (patch) | |
| tree | df3d2084ee2e35008903c03178039b9c986e2d08 /src/server/scripts/Kalimdor | |
| parent | 052fc24315ace866ea1cf610e85df119b68100c9 (diff) | |
Core: ported headers cleanup from master branch
Diffstat (limited to 'src/server/scripts/Kalimdor')
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; } } |
