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

@@ -53,4 +53,12 @@ struct AISpellInfoType
AISpellInfoType* GetAISpellInfo(uint32 i);
bool InstanceHasScript(WorldObject const* obj, char const* scriptName);
template<class AI, class T>
inline AI* GetInstanceAI(T* obj, char const* scriptName)
{
return InstanceHasScript(obj, scriptName) ? new AI(obj) : nullptr;
}
#endif

View File

@@ -5288,7 +5288,7 @@ void ObjectMgr::ValidateSpellScripts()
bool valid = true;
if (!spellScript && !auraScript)
{
sLog->outError("TSCR: Functions GetSpellScript() and GetAuraScript() of script `%s` do not return objects - script skipped", GetScriptName(sitr->second->second));
sLog->outError("TSCR: Functions GetSpellScript() and GetAuraScript() of script `%s` do not return objects - script skipped", GetScriptName(sitr->second->second).c_str());
valid = false;
}
if (spellScript)
@@ -8849,6 +8849,12 @@ void ObjectMgr::LoadScriptNames()
sLog->outString();
}
std::string const& ObjectMgr::GetScriptName(uint32 id) const
{
static std::string const empty = "";
return (id < _scriptNamesStore.size()) ? _scriptNamesStore[id] : empty;
}
uint32 ObjectMgr::GetScriptId(const char* name)
{
// use binary search to find the script name in the sorted vector

View File

@@ -1299,7 +1299,7 @@ public:
void LoadScriptNames();
ScriptNameContainer& GetScriptNames() { return _scriptNamesStore; }
[[nodiscard]] const char* GetScriptName(uint32 id) const { return id < _scriptNamesStore.size() ? _scriptNamesStore[id].c_str() : ""; }
[[nodiscard]] std::string const& GetScriptName(uint32 id) const;
uint32 GetScriptId(const char* name);
[[nodiscard]] SpellClickInfoMapBounds GetSpellClickInfoMapBounds(uint32 creature_id) const

View File

@@ -468,3 +468,13 @@ std::string InstanceScript::GetBossStateName(uint8 state)
return "INVALID";
}
}
bool InstanceHasScript(WorldObject const* obj, char const* scriptName)
{
if (InstanceMap* instance = obj->GetMap()->ToInstanceMap())
{
return instance->GetScriptName() == scriptName;
}
return false;
}

View File

@@ -231,25 +231,4 @@ private:
uint32 completedEncounters; // completed encounter mask, bit indexes are DungeonEncounter.dbc boss numbers, used for packets
};
template<class AI, class T>
AI* GetInstanceAI(T* obj, char const* scriptName)
{
if (InstanceMap* instance = obj->GetMap()->ToInstanceMap())
if (instance->GetInstanceScript())
if (instance->GetScriptId() == sObjectMgr->GetScriptId(scriptName))
return new AI(obj);
return nullptr;
};
template<class AI, class T>
AI* GetInstanceAI(T* obj)
{
if (InstanceMap* instance = obj->GetMap()->ToInstanceMap())
if (instance->GetInstanceScript())
return new AI(obj);
return nullptr;
};
#endif

View File

