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

@@ -36,7 +36,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_anetheronAI>(creature);
return GetHyjalAI<boss_anetheronAI>(creature);
}
struct boss_anetheronAI : public hyjal_trashAI
@@ -170,7 +170,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

View File

@@ -93,7 +93,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
@@ -151,7 +151,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_doomfireAI(creature);
return GetHyjalAI<npc_doomfireAI>(creature);
}
struct npc_doomfireAI : public ScriptedAI
@@ -180,7 +180,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
@@ -250,7 +250,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_archimondeAI>(creature);
return GetHyjalAI<boss_archimondeAI>(creature);
}
struct boss_archimondeAI : public BossAI

View File

@@ -37,7 +37,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_azgalorAI>(creature);
return GetHyjalAI<boss_azgalorAI>(creature);
}
struct boss_azgalorAI : public hyjal_trashAI
@@ -177,7 +177,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

View File

@@ -38,7 +38,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_kazrogalAI>(creature);
return GetHyjalAI<boss_kazrogalAI>(creature);
}
struct boss_kazrogalAI : public hyjal_trashAI

View File

@@ -33,7 +33,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

View File

@@ -8,7 +8,9 @@
#define DEF_HYJAL_H
#include "GridNotifiers.h"
#include "CreatureAIImpl.h"
#define HyjalScriptName "instance_hyjal"
#define ERROR_INST_DATA "TSCR: Instance data not set properly for Mount Hyjal. Encounters will be buggy."
uint32 const EncounterCount = 5;
@@ -84,4 +86,10 @@ enum GameobjectIds
GO_ROARING_FLAME = 182592
};
template <class AI, class T>
inline AI* GetHyjalAI(T* obj)
{
return GetInstanceAI<AI>(obj, HyjalScriptName);
}
#endif

View File

@@ -523,7 +523,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_giant_infernalAI>(creature);
return GetHyjalAI<npc_giant_infernalAI>(creature);
}
};
@@ -534,7 +534,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_abominationAI>(creature);
return GetHyjalAI<npc_abominationAI>(creature);
}
struct npc_abominationAI : public hyjal_trashAI
@@ -630,7 +630,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_ghoulAI>(creature);
return GetHyjalAI<npc_ghoulAI>(creature);
}
struct npc_ghoulAI : public hyjal_trashAI
@@ -730,7 +730,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_necromancerAI>(creature);
return GetHyjalAI<npc_necromancerAI>(creature);
}
struct npc_necromancerAI : public hyjal_trashAI
@@ -855,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
@@ -958,7 +958,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
@@ -1045,7 +1045,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
@@ -1132,7 +1132,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
@@ -1250,7 +1250,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_gargoyleAI>(creature);
return GetHyjalAI<npc_gargoyleAI>(creature);
}
struct npc_gargoyleAI : public hyjal_trashAI

View File

@@ -43,7 +43,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_epochAI (creature);
return GetCullingOfStratholmeAI<boss_epochAI>(creature);
}
struct boss_epochAI : public ScriptedAI

View File

@@ -34,7 +34,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_infinite_corruptorAI(creature);
return GetCullingOfStratholmeAI<boss_infinite_corruptorAI>(creature);
}
struct boss_infinite_corruptorAI : public ScriptedAI

View File

@@ -46,7 +46,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_mal_ganisAI (creature);
return GetCullingOfStratholmeAI<boss_mal_ganisAI>(creature);
}
struct boss_mal_ganisAI : public ScriptedAI

View File

@@ -37,7 +37,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_meathookAI (creature);
return GetCullingOfStratholmeAI<boss_meathookAI>(creature);
}
struct boss_meathookAI : public ScriptedAI

View File

@@ -47,7 +47,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_salrammAI (creature);
return GetCullingOfStratholmeAI<boss_salrammAI>(creature);
}
struct boss_salrammAI : public ScriptedAI

View File

