L L4D2node

GetScriptDesc<CTerrorPlayer>

0x009bd2a0 · 5917 bytes · __cdecl

_Z13GetScriptDescI13CTerrorPlayerEP17ScriptClassDesc_tPT_

Decompiled

ScriptClassDesc_t * (1 param)

/* ScriptClassDesc_t* GetScriptDesc<CTerrorPlayer>(CTerrorPlayer*) */

ScriptClassDesc_t * GetScriptDesc<CTerrorPlayer>(CTerrorPlayer *param_1)

{
  ScriptClassDesc_t *pSVar1;
  undefined4 uVar2;
  int iVar3;
  undefined4 *puVar4;
  void *pvVar5;
  int local_20 [4];
  
  if (GetScriptDesc<CTerrorPlayer>(CTerrorPlayer*)::bInitialized == '\0') {
    GetScriptDesc<CTerrorPlayer>(CTerrorPlayer*)::bInitialized = 1;
    g_CTerrorPlayer_ScriptDesc._8_4_ = s_Terror_Player__00d13318;
    g_CTerrorPlayer_ScriptDesc._0_4_ = s_CTerrorPlayer_00d132d3;
    g_CTerrorPlayer_ScriptDesc._4_4_ = s_CTerrorPlayer_00d132d3;
    g_CTerrorPlayer_ScriptDesc._12_4_ = GetScriptDesc<CBaseFlex>((CBaseFlex *)0x0);
    for (pSVar1 = (ScriptClassDesc_t *)g_CTerrorPlayer_ScriptDesc._12_4_;
        (iVar3 = g_CTerrorPlayer_ScriptDesc._44_4_, pSVar1 != (ScriptClassDesc_t *)0x0 &&
        (iVar3 = *(int *)(pSVar1 + 0x2c), *(int *)(pSVar1 + 0x2c) == 0));
        pSVar1 = *(ScriptClassDesc_t **)(pSVar1 + 0xc)) {
    }
    g_CTerrorPlayer_ScriptDesc._44_4_ = iVar3;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "On the survivor team (Otherwise, infected).";
    *puVar4 = "IsSurvivor";
    puVar4[1] = "IsOnASurvivorTeam";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = CTerrorPlayer::IsOnASurvivorTeam;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Get the player\'s name";
    *puVar4 = "GetPlayerName";
    puVar4[1] = "GetPlayerName";
    puVar4[3] = 0x1f;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,char_const*(CBasePlayer::*)(),char_const*>::
                Call;
    puVar4[10] = 0xb9;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Get the player\'s network (i.e. Steam) ID.";
    *puVar4 = "GetNetworkIDString";
    puVar4[1] = "GetNetworkIDString";
    puVar4[3] = 0x1f;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,char_const*(CBasePlayer::*)(),char_const*>::
                Call;
    puVar4[10] = CBasePlayer::GetNetworkIDString;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Give this much ammo for your primary weapon";
    *puVar4 = "GiveAmmo";
    puVar4[1] = "ScriptGivePrimaryAmmo";
    puVar4[3] = 0;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 5;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,void(CTerrorPlayer::*)(int),void,int>::Call;
    puVar4[10] = CTerrorPlayer::ScriptGivePrimaryAmmo;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Give an item/weapon to the player";
    *puVar4 = "GiveItem";
    puVar4[1] = "ScriptGiveNamedItem";
    puVar4[3] = 0;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 0x1f;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,void(CTerrorPlayer::*)(char_const*),void,char_const*>
                ::Call;
    puVar4[10] = CTerrorPlayer::ScriptGiveNamedItem;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Give an item/weapon to the player with a skin value";
    *puVar4 = "GiveItemWithSkin";
    puVar4[1] = "ScriptGiveNamedItemWithSkin";
    puVar4[3] = 0;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 2) {
      puVar4[5] = 2;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(8);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],8);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 0x1f;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    local_20[0] = 5;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding2<CTerrorPlayer*,void(CTerrorPlayer::*)(char_const*,int),void,char_const*,int>
                ::Call;
    puVar4[10] = CTerrorPlayer::ScriptGiveNamedItemWithSkin;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Give a weapon upgrade by name";
    *puVar4 = "GiveUpgrade";
    puVar4[1] = "ScriptAddUpgrade";
    puVar4[3] = 0;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 5;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,void(CTerrorPlayer::*)(int),void,int>::Call;
    puVar4[10] = CTerrorPlayer::ScriptAddUpgrade;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Remove a weapon upgrade by name";
    *puVar4 = "RemoveUpgrade";
    puVar4[1] = "ScriptRemoveUpgrade";
    puVar4[3] = 0;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 5;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,void(CTerrorPlayer::*)(int),void,int>::Call;
    puVar4[10] = CTerrorPlayer::ScriptRemoveUpgrade;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Get the player\'s mask of pressed buttons";
    *puVar4 = "GetButtonMask";
    puVar4[1] = "ScriptGetButtons";
    puVar4[3] = 5;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,int(CTerrorPlayer::*)(),int>::Call;
    puVar4[10] = CTerrorPlayer::ScriptGetButtons;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Get the player\'s slot";
    *puVar4 = "GetSurvivorSlot";
    puVar4[1] = "GetSurvivorSlot";
    puVar4[3] = 5;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,int(CTerrorPlayer::*)(),int>::Call;
    puVar4[10] = CTerrorPlayer::GetSurvivorSlot;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Get the player\'s userID.";
    *puVar4 = "GetPlayerUserId";
    puVar4[1] = "ScriptGetPlayerUserId";
    puVar4[3] = 5;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,int(CTerrorPlayer::*)(),int>::Call;
    puVar4[10] = CTerrorPlayer::ScriptGetPlayerUserId;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Get the player\'s active weapon";
    *puVar4 = "GetActiveWeapon";
    puVar4[1] = "ScriptGetActiveWeapon";
    puVar4[3] = 0x20;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,HSCRIPT__*(CTerrorPlayer::*)(),HSCRIPT__*>::
                Call;
    puVar4[10] = CTerrorPlayer::ScriptGetActiveWeapon;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Get Player Health Buffer - from pills or adrenalin etc";
    *puVar4 = "GetHealthBuffer";
    puVar4[1] = "GetHealthBuffer";
    puVar4[3] = 1;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,float(CTerrorPlayer::*)(),float>::Call;
    puVar4[10] = 0x7e5;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Set Player Health Buffer - from pills or adrenalin etc";
    *puVar4 = "SetHealthBuffer";
    puVar4[1] = "SetHealthBuffer";
    puVar4[3] = 0;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 1;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,void(CTerrorPlayer::*)(float),void,float>::Call
    ;
    puVar4[10] = CTerrorPlayer::SetHealthBuffer;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Set the number of times the player has been revived";
    *puVar4 = "SetReviveCount";
    puVar4[1] = "SetCurrentReviveCount";
    puVar4[3] = 0;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 5;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,void(CTerrorPlayer::*)(int),void,int>::Call;
    puVar4[10] = CTerrorPlayer::SetCurrentReviveCount;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Revive an incapped player";
    *puVar4 = "ReviveFromIncap";
    puVar4[1] = "OnRevived";
    puVar4[3] = 0;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,void(CTerrorPlayer::*)(),void>::Call;
    puVar4[10] = 0x925;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Revive a dead player by defibrillator";
    *puVar4 = "ReviveByDefib";
    puVar4[1] = "ScriptReviveByDefibrillator";
    puVar4[3] = 0;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,void(CTerrorPlayer::*)(),void>::Call;
    puVar4[10] = CTerrorPlayer::ScriptReviveByDefibrillator;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "If an infected, find out what type";
    *puVar4 = "GetZombieType";
    puVar4[1] = "GetZombieClass";
    puVar4[3] = 0x1e;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,ZombieClassType(CTerrorPlayer::*)(),ZombieClassType>
                ::Call;
    puVar4[10] = CTerrorPlayer::GetZombieClass;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Is the player currently incapacitated";
    *puVar4 = "IsIncapacitated";
    puVar4[1] = "IsIncapacitated";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = 0x7e9;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Player is dying, but not dead yet";
    *puVar4 = "IsDying";
    puVar4[1] = "IsDying";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CBasePlayer::*)(),bool>::Call;
    puVar4[10] = CBasePlayer::IsDying;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Is the player dead";
    *puVar4 = "IsDead";
    puVar4[1] = "IsDead";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CBasePlayer::*)(),bool>::Call;
    puVar4[10] = CBasePlayer::IsDead;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Is the player currently hanging from a ledge";
    *puVar4 = "IsHangingFromLedge";
    puVar4[1] = "IsHangingFromLedge";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = CTerrorPlayer::IsHangingFromLedge;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Is Player a Ghost";
    *puVar4 = "IsGhost";
    puVar4[1] = "IsGhost";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = 0x559;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = 
    "Cause the effect of Adrenaline - but no HP (SetHealthBuffer for that) - this is just speed!";
    *puVar4 = "UseAdrenaline";
    puVar4[1] = "OnAdrenalineUsed";
    puVar4[3] = 0;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 1;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,void(CTerrorPlayer::*)(float),void,float>::Call
    ;
    puVar4[10] = CTerrorPlayer::OnAdrenalineUsed;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Cause the vomit effect and make a player IT";
    *puVar4 = "HitWithVomit";
    puVar4[1] = "ScriptHitWithVomit";
    puVar4[3] = 0;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,void(CTerrorPlayer::*)(),void>::Call;
    puVar4[10] = CTerrorPlayer::ScriptHitWithVomit;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Try and get the current eye position";
    *puVar4 = "EyePosition";
    puVar4[1] = "EyePosition";
    puVar4[3] = 3;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,Vector(CBasePlayer::*)(),Vector>::Call;
    puVar4[10] = 0x235;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Try and get the current Eye Angles";
    *puVar4 = "EyeAngles";
    puVar4[1] = "EyeAngles";
    puVar4[3] = 0x28;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,QAngle_const&(CBasePlayer::*)(),QAngle_const&>
                ::Call;
    puVar4[10] = 0x239;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Get a pathable location within this radius";
    *puVar4 = "TryGetPathableLocationWithin";
    puVar4[1] = "TryGetPathableLocationWithin";
    puVar4[3] = 3;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 1;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,Vector(CTerrorPlayer::*)(float),Vector,float>::
                Call;
    puVar4[10] = CTerrorPlayer::TryGetPathableLocationWithin;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Get the current bits for the bot sense flags";
    *puVar4 = "GetSenseFlags";
    puVar4[1] = "GetSenseFlags";
    puVar4[3] = 5;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,int(CTerrorPlayer::*)(),int>::Call;
    puVar4[10] = CTerrorPlayer::GetSenseFlags;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Set the current bits for the bot sense flags - this is a SET, not an or";
    *puVar4 = "SetSenseFlags";
    puVar4[1] = "SetSenseFlags";
    puVar4[3] = 0;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 5;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,void(CTerrorPlayer::*)(int),void,int>::Call;
    puVar4[10] = CTerrorPlayer::SetSenseFlags;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Stagger a player, optionally from a vector position";
    *puVar4 = "Stagger";
    puVar4[1] = "ScriptStaggerPlayer";
    puVar4[3] = 0;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 3;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,void(CTerrorPlayer::*)(Vector),void,Vector>::
                Call;
    puVar4[10] = CTerrorPlayer::ScriptStaggerPlayer;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Make the player drop an item/weapon";
    *puVar4 = "DropItem";
    puVar4[1] = "ScriptDropItem";
    puVar4[3] = 0;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 0x1f;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,void(CTerrorPlayer::*)(char_const*),void,char_const*>
                ::Call;
    puVar4[10] = CTerrorPlayer::ScriptDropItem;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Make the player switch to an item/weapon";
    *puVar4 = "SwitchToItem";
    puVar4[1] = "ScriptSwitchToItem";
    puVar4[3] = 6;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 0x1f;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,bool(CTerrorPlayer::*)(char_const*),bool,char_const*>
                ::Call;
    puVar4[10] = CTerrorPlayer::ScriptSwitchToItem;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Returns true if falling damage is currently suppressed";
    *puVar4 = "IsSuppressingFallingDamage";
    puVar4[1] = "SuppressFallingDamage";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = CTerrorPlayer::SuppressFallingDamage;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Sets the view angles.";
    *puVar4 = "SnapEyeAngles";
    puVar4[1] = "SnapEyeAngles";
    puVar4[3] = 0;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 0x28;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    uVar2 = g_CTerrorPlayer_ScriptDesc._28_4_;
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,void(CBasePlayer::*)(QAngle_const&),void,QAngle_const&>
                ::Call;
    puVar4[10] = CBasePlayer::SnapEyeAngles;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),uVar2);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Returns whether a player is on fire";
    *puVar4 = "IsOnFire";
    puVar4[1] = "IsOnFire";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CBaseAnimating::*)(),bool>::Call;
    puVar4[10] = CBaseAnimating::IsOnFire;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Extinguish a burning player";
    *puVar4 = "Extinguish";
    puVar4[1] = "Extinguish";
    puVar4[3] = 0;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,void(CTerrorPlayer::*)(),void>::Call;
    puVar4[10] = 0x38d;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Return the last nav area occupied - NULL if unknown";
    *puVar4 = "GetLastKnownArea";
    puVar4[1] = "ScriptGetLastKnownArea";
    puVar4[3] = 0x20;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,HSCRIPT__*(CTerrorPlayer::*)(),HSCRIPT__*>::
                Call;
    puVar4[10] = CTerrorPlayer::ScriptGetLastKnownArea;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Return true if currently IT from bile";
    *puVar4 = "IsIT";
    puVar4[1] = "IsIT";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = 0x551;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Return true if adrenaline is active";
    *puVar4 = "IsAdrenalineActive";
    puVar4[1] = "IsAdrenalineActive";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = CTerrorPlayer::IsAdrenalineActive;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Return true if player is currently getting up";
    *puVar4 = "IsGettingUp";
    puVar4[1] = "IsGettingUp";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = CTerrorPlayer::IsGettingUp;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Return true if currently immobilized";
    *puVar4 = "IsImmobilized";
    puVar4[1] = "IsImmobilized";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = 0x805;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Return true if currently in combat";
    *puVar4 = "IsInCombat";
    puVar4[1] = "ScriptIsInCombat";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = CTerrorPlayer::ScriptIsInCombat;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Return true if on third-strike";
    *puVar4 = "IsOnThirdStrike";
    puVar4[1] = "IsOnThirdStrike";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = CTerrorPlayer::IsOnThirdStrike;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Get the Special Infected dominating this Survivor";
    *puVar4 = "GetSpecialInfectedDominatingMe";
    puVar4[1] = "ScriptGetSpecialInfectedDominatingMe";
    puVar4[3] = 0x20;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,HSCRIPT__*(CTerrorPlayer::*)(),HSCRIPT__*>::
                Call;
    puVar4[10] = CTerrorPlayer::ScriptGetSpecialInfectedDominatingMe;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Return true if being dominated by a Special Infected";
    *puVar4 = "IsDominatedBySpecialInfected";
    puVar4[1] = "IsDominatedBySpecialInfected";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = CTerrorPlayer::IsDominatedBySpecialInfected;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Return true if player is firing a weapon";
    *puVar4 = "IsFiringWeapon";
    puVar4[1] = "IsFiringWeapon";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = CTerrorPlayer::IsFiringWeapon;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Return true if player is staggering";
    *puVar4 = "IsStaggering";
    puVar4[1] = "IsStaggering";
    puVar4[3] = 6;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,bool(CTerrorPlayer::*)(),bool>::Call;
    puVar4[10] = CTerrorPlayer::IsStaggering;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Returns the time the character has been alive (only valid when alive)";
    *puVar4 = "GetAliveDuration";
    puVar4[1] = "GetAliveDuration";
    puVar4[3] = 1;
    puVar4[9] = CMemberScriptBinding0<CTerrorPlayer*,float(CBaseCombatCharacter::*)(),float>::Call;
    puVar4[10] = 0x4a1;
    puVar4[0xb] = 1;
    iVar3 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::
            InsertBefore((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>
                          *)(g_CTerrorPlayer_ScriptDesc + 0x10),g_CTerrorPlayer_ScriptDesc._28_4_);
    puVar4 = (undefined4 *)(iVar3 * 0x30 + g_CTerrorPlayer_ScriptDesc._16_4_);
    puVar4[2] = "Returns true if the character has ever been injured by a member of the given team";
    *puVar4 = "HasEverBeenInjured";
    puVar4[1] = "HasEverBeenInjured";
    puVar4[3] = 6;
    puVar4[6] = 1;
    if ((int)puVar4[5] < 1) {
      puVar4[5] = 1;
      if ((void *)puVar4[4] == (void *)0x0) {
        pvVar5 = malloc(4);
        puVar4[4] = pvVar5;
      }
      else {
        pvVar5 = realloc((void *)puVar4[4],4);
        puVar4[4] = pvVar5;
      }
    }
    else {
      pvVar5 = (void *)puVar4[4];
    }
    puVar4[8] = pvVar5;
    local_20[0] = 5;
    CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
              ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar4 + 4),puVar4[7],local_20);
    puVar4[9] = CMemberScriptBinding1<CTerrorPlayer*,bool(CBaseCombatCharacter::*)(int),bool,int>::
                Call;
    puVar4[10] = 0x4ad;
    puVar4[0xb] = 1;
    return (ScriptClassDesc_t *)g_CTerrorPlayer_ScriptDesc;
  }
  return (ScriptClassDesc_t *)g_CTerrorPlayer_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)