@@ -2592,7 +2592,7 @@ template void Map::RemoveFromMap(DynamicObject*, bool);
InstanceMap::InstanceMap(uint32 id, uint32 InstanceId, uint8 SpawnMode, Map* _parent)
: Map(id, InstanceId, SpawnMode, _parent),
m_resetAfterUnload(false), m_unloadWhenEmpty(false),
instance_script(nullptr), i_script_id(0)
instance_data(nullptr), i_script_id(0)
{
//lets initialize visibility distance for dungeons
InstanceMap::InitVisibilityDistance();
@@ -2610,9 +2610,8 @@ InstanceMap::InstanceMap(uint32 id, uint32 InstanceId, uint8 SpawnMode, Map* _pa
InstanceMap::~InstanceMap()
{
delete instance_script;
instance_script = nullptr;
sInstanceSaveMgr->DeleteInstanceSaveIfNeeded(GetInstanceId(), true);
delete instance_data;
instance_data = nullptr;
}
void InstanceMap::InitVisibilityDistance()
@@ -2768,7 +2767,7 @@ bool InstanceMap::AddPlayerToMap(Player* player)
{
WorldPacket data(SMSG_INSTANCE_LOCK_WARNING_QUERY, 9);
data << uint32(60000);
data << uint32(instance_script ? instance_script->GetCompletedEncounterMask() : 0);
data << uint32(instance_data ? instance_data->GetCompletedEncounterMask() : 0);
data << uint8(0);
player->GetSession()->SendPacket(&data);
player->SetPendingBind(mapSave->GetInstanceId(), 60000);
@@ -2783,8 +2782,8 @@ bool InstanceMap::AddPlayerToMap(Player* player)
// this will acquire the same mutex so it cannot be in the previous block
Map::AddPlayerToMap(player);
if (instance_script)
instance_script->OnPlayerEnter(player);
if (instance_data)
instance_data->OnPlayerEnter(player);
return true;
}
@@ -2794,8 +2793,8 @@ void InstanceMap::Update(const uint32 t_diff, const uint32 s_diff, bool /*thread
Map::Update(t_diff, s_diff);
if (t_diff)
if (instance_script)
instance_script->Update(t_diff);
if (instance_data)
instance_data->Update(t_diff);
}
void InstanceMap::RemovePlayerFromMap(Player* player, bool remove)
@@ -2815,12 +2814,12 @@ void InstanceMap::AfterPlayerUnlinkFromMap()
void InstanceMap::CreateInstanceScript(bool load, std::string data, uint32 completedEncounterMask)
{
if (instance_script != nullptr)
if (instance_data != nullptr)
return;
#ifdef ELUNA
bool isElunaAI = false;
instance_script = sEluna->GetInstanceData(this);
if (instance_script)
instance_data = sEluna->GetInstanceData(this);
if (instance_data)
isElunaAI = true;
// if Eluna AI was fetched succesfully we should not call CreateInstanceData nor set the unused scriptID
@@ -2831,13 +2830,13 @@ void InstanceMap::CreateInstanceScript(bool load, std::string data, uint32 compl
if (mInstance)
{
i_script_id = mInstance->ScriptId;
instance_script = sScriptMgr->CreateInstanceScript(this);
instance_data = sScriptMgr->CreateInstanceScript(this);
}
#ifdef ELUNA
}
#endif
if (!instance_script)
if (!instance_data)
return;
#ifdef ELUNA
@@ -2845,13 +2844,13 @@ void InstanceMap::CreateInstanceScript(bool load, std::string data, uint32 compl
// initialize should then be called only if load is false
if (!isElunaAI || !load)
#endif
instance_script->Initialize();
instance_data->Initialize();
if (load)
{
instance_script->SetCompletedEncountersMask(completedEncounterMask, false);
instance_data->SetCompletedEncountersMask(completedEncounterMask, false);
if (data != "")
instance_script->Load(data.c_str());
instance_data->Load(data.c_str());
}
}
@@ -2900,6 +2899,11 @@ bool InstanceMap::Reset(uint8 method, std::list<uint32>* globalResetSkipList)
return m_mapRefManager.isEmpty();
}
std::string const& InstanceMap::GetScriptName() const
{
return sObjectMgr->GetScriptName(i_script_id);
}
void InstanceMap::PermBindAllPlayers()
{
if (!IsDungeon())

View File

@@ -685,8 +685,10 @@ public:
void Update(const uint32, const uint32, bool thread = true) override;
void CreateInstanceScript(bool load, std::string data, uint32 completedEncounterMask);
bool Reset(uint8 method, std::list<uint32>* globalSkipList = nullptr);
uint32 GetScriptId() { return i_script_id; }
InstanceScript* GetInstanceScript() { return instance_script; }
[[nodiscard]] uint32 GetScriptId() const { return i_script_id; }
[[nodiscard]] std::string const& GetScriptName() const;
[[nodiscard]] InstanceScript* GetInstanceScript() { return instance_data; }
[[nodiscard]] InstanceScript const* GetInstanceScript() const { return instance_data; }
void PermBindAllPlayers();
void UnloadAll() override;
bool CanEnter(Player* player, bool loginCheck = false) override;
@@ -699,7 +701,7 @@ public:
private:
bool m_resetAfterUnload;
bool m_unloadWhenEmpty;
InstanceScript* instance_script;
InstanceScript* instance_data;
uint32 i_script_id;
};

View File

@@ -134,7 +134,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_grimstoneAI>(creature);
return GetBlackrockDepthsAI<npc_grimstoneAI>(creature);
}
struct npc_grimstoneAI : public npc_escortAI
@@ -331,7 +331,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_phalanxAI(creature);
return GetBlackrockDepthsAI<npc_phalanxAI>(creature);
}
struct npc_phalanxAI : public ScriptedAI
@@ -500,7 +500,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_rocknotAI>(creature);
return GetBlackrockDepthsAI<npc_rocknotAI>(creature);
}
struct npc_rocknotAI : public npc_escortAI

View File

@@ -7,6 +7,9 @@
#ifndef DEF_BRD_H
#define DEF_BRD_H
#include "CreatureAIImpl.h"
#define BRDScriptName "instance_blackrock_depths"
enum FactionIds
{
FACTION_NEUTRAL = 734,
@@ -56,4 +59,10 @@ enum DataTypes
DATA_OPEN_COFFER_DOORS = 30
};
template <class AI, class T>
inline AI* GetBlackrockDepthsAI(T* obj)
{
return GetInstanceAI<AI>(obj, BRDScriptName);
}
#endif

View File

@@ -47,7 +47,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_ambassador_flamelashAI>(creature);
return GetBlackrockDepthsAI<boss_ambassador_flamelashAI>(creature);
}
struct boss_ambassador_flamelashAI : public BossAI
@@ -208,7 +208,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_burning_spiritAI>(creature);
return GetBlackrockDepthsAI<npc_burning_spiritAI>(creature);
}
struct npc_burning_spiritAI : public CreatureAI

View File

@@ -4,6 +4,7 @@
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
*/
#include "blackrock_depths.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
@@ -23,7 +24,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_anubshiahAI(creature);
return GetBlackrockDepthsAI<boss_anubshiahAI>(creature);
}
struct boss_anubshiahAI : public ScriptedAI

View File

@@ -27,7 +27,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_draganthaurissanAI>(creature);
return GetBlackrockDepthsAI<boss_draganthaurissanAI>(creature);
}
struct boss_draganthaurissanAI : public ScriptedAI

View File

@@ -4,6 +4,7 @@
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
*/
#include "blackrock_depths.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
@@ -21,7 +22,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_general_angerforgeAI(creature);
return GetBlackrockDepthsAI<boss_general_angerforgeAI>(creature);
}
struct boss_general_angerforgeAI : public ScriptedAI

