mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-26 23:26:23 +00:00
feat(Core/Instance): Add instance validation for creature scripts (#4596)
This commit is contained in:
@@ -194,7 +194,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_bronjahmAI(creature);
|
||||
return GetForgeOfSoulsAI<boss_bronjahmAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -245,7 +245,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_fos_corrupted_soul_fragmentAI(creature);
|
||||
return GetForgeOfSoulsAI<npc_fos_corrupted_soul_fragmentAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -290,7 +290,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_devourer_of_soulsAI(creature);
|
||||
return GetForgeOfSoulsAI<boss_devourer_of_soulsAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -206,7 +206,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_fos_leaderAI(creature);
|
||||
return GetForgeOfSoulsAI<npc_fos_leaderAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -238,7 +238,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_fos_leader_secondAI(creature);
|
||||
return GetForgeOfSoulsAI<npc_fos_leader_secondAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
#define DEF_FORGE_OF_SOULS_H
|
||||
|
||||
#include "GridNotifiers.h"
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
#define ForgeOfSoulsScriptName "instance_forge_of_souls"
|
||||
|
||||
enum Data
|
||||
{
|
||||
@@ -75,4 +78,10 @@ const outroPosition outroPositions[] =
|
||||
|
||||
const Position outroSpawnPoint = {5618.139f, 2451.873f, 705.854f, 0.0f};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetForgeOfSoulsAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, ForgeOfSoulsScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -162,7 +162,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_falricAI(creature);
|
||||
return GetHallsOfReflectionAI<boss_falricAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -150,7 +150,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_marwynAI(creature);
|
||||
return GetHallsOfReflectionAI<boss_marwynAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -156,7 +156,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_hor_leaderAI(creature);
|
||||
return GetHallsOfReflectionAI<npc_hor_leaderAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_hor_leaderAI : public NullCreatureAI
|
||||
@@ -658,7 +658,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_ghostly_priestAI(creature);
|
||||
return GetHallsOfReflectionAI<npc_ghostly_priestAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_ghostly_priestAI: public ScriptedAI
|
||||
@@ -754,7 +754,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_phantom_mageAI(creature);
|
||||
return GetHallsOfReflectionAI<npc_phantom_mageAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_phantom_mageAI: public ScriptedAI
|
||||
@@ -850,7 +850,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_phantom_hallucinationAI(creature);
|
||||
return GetHallsOfReflectionAI<npc_phantom_hallucinationAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_phantom_hallucinationAI : public npc_phantom_mage::npc_phantom_mageAI
|
||||
@@ -898,7 +898,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_shadowy_mercenaryAI(creature);
|
||||
return GetHallsOfReflectionAI<npc_shadowy_mercenaryAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_shadowy_mercenaryAI: public ScriptedAI
|
||||
@@ -993,7 +993,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_spectral_footmanAI(creature);
|
||||
return GetHallsOfReflectionAI<npc_spectral_footmanAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_spectral_footmanAI: public ScriptedAI
|
||||
@@ -1076,7 +1076,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_tortured_riflemanAI(creature);
|
||||
return GetHallsOfReflectionAI<npc_tortured_riflemanAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_tortured_riflemanAI : public ScriptedAI
|
||||
@@ -1230,7 +1230,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_frostsworn_generalAI(creature);
|
||||
return GetHallsOfReflectionAI<boss_frostsworn_generalAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1293,7 +1293,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_hor_spiritual_reflectionAI(creature);
|
||||
return GetHallsOfReflectionAI<npc_hor_spiritual_reflectionAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1349,7 +1349,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_hor_lich_kingAI(creature);
|
||||
return GetHallsOfReflectionAI<npc_hor_lich_kingAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_hor_lich_kingAI : public NullCreatureAI
|
||||
@@ -1624,7 +1624,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_hor_leader_secondAI(creature);
|
||||
return GetHallsOfReflectionAI<npc_hor_leader_secondAI>(creature);
|
||||
}
|
||||
|
||||
struct npc_hor_leader_secondAI : public NullCreatureAI
|
||||
@@ -1838,7 +1838,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_hor_raging_ghoulAI(creature);
|
||||
return GetHallsOfReflectionAI<npc_hor_raging_ghoulAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1907,7 +1907,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_hor_risen_witch_doctorAI(creature);
|
||||
return GetHallsOfReflectionAI<npc_hor_risen_witch_doctorAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1972,7 +1972,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_hor_lumbering_abominationAI(creature);
|
||||
return GetHallsOfReflectionAI<npc_hor_lumbering_abominationAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef DEF_HALLS_OF_REFLECTION_H
|
||||
#define DEF_HALLS_OF_REFLECTION_H
|
||||
|
||||
#include "CreatureAIImpl.h"
|
||||
#include "PassiveAI.h"
|
||||
#include "Player.h"
|
||||
#include "ScriptedCreature.h"
|
||||
@@ -14,6 +15,8 @@
|
||||
#include "SpellAuras.h"
|
||||
#include "SpellScript.h"
|
||||
|
||||
#define HallsOfReflectionScriptName "instance_halls_of_reflection"
|
||||
|
||||
enum Data
|
||||
{
|
||||
DATA_INTRO,
|
||||
@@ -333,4 +336,10 @@ const Position StairsPos[2][3] =
|
||||
}
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetHallsOfReflectionAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, HallsOfReflectionScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -286,7 +286,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_garfrostAI(creature);
|
||||
return GetPitOfSaronAI<boss_garfrostAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -267,7 +267,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_ickAI(creature);
|
||||
return GetPitOfSaronAI<boss_ickAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -445,7 +445,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_krickAI(creature);
|
||||
return GetPitOfSaronAI<boss_krickAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -222,7 +222,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new boss_tyrannusAI(creature);
|
||||
return GetPitOfSaronAI<boss_tyrannusAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -364,7 +364,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_pos_leaderAI(creature);
|
||||
return GetPitOfSaronAI<npc_pos_leaderAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -479,7 +479,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_pos_deathwhisper_necrolyteAI(creature);
|
||||
return GetPitOfSaronAI<npc_pos_deathwhisper_necrolyteAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -560,7 +560,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_pos_after_first_bossAI(creature);
|
||||
return GetPitOfSaronAI<npc_pos_after_first_bossAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -809,7 +809,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_pos_tyrannus_eventsAI(creature);
|
||||
return GetPitOfSaronAI<npc_pos_tyrannus_eventsAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -846,7 +846,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_pos_icicle_triggerAI(creature);
|
||||
return GetPitOfSaronAI<npc_pos_icicle_triggerAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -897,7 +897,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_pos_collapsing_icicleAI(creature);
|
||||
return GetPitOfSaronAI<npc_pos_collapsing_icicleAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1084,7 +1084,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_pos_martin_or_gorkun_secondAI(creature);
|
||||
return GetPitOfSaronAI<npc_pos_martin_or_gorkun_secondAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1125,7 +1125,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_pos_freed_slaveAI(creature);
|
||||
return GetPitOfSaronAI<npc_pos_freed_slaveAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1285,7 +1285,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_pos_leader_secondAI(creature);
|
||||
return GetPitOfSaronAI<npc_pos_leader_secondAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1327,7 +1327,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_frostbite_invisible_stalkerAI(creature);
|
||||
return GetPitOfSaronAI<npc_frostbite_invisible_stalkerAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
#include "Chat.h"
|
||||
#include "CreatureAIImpl.h"
|
||||
|
||||
#define PitOfSaronScriptName "instance_pit_of_saron"
|
||||
|
||||
enum DataTypes
|
||||
{
|
||||
DATA_GARFROST,
|
||||
@@ -312,4 +314,10 @@ enum eTSTexts
|
||||
SAY_GENERAL_ALLIANCE_TRASH = 69,
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
inline AI* GetPitOfSaronAI(T* obj)
|
||||
{
|
||||
return GetInstanceAI<AI>(obj, PitOfSaronScriptName);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user