feat(Core/Instance): Add instance validation for creature scripts (#4596)

This commit is contained in:
Kitzunu
2021-04-05 15:34:26 +02:00
committed by GitHub
parent 60f865fce6
commit f9d708b450
371 changed files with 1315 additions and 767 deletions

View File

@@ -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);
}
};

View File

@@ -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);
}
};

View File

@@ -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);
}
};

View File

@@ -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

View File

@@ -162,7 +162,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_falricAI(creature);
return GetHallsOfReflectionAI<boss_falricAI>(creature);
}
};

View File

@@ -150,7 +150,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_marwynAI(creature);
return GetHallsOfReflectionAI<boss_marwynAI>(creature);
}
};

View File

@@ -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);
}
};

View File

@@ -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

View File

@@ -286,7 +286,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_garfrostAI(creature);
return GetPitOfSaronAI<boss_garfrostAI>(creature);
}
};

View File

@@ -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);
}
};

View File

@@ -222,7 +222,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_tyrannusAI(creature);
return GetPitOfSaronAI<boss_tyrannusAI>(creature);
}
};

View File

@@ -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);
}
};

View File

@@ -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