View File

@@ -4,6 +4,7 @@
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
*/
#include "blackrock_depths.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
@@ -20,7 +21,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_gorosh_the_dervishAI(creature);
return GetBlackrockDepthsAI<boss_gorosh_the_dervishAI>(creature);
}
struct boss_gorosh_the_dervishAI : public ScriptedAI

View File

@@ -4,6 +4,7 @@
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
*/
#include "blackrock_depths.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
@@ -21,7 +22,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_grizzleAI(creature);
return GetBlackrockDepthsAI<boss_grizzleAI>(creature);
}
struct boss_grizzleAI : public ScriptedAI

View File

@@ -4,6 +4,7 @@
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
*/
#include "blackrock_depths.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
@@ -22,7 +23,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_high_interrogator_gerstahnAI(creature);
return GetBlackrockDepthsAI<boss_high_interrogator_gerstahnAI>(creature);
}
struct boss_high_interrogator_gerstahnAI : public ScriptedAI

View File

@@ -4,6 +4,7 @@
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
*/
#include "blackrock_depths.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
@@ -13,11 +14,6 @@ enum Spells
SPELL_WARSTOMP = 24375
};
enum Misc
{
DATA_THRONE_DOOR = 24 // not id or guid of doors but number of enum in blackrock_depths.h
};
class boss_magmus : public CreatureScript
{
public:
@@ -25,7 +21,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_magmusAI(creature);
return GetBlackrockDepthsAI<boss_magmusAI>(creature);
}
struct boss_magmusAI : public ScriptedAI

View File

@@ -4,6 +4,7 @@
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
*/
#include "blackrock_depths.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
@@ -24,7 +25,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_moira_bronzebeardAI(creature);
return GetBlackrockDepthsAI<boss_moira_bronzebeardAI>(creature);
}
struct boss_moira_bronzebeardAI : public ScriptedAI

View File

@@ -126,7 +126,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_doomrelAI>(creature);
return GetBlackrockDepthsAI<boss_doomrelAI>(creature);
}
struct boss_doomrelAI : public ScriptedAI

View File

@@ -9,6 +9,8 @@
#ifndef DEF_BLACKROCK_SPIRE_H
#define DEF_BLACKROCK_SPIRE_H
#include "CreatureAIImpl.h"
uint32 const EncounterCount = 23;
#define BRSScriptName "instance_blackrock_spire"
@@ -115,4 +117,10 @@ enum npcspells
SPELL_FINKLE_IS_EINHORN = 16710
};
template <class AI, class T>
inline AI* GetBlackrockSpireAI(T* obj)
{
return GetInstanceAI<AI>(obj, BRSScriptName);
}
#endif

View File

@@ -120,7 +120,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_drakkisathAI(creature);
return GetBlackrockSpireAI<boss_drakkisathAI>(creature);
}
};

View File

@@ -91,7 +91,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_gizrul_the_slavenerAI(creature);
return GetBlackrockSpireAI<boss_gizrul_the_slavenerAI>(creature);
}
};

View File

@@ -157,7 +157,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_gythAI>(creature);
return GetBlackrockSpireAI<boss_gythAI>(creature);
}
};

View File

@@ -90,7 +90,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_halyconAI(creature);
return GetBlackrockSpireAI<boss_halyconAI>(creature);
}
};

View File

@@ -27,7 +27,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_highlordomokkAI(creature);
return GetBlackrockSpireAI<boss_highlordomokkAI>(creature);
}
struct boss_highlordomokkAI : public BossAI

View File

@@ -116,7 +116,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_lord_valthalakAI>(creature);
return GetBlackrockSpireAI<boss_lord_valthalakAI>(creature);
}
};

View File

@@ -40,7 +40,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_overlordwyrmthalakAI(creature);
return GetBlackrockSpireAI<boss_overlordwyrmthalakAI>(creature);
}
struct boss_overlordwyrmthalakAI : public BossAI

View File

@@ -295,7 +295,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_pyroguard_emberseerAI>(creature);
return GetBlackrockSpireAI<boss_pyroguard_emberseerAI>(creature);
}
};
@@ -416,7 +416,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_blackhand_incarceratorAI(creature);
return GetBlackrockSpireAI<npc_blackhand_incarceratorAI>(creature);
}
};

View File

@@ -78,7 +78,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_quatermasterzigrisAI(creature);
return GetBlackrockSpireAI<boss_quatermasterzigrisAI>(creature);
}
};

View File

@@ -471,7 +471,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_rend_blackhandAI>(creature);
return GetBlackrockSpireAI<boss_rend_blackhandAI>(creature);
}
};

View File

@@ -29,7 +29,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_shadowvoshAI(creature);
return GetBlackrockSpireAI<boss_shadowvoshAI>(creature);
}
struct boss_shadowvoshAI : public BossAI

View File

@@ -29,7 +29,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_thebeastAI(creature);
return GetBlackrockSpireAI<boss_thebeastAI>(creature);
}
struct boss_thebeastAI : public BossAI

View File

@@ -94,7 +94,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_urok_doomhowlAI(creature);
return GetBlackrockSpireAI<boss_urok_doomhowlAI>(creature);
}
};

