class KFGI_Access extends Object within KFGameInfo; public function Array > GetAIClassList(E_LogLevel LogLevel) { local Array > RV; local class KFPMC; `Log_Trace(); foreach AIClassList(KFPMC) RV.AddItem(KFPMC); return RV; } public function Array > GetNonSpawnAIClassList(E_LogLevel LogLevel) { local Array > RV; local class KFPMC; `Log_Trace(); foreach NonSpawnAIClassList(KFPMC) RV.AddItem(KFPMC); return RV; } public function Array > GetAIBossClassList(E_LogLevel LogLevel) { local Array > RV; local class KFPMC; `Log_Trace(); foreach AIBossClassList(KFPMC) RV.AddItem(KFPMC); return RV; } public function bool IsCustomZed(class KFPM, E_LogLevel LogLevel) { if (AIClassList.Find(KFPM) != INDEX_NONE) return false; if (NonSpawnAIClassList.Find(KFPM) != INDEX_NONE) return false; if (AIBossClassList.Find(KFPM) != INDEX_NONE) return false; return true; } public function bool IsOriginalAI(class KFPM, optional out EAIType AIType, optional E_LogLevel LogLevel = LL_None) { local int Type; `Log_Trace(); Type = AIClassList.Find(KFPM); if (Type != INDEX_NONE) { AIType = EAIType(Type); return true; } return false; } public function bool IsOriginalAIBoss(class KFPM, optional out EBossAIType AIType, optional E_LogLevel LogLevel = LL_None) { local int Type; `Log_Trace(); Type = AIBossClassList.Find(KFPM); if (Type != INDEX_NONE) { AIType = EBossAIType(Type); return true; } return false; } public function class AITypePawn(EAIType AIType, E_LogLevel LogLevel) { `Log_Trace(); if (AIType < AIClassList.Length) return AIClassList[AIType]; else return None; } public function class BossAITypePawn(EBossAIType AIType, E_LogLevel LogLevel) { `Log_Trace(); if (AIType < AIBossClassList.Length) return AIBossClassList[AIType]; else return None; } defaultproperties { }