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

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