View File

@@ -104,7 +104,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_warmastervooneAI(creature);
return GetBlackrockSpireAI<boss_warmastervooneAI>(creature);
}
};

View File

@@ -80,4 +80,10 @@ enum BWLMisc
SAY_NEFARIAN_VAEL_INTRO = 100003, // latest id in broadcast_text atm
};
template <class AI, class T>
inline AI* GetBlackwingLairAI(T* obj)
{
return GetInstanceAI<AI>(obj, BWLScriptName);
}
#endif

View File

@@ -120,7 +120,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_broodlordAI>(creature);
return GetBlackwingLairAI<boss_broodlordAI>(creature);
}
};

View File

@@ -281,7 +281,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_chromaggusAI>(creature);
return GetBlackwingLairAI<boss_chromaggusAI>(creature);
}
};
@@ -319,7 +319,7 @@ class go_chromaggus_lever : public GameObjectScript
GameObjectAI* GetAI(GameObject* go) const override
{
return GetInstanceAI<go_chromaggus_leverAI>(go);
return GetBlackwingLairAI<go_chromaggus_leverAI>(go);
}
};

View File

@@ -78,7 +78,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_ebonrocAI>(creature);
return GetBlackwingLairAI<boss_ebonrocAI>(creature);
}
};

View File

@@ -80,7 +80,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_firemawAI>(creature);
return GetBlackwingLairAI<boss_firemawAI>(creature);
}
};

View File

@@ -86,7 +86,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_flamegorAI>(creature);
return GetBlackwingLairAI<boss_flamegorAI>(creature);
}
};

View File

@@ -387,7 +387,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_victor_nefariusAI>(creature);
return GetBlackwingLairAI<boss_victor_nefariusAI>(creature);
}
};
@@ -595,7 +595,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_nefarianAI>(creature);
return GetBlackwingLairAI<boss_nefarianAI>(creature);
}
};

View File

@@ -145,7 +145,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_razorgoreAI>(creature);
return GetBlackwingLairAI<boss_razorgoreAI>(creature);
}
};

View File

@@ -267,7 +267,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_vaelAI>(creature);
return GetBlackwingLairAI<boss_vaelAI>(creature);
}
};

View File

@@ -103,7 +103,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_baron_geddonAI(creature);
return GetMoltenCoreAI<boss_baron_geddonAI>(creature);
}
};

View File

@@ -85,7 +85,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_garrAI(creature);
return GetMoltenCoreAI<boss_garrAI>(creature);
}
};
@@ -137,7 +137,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_fireswornAI(creature);
return GetMoltenCoreAI<npc_fireswornAI>(creature);
}
};

View File

@@ -88,7 +88,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_gehennasAI(creature);
return GetMoltenCoreAI<boss_gehennasAI>(creature);
}
};

View File

@@ -117,7 +117,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_golemaggAI(creature);
return GetMoltenCoreAI<boss_golemaggAI>(creature);
}
};
@@ -178,7 +178,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_core_ragerAI>(creature);
return GetMoltenCoreAI<npc_core_ragerAI>(creature);
}
};

View File

@@ -86,7 +86,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_lucifronAI(creature);
return GetMoltenCoreAI<boss_lucifronAI>(creature);
}
};

View File

@@ -105,7 +105,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_magmadarAI(creature);
return GetMoltenCoreAI<boss_magmadarAI>(creature);
}
};
@@ -239,7 +239,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_magmadar_core_houndAI(creature);
return GetMoltenCoreAI<npc_magmadar_core_houndAI>(creature);
}
};

View File

@@ -195,7 +195,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_majordomoAI>(creature);
return GetMoltenCoreAI<boss_majordomoAI>(creature);
}
};

View File

@@ -291,7 +291,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_ragnarosAI>(creature);
return GetMoltenCoreAI<boss_ragnarosAI>(creature);
}
};
@@ -323,7 +323,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_son_of_flameAI>(creature);
return GetMoltenCoreAI<npc_son_of_flameAI>(creature);
}
};

View File

@@ -101,7 +101,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_shazzrahAI(creature);
return GetMoltenCoreAI<boss_shazzrahAI>(creature);
}
};

View File

@@ -117,7 +117,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_sulfuronAI(creature);
return GetMoltenCoreAI<boss_sulfuronAI>(creature);
}
};
@@ -193,7 +193,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_flamewaker_priestAI(creature);
return GetMoltenCoreAI<npc_flamewaker_priestAI>(creature);
}
};

View File

@@ -9,6 +9,10 @@
#ifndef DEF_MOLTEN_CORE_H
#define DEF_MOLTEN_CORE_H
#include "CreatureAIImpl.h"
#define MCScriptName "instance_molten_core"
enum Encounters
{
BOSS_LUCIFRON = 0,
@@ -68,4 +72,10 @@ enum Data
DATA_RAGNAROS_ADDS = 0,
};
template <class AI, class T>
inline AI* GetMoltenCoreAI(T* obj)
{
return GetInstanceAI<AI>(obj, MCScriptName);
}
#endif

View File

