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

@@ -231,7 +231,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_sartharionAI (pCreature);
return GetObsidianSanctumAI<boss_sartharionAI> (pCreature);
}
struct boss_sartharionAI : public BossAI
@@ -1009,7 +1009,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_sartharion_tenebronAI (pCreature);
return GetObsidianSanctumAI<boss_sartharion_tenebronAI>(pCreature);
}
struct boss_sartharion_tenebronAI : public boss_sartharion_dragonAI
@@ -1192,7 +1192,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_sartharion_shadronAI (pCreature);
return GetObsidianSanctumAI<boss_sartharion_shadronAI>(pCreature);
}
struct boss_sartharion_shadronAI : public boss_sartharion_dragonAI
@@ -1317,7 +1317,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new boss_sartharion_vesperonAI (pCreature);
return GetObsidianSanctumAI<boss_sartharion_vesperonAI>(pCreature);
}
struct boss_sartharion_vesperonAI : public boss_sartharion_dragonAI
@@ -1439,7 +1439,7 @@ public:
CreatureAI* GetAI(Creature* pCreature) const override
{
return new npc_twilight_summonAI (pCreature);
return GetObsidianSanctumAI<npc_twilight_summonAI>(pCreature);
}
struct npc_twilight_summonAI : public ScriptedAI

View File

@@ -7,6 +7,10 @@
#ifndef DEF_OBSIDIAN_SANCTUM_H
#define DEF_OBSIDIAN_SANCTUM_H
#include "CreatureAIImpl.h"
#define ObsidianSanctumScriptName "instance_obsidian_sanctum"
enum Data : uint32
{
// Encounters
@@ -42,4 +46,11 @@ enum OSActions
ACTION_CLEAR_PORTAL = -1,
ACTION_ADD_PORTAL = -2,
};
template <class AI, class T>
inline AI* GetObsidianSanctumAI(T* obj)
{
return GetInstanceAI<AI>(obj, ObsidianSanctumScriptName);
}
#endif

View File

@@ -254,7 +254,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_baltharus_the_warbornAI>(creature);
return GetRubySanctumAI<boss_baltharus_the_warbornAI>(creature);
}
};
@@ -313,7 +313,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_baltharus_the_warborn_cloneAI>(creature);
return GetRubySanctumAI<npc_baltharus_the_warborn_cloneAI>(creature);
}
};
@@ -441,7 +441,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_xerestraszaAI>(creature);
return GetRubySanctumAI<npc_xerestraszaAI>(creature);
}
};

View File

@@ -175,7 +175,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_general_zarithrianAI>(creature);
return GetRubySanctumAI<boss_general_zarithrianAI>(creature);
}
};
@@ -275,7 +275,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_onyx_flamecallerAI>(creature);
return GetRubySanctumAI<npc_onyx_flamecallerAI>(creature);
}
};

View File

@@ -411,7 +411,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_halionAI>(creature);
return GetRubySanctumAI<boss_halionAI>(creature);
}
};
@@ -564,7 +564,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_twilight_halionAI>(creature);
return GetRubySanctumAI<boss_twilight_halionAI>(creature);
}
};
@@ -732,7 +732,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_halion_controllerAI>(creature);
return GetRubySanctumAI<npc_halion_controllerAI>(creature);
}
};
@@ -784,7 +784,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_orb_carrierAI>(creature);
return GetRubySanctumAI<npc_orb_carrierAI>(creature);
}
};
@@ -1461,7 +1461,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_living_infernoAI>(creature);
return GetRubySanctumAI<npc_living_infernoAI>(creature);
}
};

View File

@@ -166,7 +166,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_saviana_ragefireAI>(creature);
return GetRubySanctumAI<boss_saviana_ragefireAI>(creature);
}
};

View File

@@ -6,6 +6,7 @@
#define RUBY_SANCTUM_H_
#include "Creature.h"
#include "CreatureAIImpl.h"
#include "GameObjectAI.h"
#include "Map.h"
#include "Opcodes.h"
@@ -13,6 +14,8 @@
#include "Player.h"
#include "SpellScript.h"
#define RubySanctumScriptName "instance_ruby_sanctum"
enum DataTypes
{
// Encounter States/Boss GUIDs
@@ -97,4 +100,10 @@ enum InstanceSpell
SPELL_RALLY = 75416
};
template <class AI, class T>
inline AI* GetRubySanctumAI(T* obj)
{
return GetInstanceAI<AI>(obj, RubySanctumScriptName);
}
#endif // RUBY_SANCTUM_H_