GetScriptDesc<CDirector>
0x0087f7c0 · 5598 bytes · __cdecl
_Z13GetScriptDescI9CDirectorEP17ScriptClassDesc_tPT_
Decompiled
ScriptClassDesc_t * (1 param)
/* ScriptClassDesc_t* GetScriptDesc<CDirector>(CDirector*) */
ScriptClassDesc_t * GetScriptDesc<CDirector>(CDirector *param_1)
{
CUtlVector<int,CUtlMemory<int,int>> *this;
undefined4 uVar1;
int iVar2;
undefined4 *puVar3;
void *pvVar4;
int local_20 [4];
if (GetScriptDesc<CDirector>(CDirector*)::bInitialized == '\0') {
GetScriptDesc<CDirector>(CDirector*)::bInitialized = 1;
g_CDirector_ScriptDesc._8_4_ = s_The_director_00cdbf71;
g_CDirector_ScriptDesc._0_4_ = s_CDirector_00cdbf7e;
g_CDirector_ScriptDesc._4_4_ = s_CDirector_00cdbf7e;
g_CDirector_ScriptDesc._12_4_ = 0;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Trigger a mob as soon as possible when in BUILD_UP";
*puVar3 = "ResetMobTimer";
puVar3[1] = "ResetMobTimer";
puVar3[3] = 0;
puVar3[9] = CMemberScriptBinding0<CDirector*,void(CDirector::*)(),void>::Call;
puVar3[10] = CDirector::ResetMobTimer;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] =
"Reset all special timers (by type and by slot) so that hopefully mobs will spawn asap";
*puVar3 = "ResetSpecialTimers";
puVar3[1] = "ResetSpecialTimers";
puVar3[3] = 0;
puVar3[9] = CMemberScriptBinding0<CDirector*,void(CDirector::*)(),void>::Call;
puVar3[10] = CDirector::ResetSpecialTimers;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Plays a horde scream sound and asks survivors to speak \'incoming horde\' lines";
*puVar3 = "PlayMegaMobWarningSounds";
puVar3[1] = "PlayMegaMobWarningSounds";
puVar3[3] = 0;
puVar3[9] = CMemberScriptBinding0<CDirector*,void(CDirector::*)(),void>::Call;
puVar3[10] = CDirector::PlayMegaMobWarningSounds;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Get the distance between the lead and trailing survivors, smoothed over time";
*puVar3 = "GetAveragedSurvivorSpan";
puVar3[1] = "GetAveragedSurvivorSpan";
puVar3[3] = 1;
puVar3[9] = CMemberScriptBinding0<CDirector*,float(CDirector::*)(),float>::Call;
puVar3[10] = CDirector::GetAveragedSurvivorSpan;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] =
"Get the rate at which the lead survivor is moving along the flow, smoothed over time";
*puVar3 = "GetAveragedSurvivorSpeed";
puVar3[1] = "GetAveragedSurvivorSpeed";
puVar3[3] = 1;
puVar3[9] = CMemberScriptBinding0<CDirector*,float(CDirector::*)(),float>::Call;
puVar3[10] = CDirector::GetAveragedSurvivorSpeed;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Get the maximum distance along the flow that the survivors have reached";
*puVar3 = "GetFurthestSurvivorFlow";
puVar3[1] = "GetFurthestSurvivorFlow";
puVar3[3] = 1;
puVar3[9] = CMemberScriptBinding0<CDirector*,float(CDirector::*)(),float>::Call;
puVar3[10] = CDirector::GetFurthestSurvivorFlow;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "True when one or more survivors have left the starting safe area";
*puVar3 = "HasAnySurvivorLeftSafeArea";
puVar3[1] = "HasAnySurvivorLeftSafeArea";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::HasAnySurvivorLeftSafeArea;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Get the current game mode";
*puVar3 = "GetGameMode";
puVar3[1] = "GetGameMode";
puVar3[3] = 0x1f;
puVar3[9] = CMemberScriptBinding0<CDirector*,char_const*(CDirector::*)(),char_const*>::Call;
puVar3[10] = CDirector::GetGameMode;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Get the current base game mode";
*puVar3 = "GetGameModeBase";
puVar3[1] = "GetGameModeBase";
puVar3[3] = 0x1f;
puVar3[9] = CMemberScriptBinding0<CDirector*,char_const*(CDirector::*)(),char_const*>::Call;
puVar3[10] = CDirector::GetGameModeBase;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Get the current game mode";
*puVar3 = "GetMapName";
puVar3[1] = "GetMapName";
puVar3[3] = 0x1f;
puVar3[9] = CMemberScriptBinding0<CDirector*,char_const*(CDirector::*)(),char_const*>::Call;
puVar3[10] = CDirector::GetMapName;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "1=L4D1 Survivors, 2=L4D2 Survivors";
*puVar3 = "GetSurvivorSet";
puVar3[1] = "GetSurvivorSet";
puVar3[3] = 5;
puVar3[9] = CMemberScriptBinding0<CDirector*,int(CDirector::*)(),int>::Call;
puVar3[10] = CDirector::GetSurvivorSet;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Return true is the current campaign is originally from L4D1";
*puVar3 = "IsL4D1Campaign";
puVar3[1] = "IsL4D1Campaign";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsL4D1Campaign;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Return true if game is in single player";
*puVar3 = "IsSinglePlayerGame";
puVar3[1] = "IsSinglePlayerGame";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsSinglePlayerGame;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Return true if game is running on a console (such as Xbox 360)";
*puVar3 = "IsPlayingOnConsole";
puVar3[1] = "IsPlayingOnConsole";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsPlayingOnConsole;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Let the L4D1 survivors know that now is a good time to give the players an item";
*puVar3 = "L4D1SurvivorGiveItem";
puVar3[1] = "L4D1SurvivorGiveItem";
puVar3[3] = 0;
puVar3[9] = CMemberScriptBinding0<CDirector*,void(CDirector::*)(),void>::Call;
puVar3[10] = CDirector::L4D1SurvivorGiveItem;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns true if any survivor recently dealt or took damage";
*puVar3 = "IsAnySurvivorInCombat";
puVar3[1] = "IsAnySurvivorInCombat";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsAnySurvivorInCombat;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns true if any tanks are aggro on survivors";
*puVar3 = "IsTankInPlay";
puVar3[1] = "IsTankInPlay";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsTankInPlay;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Get the end time of the cooldown timer";
*puVar3 = "GetHoldoutCooldownEndTime";
puVar3[1] = "GetHoldoutCooldownEndTime";
puVar3[3] = 1;
puVar3[9] = CMemberScriptBinding0<CDirector*,float(CDirector::*)(),float>::Call;
puVar3[10] = CDirector::GetHoldoutCooldownEndTime;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Set the end time of the cooldown timer";
*puVar3 = "SetHoldoutCooldownEndTime";
puVar3[1] = "SetHoldoutCooldownEndTime";
puVar3[3] = 0;
puVar3[6] = 1;
if ((int)puVar3[5] < 1) {
puVar3[5] = 1;
if ((void *)puVar3[4] == (void *)0x0) {
pvVar4 = malloc(4);
puVar3[4] = pvVar4;
}
else {
pvVar4 = realloc((void *)puVar3[4],4);
puVar3[4] = pvVar4;
}
}
else {
pvVar4 = (void *)puVar3[4];
}
puVar3[8] = pvVar4;
local_20[0] = 1;
CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
uVar1 = g_CDirector_ScriptDesc._28_4_;
puVar3[9] = CMemberScriptBinding1<CDirector*,void(CDirector::*)(float),void,float>::Call;
puVar3[10] = CDirector::SetHoldoutCooldownEndTime;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),uVar1);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Push the ScriptedMode to next stage - i.e. request GNSS be called";
*puVar3 = "ForceNextStage";
puVar3[1] = "ForceNextStage";
puVar3[3] = 0;
puVar3[9] = CMemberScriptBinding0<CDirector*,void(CDirector::*)(),void>::Call;
puVar3[10] = CDirector::ForceNextStage;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Mark all cached bot query results as invalid";
*puVar3 = "ClearCachedBotQueries";
puVar3[1] = "ClearCachedBotQueries";
puVar3[3] = 0;
puVar3[9] = CMemberScriptBinding0<CDirector*,void(CDirector::*)(),void>::Call;
puVar3[10] = CDirector::ClearCachedBotQueries;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Warp the survivors to the next checkpoint";
*puVar3 = "WarpAllSurvivorsToCheckpoint";
puVar3[1] = "WarpAllSurvivorsToCheckpoint";
puVar3[3] = 0;
puVar3[9] = CMemberScriptBinding0<CDirector*,void(CDirector::*)(),void>::Call;
puVar3[10] = CDirector::WarpAllSurvivorsToCheckpoint;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Warp the survivors to the crescendo event";
*puVar3 = "WarpAllSurvivorsToBattlefield";
puVar3[1] = "WarpAllSurvivorsToBattlefield";
puVar3[3] = 0;
puVar3[9] = CMemberScriptBinding0<CDirector*,void(CDirector::*)(),void>::Call;
puVar3[10] = CDirector::WarpAllSurvivorsToBattlefield;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Warp the survivors to the finale area";
*puVar3 = "WarpAllSurvivorsToFinale";
puVar3[1] = "WarpAllSurvivorsToFinale";
puVar3[3] = 0;
puVar3[9] = CMemberScriptBinding0<CDirector*,void(CDirector::*)(),void>::Call;
puVar3[10] = CDirector::WarpAllSurvivorsToFinale;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "True when all survivors are within the finale area";
*puVar3 = "AreAllSurvivorsInFinaleArea";
puVar3[1] = "AreAllSurvivorsInFinaleArea";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::AreAllSurvivorsInFinaleArea;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "True when teams are flipped in Versus modes";
*puVar3 = "AreTeamsFlipped";
puVar3[1] = "AreTeamsFlipped";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::AreTeamsFlipped;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Return the current map number";
*puVar3 = "GetMapNumber";
puVar3[1] = "GetMapNumber";
puVar3[3] = 5;
puVar3[9] = CMemberScriptBinding0<CDirector*,int(CDirector::*)(),int>::Call;
puVar3[10] = CDirector::GetMapNumber;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "True when one or more survivors are bypassing the Tank";
*puVar3 = "IsAnySurvivorBypassingTank";
puVar3[1] = "IsAnySurvivorBypassingTank";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsAnySurvivorBypassingTank;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "True when one or more survivors are in the exit checkpoint";
*puVar3 = "IsAnySurvivorInExitCheckpoint";
puVar3[1] = "IsAnySurvivorInExitCheckpoint";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsAnySurvivorInExitCheckpoint;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "True when one or more survivors are in the starting safe area";
*puVar3 = "IsAnySurvivorInStartArea";
puVar3[1] = "IsAnySurvivorInStartArea";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsAnySurvivorInStartArea;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "True when the finale has started";
*puVar3 = "IsFinale";
puVar3[1] = "IsFinale";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsFinale;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "True when the finale escape is in progress";
*puVar3 = "IsFinaleEscapeInProgress";
puVar3[1] = "IsFinaleEscapeInProgress";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsFinaleEscapeInProgress;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "True when the finale vehicle is ready";
*puVar3 = "IsFinaleVehicleReady";
puVar3[1] = "IsFinaleVehicleReady";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsFinaleVehicleReady;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "True if the first map in a scenario";
*puVar3 = "IsFirstMapInScenario";
puVar3[1] = "IsFirstMapInScenario";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsFirstMapInScenario;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "True if the intro is currently playing";
*puVar3 = "IsPlayingIntro";
puVar3[1] = "IsPlayingIntro";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsPlayingIntro;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "True if the map is the start of the session";
*puVar3 = "IsSessionStartMap";
puVar3[1] = "IsSessionStartMap";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsSessionStartMap;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns the total elapsed mission time";
*puVar3 = "GetTotalElapsedMissionTime";
puVar3[1] = "GetTotalElapsedMissionTime";
puVar3[3] = 5;
puVar3[9] = CMemberScriptBinding0<CDirector*,int(CDirector::*)(),int>::Call;
puVar3[10] = CDirector::GetTotalElapsedMissionTime;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns true if the finale has been won";
*puVar3 = "IsFinaleWon";
puVar3[1] = "IsFinaleWon";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::IsFinaleWon;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns the current number of mission wipes";
*puVar3 = "GetMissionWipes";
puVar3[1] = "GetMissionWipes";
puVar3[3] = 5;
puVar3[9] = CMemberScriptBinding0<CDirector*,int(CDirector::*)(),int>::Call;
puVar3[10] = CDirector::GetMissionWipes;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns true if all Survivors are in the battlefield";
*puVar3 = "AreAllSurvivorsInBattlefield";
puVar3[1] = "ScriptAreAllSurvivorsInBattlefield";
puVar3[3] = 6;
puVar3[9] = CMemberScriptBinding0<CDirector*,bool(CDirector::*)(),bool>::Call;
puVar3[10] = CDirector::ScriptAreAllSurvivorsInBattlefield;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns the closest character who is IT";
*puVar3 = "GetClosestCharacterWhoIsIT";
puVar3[1] = "ScriptGetClosestCharacterWhoIsIT";
puVar3[3] = 0x20;
puVar3[6] = 1;
if ((int)puVar3[5] < 1) {
puVar3[5] = 1;
if ((void *)puVar3[4] == (void *)0x0) {
pvVar4 = malloc(4);
puVar3[4] = pvVar4;
}
else {
pvVar4 = realloc((void *)puVar3[4],4);
puVar3[4] = pvVar4;
}
}
else {
pvVar4 = (void *)puVar3[4];
}
puVar3[8] = pvVar4;
local_20[0] = 0x20;
CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
uVar1 = g_CDirector_ScriptDesc._28_4_;
puVar3[9] = CMemberScriptBinding1<CDirector*,HSCRIPT__*(CDirector::*)(HSCRIPT__*),HSCRIPT__*,HSCRIPT__*>
::Call;
puVar3[10] = CDirector::ScriptGetClosestCharacterWhoIsIT;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),uVar1);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns the closest Survivor to the passed origin";
*puVar3 = "GetClosestSurvivor";
puVar3[1] = "ScriptGetClosestSurvivorOrigin";
puVar3[3] = 0x20;
puVar3[6] = 1;
if ((int)puVar3[5] < 3) {
puVar3[5] = 3;
if ((void *)puVar3[4] == (void *)0x0) {
pvVar4 = malloc(0xc);
puVar3[4] = pvVar4;
}
else {
pvVar4 = realloc((void *)puVar3[4],0xc);
puVar3[4] = pvVar4;
}
}
else {
pvVar4 = (void *)puVar3[4];
}
puVar3[8] = pvVar4;
this = (CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4);
local_20[0] = 3;
CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(this,puVar3[7],local_20);
local_20[0] = 6;
CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(this,puVar3[7],local_20);
local_20[0] = 6;
CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(this,puVar3[7],local_20);
uVar1 = g_CDirector_ScriptDesc._28_4_;
puVar3[9] = CMemberScriptBinding3<CDirector*,HSCRIPT__*(CDirector::*)(Vector,bool,bool),HSCRIPT__*,Vector,bool,bool>
::Call;
puVar3[10] = CDirector::ScriptGetClosestSurvivorOrigin;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),uVar1);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns the Survivor with the highest flow";
*puVar3 = "GetHighestFlowSurvivor";
puVar3[1] = "ScriptGetHighestFlowSurvivor";
puVar3[3] = 0x20;
puVar3[9] = CMemberScriptBinding0<CDirector*,HSCRIPT__*(CDirector::*)(),HSCRIPT__*>::Call;
puVar3[10] = CDirector::ScriptGetHighestFlowSurvivor;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns the Survivor with the lowest flow";
*puVar3 = "GetLowestFlowSurvivor";
puVar3[1] = "ScriptGetLowestFlowSurvivor";
puVar3[3] = 0x20;
puVar3[9] = CMemberScriptBinding0<CDirector*,HSCRIPT__*(CDirector::*)(),HSCRIPT__*>::Call;
puVar3[10] = CDirector::ScriptGetLowestFlowSurvivor;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns a random Survivor";
*puVar3 = "GetRandomSurvivor";
puVar3[1] = "ScriptGetRandomSurvivor";
puVar3[3] = 0x20;
puVar3[9] = CMemberScriptBinding0<CDirector*,HSCRIPT__*(CDirector::*)(),HSCRIPT__*>::Call;
puVar3[10] = CDirector::ScriptGetRandomSurvivor;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns true if the passed location is fogged to Survivors";
*puVar3 = "IsLocationFoggedToSurvivors";
puVar3[1] = "ScriptIsLocationFoggedToSurvivors";
puVar3[3] = 6;
puVar3[6] = 1;
if ((int)puVar3[5] < 1) {
puVar3[5] = 1;
if ((void *)puVar3[4] == (void *)0x0) {
pvVar4 = malloc(4);
puVar3[4] = pvVar4;
}
else {
pvVar4 = realloc((void *)puVar3[4],4);
puVar3[4] = pvVar4;
}
}
else {
pvVar4 = (void *)puVar3[4];
}
puVar3[8] = pvVar4;
local_20[0] = 3;
CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
uVar1 = g_CDirector_ScriptDesc._28_4_;
puVar3[9] = CMemberScriptBinding1<CDirector*,bool(CDirector::*)(Vector),bool,Vector>::Call;
puVar3[10] = CDirector::ScriptIsLocationFoggedToSurvivors;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),uVar1);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns the time since the passed zombie type was killed";
*puVar3 = "GetTimeSinceSpecialZombieKilled";
puVar3[1] = "ScriptGetTimeSinceSpecialZombieKilled";
puVar3[3] = 1;
puVar3[6] = 1;
if ((int)puVar3[5] < 1) {
puVar3[5] = 1;
if ((void *)puVar3[4] == (void *)0x0) {
pvVar4 = malloc(4);
puVar3[4] = pvVar4;
}
else {
pvVar4 = realloc((void *)puVar3[4],4);
puVar3[4] = pvVar4;
}
}
else {
pvVar4 = (void *)puVar3[4];
}
puVar3[8] = pvVar4;
local_20[0] = 5;
CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
uVar1 = g_CDirector_ScriptDesc._28_4_;
puVar3[9] = CMemberScriptBinding1<CDirector*,float(CDirector::*)(int),float,int>::Call;
puVar3[10] = CDirector::ScriptGetTimeSinceSpecialZombieKilled;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),uVar1);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Registers a target entity as forbidden";
*puVar3 = "RegisterForbiddenTarget";
puVar3[1] = "ScriptRegisterForbiddenTarget";
puVar3[3] = 0;
puVar3[6] = 1;
if ((int)puVar3[5] < 1) {
puVar3[5] = 1;
if ((void *)puVar3[4] == (void *)0x0) {
pvVar4 = malloc(4);
puVar3[4] = pvVar4;
}
else {
pvVar4 = realloc((void *)puVar3[4],4);
puVar3[4] = pvVar4;
}
}
else {
pvVar4 = (void *)puVar3[4];
}
puVar3[8] = pvVar4;
local_20[0] = 0x20;
CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
uVar1 = g_CDirector_ScriptDesc._28_4_;
puVar3[9] = CMemberScriptBinding1<CDirector*,void(CDirector::*)(HSCRIPT__*),void,HSCRIPT__*>::
Call;
puVar3[10] = CDirector::ScriptRegisterForbiddenTarget;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),uVar1);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Unregisters a target entity as forbidden";
*puVar3 = "UnregisterForbiddenTarget";
puVar3[1] = "ScriptUnregisterForbiddenTarget";
puVar3[3] = 0;
puVar3[6] = 1;
if ((int)puVar3[5] < 1) {
puVar3[5] = 1;
if ((void *)puVar3[4] == (void *)0x0) {
pvVar4 = malloc(4);
puVar3[4] = pvVar4;
}
else {
pvVar4 = realloc((void *)puVar3[4],4);
puVar3[4] = pvVar4;
}
}
else {
pvVar4 = (void *)puVar3[4];
}
puVar3[8] = pvVar4;
local_20[0] = 0x20;
CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
uVar1 = g_CDirector_ScriptDesc._28_4_;
puVar3[9] = CMemberScriptBinding1<CDirector*,void(CDirector::*)(HSCRIPT__*),void,HSCRIPT__*>::
Call;
puVar3[10] = CDirector::ScriptUnregisterForbiddenTarget;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),uVar1);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns the closest active pipe bomb from this origin";
*puVar3 = "GetClosestActivePipeBomb";
puVar3[1] = "ScriptGetClosestActivePipeBomb";
puVar3[3] = 0x20;
puVar3[6] = 1;
if ((int)puVar3[5] < 1) {
puVar3[5] = 1;
if ((void *)puVar3[4] == (void *)0x0) {
pvVar4 = malloc(4);
puVar3[4] = pvVar4;
}
else {
pvVar4 = realloc((void *)puVar3[4],4);
puVar3[4] = pvVar4;
}
}
else {
pvVar4 = (void *)puVar3[4];
}
puVar3[8] = pvVar4;
local_20[0] = 3;
CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
uVar1 = g_CDirector_ScriptDesc._28_4_;
puVar3[9] = CMemberScriptBinding1<CDirector*,HSCRIPT__*(CDirector::*)(Vector),HSCRIPT__*,Vector>
::Call;
puVar3[10] = CDirector::ScriptGetClosestActivePipeBomb;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),uVar1);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns tnumber of infected waiting to spawn";
*puVar3 = "GetPendingMobCount";
puVar3[1] = "ScriptGetPendingMobCount";
puVar3[3] = 5;
puVar3[9] = CMemberScriptBinding0<CDirector*,int(CDirector::*)(),int>::Call;
puVar3[10] = CDirector::ScriptGetPendingMobCount;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "Returns number fo infected currently spawned";
*puVar3 = "GetCommonInfectedCount";
puVar3[1] = "ScriptGetCommonInfectedCount";
puVar3[3] = 5;
puVar3[9] = CMemberScriptBinding0<CDirector*,int(CDirector::*)(),int>::Call;
puVar3[10] = CDirector::ScriptGetCommonInfectedCount;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "generic user defined event fired from a squirrel script";
*puVar3 = "UserDefinedEvent1";
puVar3[1] = "ScriptUserDefinedEvent1";
puVar3[3] = 0;
puVar3[9] = CMemberScriptBinding0<CDirector*,void(CDirector::*)(),void>::Call;
puVar3[10] = CDirector::ScriptUserDefinedEvent1;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "generic user defined event fired from a squirrel script";
*puVar3 = "UserDefinedEvent2";
puVar3[1] = "ScriptUserDefinedEvent2";
puVar3[3] = 0;
puVar3[9] = CMemberScriptBinding0<CDirector*,void(CDirector::*)(),void>::Call;
puVar3[10] = CDirector::ScriptUserDefinedEvent2;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "generic user defined event fired from a squirrel script";
*puVar3 = "UserDefinedEvent3";
puVar3[1] = "ScriptUserDefinedEvent3";
puVar3[3] = 0;
puVar3[9] = CMemberScriptBinding0<CDirector*,void(CDirector::*)(),void>::Call;
puVar3[10] = CDirector::ScriptUserDefinedEvent3;
puVar3[0xb] = 1;
iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
*)(g_CDirector_ScriptDesc + 0x10),g_CDirector_ScriptDesc._28_4_);
puVar3 = (undefined4 *)(iVar2 * 0x30 + g_CDirector_ScriptDesc._16_4_);
puVar3[2] = "generic user defined event fired from a squirrel script";
*puVar3 = "UserDefinedEvent4";
puVar3[1] = "ScriptUserDefinedEvent4";
puVar3[3] = 0;
puVar3[9] = CMemberScriptBinding0<CDirector*,void(CDirector::*)(),void>::Call;
puVar3[10] = CDirector::ScriptUserDefinedEvent4;
puVar3[0xb] = 1;
return (ScriptClassDesc_t *)g_CDirector_ScriptDesc;
}
return (ScriptClassDesc_t *)g_CDirector_ScriptDesc;
}
SourceMod gamedata
paste intoaddons/sourcemod/gamedata/<your_plugin>.txt
used as the SourceMod key — change to fit your plugin's convention
SourceMod library name (server / engine / matchmaking)
Just a Signatures{} block, ready to drop into a gamedata
file. Wire it up in your plugin however you like - SDKCall, DHooks,
raw memory ops, or anything else.
Signatures + Functions block. The plugin uses
DHookCreateFromConf - DHooks reads return type, this-type,
calling convention, and argument types straight from the gamedata. Less
boilerplate in the plugin, types travel with the gamedata.
Gamedata KeyValues
DHooks plugin example
Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.