@@ -90,6 +90,7 @@ set(scripts_STAT_SRCS
${AC_SCRIPTS_DIR}/EasternKingdoms/zone_wetlands.cpp
${AC_SCRIPTS_DIR}/EasternKingdoms/zone_arathi_highlands.cpp
${AC_SCRIPTS_DIR}/EasternKingdoms/Gnomeregan/instance_gnomeregan.cpp
${AC_SCRIPTS_DIR}/EasternKingdoms/Gnomeregan/gnomeregan.h
${AC_SCRIPTS_DIR}/EasternKingdoms/zone_redridge_mountains.cpp
${AC_SCRIPTS_DIR}/EasternKingdoms/zone_ironforge.cpp
${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletEnclave/chapter2.cpp
@@ -125,6 +126,7 @@ set(scripts_STAT_SRCS
${AC_SCRIPTS_DIR}/EasternKingdoms/Deadmines/deadmines.h
${AC_SCRIPTS_DIR}/EasternKingdoms/zone_duskwood.cpp
${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp
${AC_SCRIPTS_DIR}/EasternKingdoms/ScarletMonastery/scarletmonastery.h
${AC_SCRIPTS_DIR}/EasternKingdoms/zone_undercity.cpp
${AC_SCRIPTS_DIR}/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
${AC_SCRIPTS_DIR}/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h

View File

@@ -2,6 +2,7 @@
* Originally written by Xinef - Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
*/
#include "deadmines.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
@@ -33,7 +34,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_mr_smiteAI>(creature);
return GetDeadminesAI<boss_mr_smiteAI>(creature);
}
struct boss_mr_smiteAI : public ScriptedAI

View File

@@ -5,6 +5,10 @@
#ifndef DEF_DEADMINES_H
#define DEF_DEADMINES_H
#include "CreatureAIImpl.h"
#define DeadminesScriptName "instance_deadmines"
enum DataTypes
{
TYPE_RHAHK_ZOR = 0,
@@ -18,4 +22,10 @@ enum GameObjects
GO_IRON_CLAD_DOOR = 16397
};
template <class AI, class T>
inline AI* GetDeadminesAI(T* obj)
{
return GetInstanceAI<AI>(obj, DeadminesScriptName);
}
#endif

View File

@@ -0,0 +1,18 @@
/*
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
*/
#ifndef DEF_GNOMEREGAN_H
#define DEF_GNOMEREGAN_H
#include "CreatureAIImpl.h"
#define GnomereganScriptName "instance_gnomeregan"
template <class AI, class T>
inline AI* GetGnomereganAI(T* obj)
{
return GetInstanceAI<AI>(obj, GnomereganScriptName);
}
#endif

View File

@@ -2,6 +2,7 @@
* Originally written by Xinef - Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
*/
#include "gnomeregan.h"
#include "InstanceScript.h"
#include "PassiveAI.h"
#include "Player.h"
@@ -38,7 +39,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_kernobeeAI(creature);
return GetGnomereganAI<npc_kernobeeAI>(creature);
}
bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest) override

View File

@@ -152,7 +152,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_curatorAI>(creature);
return GetKarazhanAI<boss_curatorAI>(creature);
}
};

View File

@@ -104,7 +104,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_maiden_of_virtueAI>(creature);
return GetKarazhanAI<boss_maiden_of_virtueAI>(creature);
}
};

View File

@@ -186,7 +186,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_midnightAI>(creature);
return GetKarazhanAI<boss_midnightAI>(creature);
}
};
@@ -299,7 +299,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_attumenAI>(creature);
return GetKarazhanAI<boss_attumenAI>(creature);
}
};
@@ -404,7 +404,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_attumen_midnightAI>(creature);
return GetKarazhanAI<boss_attumen_midnightAI>(creature);
}
};

View File

@@ -241,7 +241,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_moroesAI>(creature);
return GetKarazhanAI<boss_moroesAI>(creature);
}
};

View File

@@ -59,7 +59,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_netherspiteAI>(creature);
return GetKarazhanAI<boss_netherspiteAI>(creature);
}
struct boss_netherspiteAI : public ScriptedAI

View File

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

View File

@@ -155,7 +155,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_malchezaarAI>(creature);
return GetKarazhanAI<boss_malchezaarAI>(creature);
}
struct boss_malchezaarAI : public ScriptedAI
@@ -448,7 +448,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<prince_axesAI>(creature);
return GetKarazhanAI<prince_axesAI>(creature);
}
struct prince_axesAI : public ScriptedAI

View File

@@ -155,7 +155,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_servant_quartersAI>(creature);
return GetKarazhanAI<boss_servant_quartersAI>(creature);
}
};

View File

@@ -546,7 +546,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_aranAI>(creature);
return GetKarazhanAI<boss_aranAI>(creature);
}
};

View File

@@ -58,7 +58,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_kilrekAI>(creature);
return GetKarazhanAI<npc_kilrekAI>(creature);
}
struct npc_kilrekAI : public ScriptedAI
@@ -123,7 +123,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_demon_chainAI(creature);
return GetKarazhanAI<npc_demon_chainAI>(creature);
}
struct npc_demon_chainAI : public ScriptedAI
@@ -160,7 +160,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_fiendish_portalAI(creature);
return GetKarazhanAI<npc_fiendish_portalAI>(creature);
}
struct npc_fiendish_portalAI : public PassiveAI
@@ -194,7 +194,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_fiendish_impAI(creature);
return GetKarazhanAI<npc_fiendish_impAI>(creature);
}
struct npc_fiendish_impAI : public ScriptedAI
@@ -236,7 +236,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_terestianAI>(creature);
return GetKarazhanAI<boss_terestianAI>(creature);
}
struct boss_terestianAI : public ScriptedAI

