mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-25 14:46:24 +00:00
feat(Core/Instance): Add instance validation for creature scripts (#4596)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -166,7 +166,7 @@ public:
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetInstanceAI<boss_saviana_ragefireAI>(creature);
|
||||
return GetRubySanctumAI<boss_saviana_ragefireAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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_
|
||||
|
||||
Reference in New Issue
Block a user