L L4D2node

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 into addons/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.



        

        

          

Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.

Return-type handling cheatsheet (DHookReturn)