View File

@@ -108,7 +108,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_dorotheeAI>(creature);
return GetKarazhanAI<boss_dorotheeAI>(creature);
}
struct boss_dorotheeAI : public ScriptedAI
@@ -235,7 +235,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_titoAI(creature);
return GetKarazhanAI<npc_titoAI>(creature);
}
struct npc_titoAI : public ScriptedAI
@@ -306,7 +306,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_strawmanAI>(creature);
return GetKarazhanAI<boss_strawmanAI>(creature);
}
struct boss_strawmanAI : public ScriptedAI
@@ -427,7 +427,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_tinheadAI>(creature);
return GetKarazhanAI<boss_tinheadAI>(creature);
}
struct boss_tinheadAI : public ScriptedAI
@@ -543,7 +543,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_roarAI>(creature);
return GetKarazhanAI<boss_roarAI>(creature);
}
struct boss_roarAI : public ScriptedAI
@@ -660,7 +660,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_croneAI>(creature);
return GetKarazhanAI<boss_croneAI>(creature);
}
struct boss_croneAI : public ScriptedAI
@@ -739,7 +739,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_cycloneAI(creature);
return GetKarazhanAI<npc_cycloneAI>(creature);
}
struct npc_cycloneAI : public ScriptedAI
@@ -832,7 +832,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_bigbadwolfAI>(creature);
return GetKarazhanAI<boss_bigbadwolfAI>(creature);
}
struct boss_bigbadwolfAI : public ScriptedAI
@@ -1032,7 +1032,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_julianneAI>(creature);
return GetKarazhanAI<boss_julianneAI>(creature);
}
struct boss_julianneAI : public ScriptedAI
@@ -1151,7 +1151,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_romuloAI>(creature);
return GetKarazhanAI<boss_romuloAI>(creature);
}
struct boss_romuloAI : public ScriptedAI

View File

@@ -395,7 +395,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_barnesAI(creature);
return GetKarazhanAI<npc_barnesAI>(creature);
}
};
@@ -423,7 +423,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_image_of_medivhAI(creature);
return GetKarazhanAI<npc_image_of_medivhAI>(creature);
}
struct npc_image_of_medivhAI : public ScriptedAI

View File

@@ -21,6 +21,9 @@
#ifndef DEF_KARAZHAN_H
#define DEF_KARAZHAN_H
#include "CreatureAIImpl.h"
#define KarazhanScriptName "instance_karazhan"
#define DataHeader "KZ"
uint32 const EncounterCount = 12;
@@ -121,4 +124,10 @@ enum KarazhanSpells
SPELL_BLINK = 29884
};
template <class AI, class T>
inline AI* GetKarazhanAI(T* obj)
{
return GetInstanceAI<AI>(obj, KarazhanScriptName);
}
#endif

View File

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

View File

@@ -71,7 +71,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_priestess_delrissaAI(creature);
return GetMagistersTerraceAI<boss_priestess_delrissaAI>(creature);
}
struct boss_priestess_delrissaAI : public ScriptedAI
@@ -414,7 +414,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_kagani_nightstrikeAI(creature);
return GetMagistersTerraceAI<boss_kagani_nightstrikeAI>(creature);
}
struct boss_kagani_nightstrikeAI : public boss_priestess_lackey_commonAI
@@ -514,7 +514,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_ellris_duskhallowAI(creature);
return GetMagistersTerraceAI<boss_ellris_duskhallowAI>(creature);
}
struct boss_ellris_duskhallowAI : public boss_priestess_lackey_commonAI
@@ -592,7 +592,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_eramas_brightblazeAI(creature);
return GetMagistersTerraceAI<boss_eramas_brightblazeAI>(creature);
}
struct boss_eramas_brightblazeAI : public boss_priestess_lackey_commonAI
@@ -666,7 +666,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_yazzaiAI(creature);
return GetMagistersTerraceAI<boss_yazzaiAI>(creature);
}
struct boss_yazzaiAI : public boss_priestess_lackey_commonAI
@@ -774,7 +774,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_warlord_salarisAI(creature);
return GetMagistersTerraceAI<boss_warlord_salarisAI>(creature);
}
struct boss_warlord_salarisAI : public boss_priestess_lackey_commonAI
@@ -860,7 +860,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_garaxxasAI(creature);
return GetMagistersTerraceAI<boss_garaxxasAI>(creature);
}
struct boss_garaxxasAI : public boss_priestess_lackey_commonAI
@@ -949,7 +949,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_apokoAI(creature);
return GetMagistersTerraceAI<boss_apokoAI>(creature);
}
struct boss_apokoAI : public boss_priestess_lackey_commonAI
@@ -1047,7 +1047,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_zelfanAI(creature);
return GetMagistersTerraceAI<boss_zelfanAI>(creature);
}
struct boss_zelfanAI : public boss_priestess_lackey_commonAI

View File

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

View File

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

View File

@@ -8,6 +8,9 @@
#include "CreatureAI.h"
#include "Player.h"
#include "SpellScript.h"
#include "CreatureAIImpl.h"
#define MTScriptName "instance_magisters_terrace"
enum MTData
{
@@ -37,4 +40,10 @@ enum MTGameObjects
GO_ESCAPE_ORB = 188173
};
template <class AI, class T>
inline AI* GetMagistersTerraceAI(T* obj)
{
return GetInstanceAI<AI>(obj, MTScriptName);
}
#endif