@@ -356,7 +356,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_arthasAI(creature);
return GetCullingOfStratholmeAI<npc_arthasAI>(creature);
}
struct npc_arthasAI : public npc_escortAI
@@ -1377,7 +1377,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_crate_helperAI(creature);
return GetCullingOfStratholmeAI<npc_crate_helperAI>(creature);
}
};
@@ -1588,7 +1588,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_cos_stratholme_citizienAI(creature);
return GetCullingOfStratholmeAI<npc_cos_stratholme_citizienAI>(creature);
}
};

View File

@@ -7,6 +7,10 @@
#ifndef DEF_CULLING_OF_STRATHOLME_H
#define DEF_CULLING_OF_STRATHOLME_H
#include "CreatureAIImpl.h"
#define CullingOfStratholmeScriptName "instance_culling_of_stratholme"
enum Data
{
DATA_ARTHAS_EVENT,
@@ -170,4 +174,10 @@ const Position EventPos[] =
{2298.25f, 1500.56f, 128.37f, 4.95f} // malganis final pos
};
template <class AI, class T>
inline AI* GetCullingOfStratholmeAI(T* obj)
{
return GetInstanceAI<AI>(obj, CullingOfStratholmeScriptName);
}
#endif

View File

@@ -46,7 +46,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

View File

@@ -31,7 +31,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

View File

@@ -37,7 +37,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

View File

@@ -183,7 +183,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_thrall_old_hillsbradAI>(creature);
return GetOldHillsbradAI<npc_thrall_old_hillsbradAI>(creature);
}
bool OnGossipHello(Player* player, Creature* creature) override
@@ -850,7 +850,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_tarethaAI>(creature);
return GetOldHillsbradAI<npc_tarethaAI>(creature);
}
bool OnGossipHello(Player* /*player*/, Creature* /*creature*/) override

View File

@@ -5,6 +5,10 @@
#ifndef DEF_OLD_HILLSBRAD_H
#define DEF_OLD_HILLSBRAD_H
#include "CreatureAIImpl.h"
#define OldHillsbradScriptName "instance_old_hillsbrad"
enum DataIds
{
DATA_ESCORT_PROGRESS = 0,
@@ -74,4 +78,10 @@ enum MiscIds
THRALL_POSITIONS_COUNT = 5
};
template <class AI, class T>
inline AI* GetOldHillsbradAI(T* obj)
{
return GetInstanceAI<AI>(obj, OldHillsbradScriptName);
}
#endif

View File

@@ -143,7 +143,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_aeonusAI(creature);
return GetTheBlackMorassAI<boss_aeonusAI>(creature);
}
};

View File

@@ -132,7 +132,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_chrono_lord_dejaAI(creature);
return GetTheBlackMorassAI<boss_chrono_lord_dejaAI>(creature);
}
};

View File

@@ -131,7 +131,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_temporusAI(creature);
return GetTheBlackMorassAI<boss_temporusAI>(creature);
}
};

View File

@@ -80,7 +80,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_medivh_bmAI(creature);
return GetTheBlackMorassAI<npc_medivh_bmAI>(creature);
}
struct npc_medivh_bmAI : public ScriptedAI
@@ -277,7 +277,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_time_riftAI(creature);
return GetTheBlackMorassAI<npc_time_riftAI>(creature);
}
struct npc_time_riftAI : public NullCreatureAI

View File

@@ -5,9 +5,12 @@
#ifndef DEF_THEBLACKMORASS_H
#define DEF_THEBLACKMORASS_H
#include "CreatureAIImpl.h"
#include "PassiveAI.h"
#include "SpellScript.h"
#define TheBlackMorassScriptName "instance_the_black_morass"
enum DataTypes
{
TYPE_CHRONO_LORD_DEJA = 0,
@@ -72,4 +75,10 @@ enum Misc
ACTION_OUTRO = 1
};
template <class AI, class T>
inline AI* GetTheBlackMorassAI(T* obj)
{
return GetInstanceAI<AI>(obj, TheBlackMorassScriptName);
}
#endif