View File

@@ -4,6 +4,7 @@
REWRITTEN BY XINEF
*/
#include "scarletmonastery.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptMgr.h"
@@ -227,7 +228,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_scarlet_guardAI(creature);
return GetScarletMonasteryAI<npc_scarlet_guardAI>(creature);
}
};
@@ -504,7 +505,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_mograineAI(creature);
return GetScarletMonasteryAI<npc_mograineAI>(creature);
}
};
@@ -646,7 +647,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_high_inquisitor_whitemaneAI(creature);
return GetScarletMonasteryAI<boss_high_inquisitor_whitemaneAI>(creature);
}
};
@@ -787,7 +788,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_fairbanksAI(creature);
return GetScarletMonasteryAI<npc_fairbanksAI>(creature);
}
};

View File

@@ -0,0 +1,18 @@
/*
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
*/
#ifndef DEF_SCARLETMONANSTERY_H
#define DEF_SCARLETMONANSTERY_H
#include "CreatureAIImpl.h"
#define ScarletMonasteryScriptName "instance_scarlet_monastery"
template <class AI, class T>
inline AI* GetScarletMonasteryAI(T* obj)
{
return GetInstanceAI<AI>(obj, ScarletMonasteryScriptName);
}
#endif

View File

@@ -212,7 +212,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_kirtonos_the_heraldAI>(creature);
return GetScholomanceAI<boss_kirtonos_the_heraldAI>(creature);
}
};

View File

@@ -13,7 +13,7 @@
class instance_scholomance : public InstanceMapScript
{
public:
instance_scholomance() : InstanceMapScript("instance_scholomance", 289) { }
instance_scholomance() : InstanceMapScript(ScholomanceScriptName, 289) { }
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{

View File

@@ -5,6 +5,10 @@
#ifndef DEF_SCHOLOMANCE_H
#define DEF_SCHOLOMANCE_H
#include "CreatureAIImpl.h"
#define ScholomanceScriptName "instance_scholomance"
enum DataTypes
{
DATA_KIRTONOS_THE_HERALD = 0,
@@ -58,4 +62,10 @@ enum SpellIds
SPELL_SHADOW_PORTAL_VAULTOFTHERAVENIAN = 17948
};
template <class AI, class T>
inline AI* GetScholomanceAI(T* obj)
{
return GetInstanceAI<AI>(obj, ScholomanceScriptName);
}
#endif

View File

@@ -142,7 +142,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_brutallusAI>(creature);
return GetSunwellPlateauAI<boss_brutallusAI>(creature);
}
};
@@ -386,7 +386,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_madrigosaAI>(creature);
return GetSunwellPlateauAI<npc_madrigosaAI>(creature);
}
};

View File

@@ -209,7 +209,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_sacrolashAI>(creature);
return GetSunwellPlateauAI<boss_sacrolashAI>(creature);
};
};
@@ -347,7 +347,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_alythessAI>(creature);
return GetSunwellPlateauAI<boss_alythessAI>(creature);
};
};

View File

@@ -373,7 +373,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_felmystAI>(creature);
return GetSunwellPlateauAI<boss_felmystAI>(creature);
}
};
@@ -384,7 +384,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_demonic_vaporAI(creature);
return GetSunwellPlateauAI<npc_demonic_vaporAI>(creature);
}
struct npc_demonic_vaporAI : public NullCreatureAI
@@ -420,7 +420,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_demonic_vapor_trailAI(creature);
return GetSunwellPlateauAI<npc_demonic_vapor_trailAI>(creature);
}
struct npc_demonic_vapor_trailAI : public NullCreatureAI

View File

@@ -341,7 +341,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_kalecgosAI>(creature);
return GetSunwellPlateauAI<boss_kalecgosAI>(creature);
}
};
@@ -362,7 +362,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_kalecAI>(creature);
return GetSunwellPlateauAI<boss_kalecAI>(creature);
}
struct boss_kalecAI : public ScriptedAI
@@ -479,7 +479,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_sathrovarrAI>(creature);
return GetSunwellPlateauAI<boss_sathrovarrAI>(creature);
}
struct boss_sathrovarrAI : public ScriptedAI

View File

@@ -153,7 +153,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_kiljaeden_controllerAI>(creature);
return GetSunwellPlateauAI<npc_kiljaeden_controllerAI>(creature);
}
struct npc_kiljaeden_controllerAI : public NullCreatureAI
@@ -650,7 +650,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_kiljaedenAI>(creature);
return GetSunwellPlateauAI<boss_kiljaedenAI>(creature);
}
};
@@ -762,7 +762,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_kalecgos_kjAI>(creature);
return GetSunwellPlateauAI<npc_kalecgos_kjAI>(creature);
}
struct npc_kalecgos_kjAI : public NullCreatureAI

View File

@@ -138,7 +138,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_muruAI>(creature);
return GetSunwellPlateauAI<boss_muruAI>(creature);
}
};
@@ -248,7 +248,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_entropiusAI>(creature);
return GetSunwellPlateauAI<boss_entropiusAI>(creature);
}
};
@@ -259,7 +259,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_singularityAI>(creature);
return GetSunwellPlateauAI<npc_singularityAI>(creature);
}
struct npc_singularityAI : public NullCreatureAI

View File

@@ -11,6 +11,8 @@
#include "SpellAuraEffects.h"
#include "SpellScript.h"
#define SWPScriptName "instance_sunwell_plateau"
enum DataTypes
{
DATA_KALECGOS = 0,
@@ -86,4 +88,10 @@ enum SpellIds
SPELL_SUNWELL_RADIANCE = 45769,
};
template <class AI, class T>
inline AI* GetSunwellPlateauAI(T* obj)
{
return GetInstanceAI<AI>(obj, SWPScriptName);
}
#endif // SUNWELL_PLATEAU_H

View File

@@ -363,7 +363,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_akilzonAI>(creature);
return GetZulAmanAI<boss_akilzonAI>(creature);
}
};
@@ -444,7 +444,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_akilzon_eagleAI(creature);
return GetZulAmanAI<npc_akilzon_eagleAI>(creature);
}
};

View File

@@ -305,7 +305,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_halazziAI>(creature);
return GetZulAmanAI<boss_halazziAI>(creature);
}
};
@@ -367,7 +367,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_halazzi_lynxAI(creature);
return GetZulAmanAI<npc_halazzi_lynxAI>(creature);
}
};

View File

@@ -498,7 +498,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_hex_lord_malacrassAI>(creature);
return GetZulAmanAI<boss_hex_lord_malacrassAI>(creature);
}
};
@@ -555,7 +555,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_thurgAI>(creature);
return GetZulAmanAI<boss_thurgAI>(creature);
}
};
@@ -652,7 +652,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_alyson_antilleAI>(creature);
return GetZulAmanAI<boss_alyson_antilleAI>(creature);
}
};
@@ -746,7 +746,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_lord_raadanAI>(creature);
return GetZulAmanAI<boss_lord_raadanAI>(creature);
}
};
@@ -787,7 +787,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_darkheartAI>(creature);
return GetZulAmanAI<boss_darkheartAI>(creature);
}
};
@@ -845,7 +845,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_slitherAI>(creature);
return GetZulAmanAI<boss_slitherAI>(creature);
}
};
@@ -887,7 +887,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_fenstalkerAI>(creature);
return GetZulAmanAI<boss_fenstalkerAI>(creature);
}
};
@@ -935,7 +935,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_koraggAI>(creature);
return GetZulAmanAI<boss_koraggAI>(creature);
}
};

View File

@@ -436,7 +436,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_janalaiAI>(creature);
return GetZulAmanAI<boss_janalaiAI>(creature);
}
};
@@ -471,7 +471,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_janalai_firebombAI(creature);
return GetZulAmanAI<npc_janalai_firebombAI>(creature);
}
};
@@ -603,7 +603,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_janalai_hatcherAI>(creature);
return GetZulAmanAI<npc_janalai_hatcherAI>(creature);
}
};
@@ -662,7 +662,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_janalai_hatchlingAI>(creature);
return GetZulAmanAI<npc_janalai_hatchlingAI>(creature);
}
};
@@ -673,7 +673,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_janalai_eggAI(creature);
return GetZulAmanAI<npc_janalai_eggAI>(creature);
}
struct npc_janalai_eggAI : public ScriptedAI

View File

@@ -451,7 +451,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_nalorakkAI>(creature);
return GetZulAmanAI<boss_nalorakkAI>(creature);
}
};

View File

@@ -552,7 +552,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_zuljinAI>(creature);
return GetZulAmanAI<boss_zuljinAI>(creature);
}
};
@@ -588,7 +588,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_zuljin_vortexAI(creature);
return GetZulAmanAI<npc_zuljin_vortexAI>(creature);
}
};

View File

@@ -428,7 +428,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_forest_frogAI>(creature);
return GetZulAmanAI<npc_forest_frogAI>(creature);
}
};
@@ -475,7 +475,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_zulaman_hostageAI(creature);
return GetZulAmanAI<npc_zulaman_hostageAI>(creature);
}
bool OnGossipHello(Player* player, Creature* creature) override
@@ -768,7 +768,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<npc_harrison_jonesAI>(creature);
return GetZulAmanAI<npc_harrison_jonesAI>(creature);
}
};

View File

@@ -7,6 +7,10 @@
#ifndef DEF_ZULAMAN_H
#define DEF_ZULAMAN_H
#include "CreatureAIImpl.h"
#define ZulAmanScriptName "instance_zulaman"
enum DataTypes
{
DATA_GONGEVENT = 0,
@@ -46,4 +50,10 @@ enum GameobjectIds
GO_STRANGE_GONG = 187359
};
template <class AI, class T>
inline AI* GetZulAmanAI(T* obj)
{
return GetInstanceAI<AI>(obj, ZulAmanScriptName);
}
#endif

View File

@@ -93,7 +93,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_gahzrankaAI(creature);
return GetZulGurubAI<boss_gahzrankaAI>(creature);
}
};

View File

@@ -94,7 +94,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_grilekAI(creature);
return GetZulGurubAI<boss_grilekAI>(creature);
}
};

View File

@@ -160,7 +160,7 @@ public:
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_hakkarAI>(creature);
return GetZulGurubAI<boss_hakkarAI>(creature);
}
};

Some files were not shown because too many files have changed in this diff Show More