L L4D2node

GCSDK::CSchemaFull::AddTrigger

0x00089840 · 234 bytes · __thiscall

_ZN5GCSDK11CSchemaFull10AddTriggerENS_14ESchemaCatalogEPKcS3_NS_12ETriggerTypeES3_

Decompiled

undefined (6 params)

/* GCSDK::CSchemaFull::AddTrigger(GCSDK::ESchemaCatalog, char const*, char const*,
   GCSDK::ETriggerType, char const*) */

void __thiscall
GCSDK::CSchemaFull::AddTrigger
          (CSchemaFull *this,undefined4 param_2,char *param_3,char *param_4,undefined4 param_5,
          char *param_6)

{
  int in_GS_OFFSET;
  CTriggerInfo local_13c [4];
  undefined4 local_138;
  undefined4 local_134;
  char local_130 [128];
  char local_b0 [128];
  CUtlString local_30 [16];
  int local_20;
  
  local_13c[0] = (CTriggerInfo)0x0;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_138 = 0;
  CUtlString::CUtlString(local_30);
  local_138 = param_5;
  local_134 = param_2;
                    /* try { // try from 000898b9 to 00089905 has its CatchHandler @ 0008992a */
  V_strncpy(local_130,param_4,0x80);
  V_strncpy(local_b0,param_3,0x80);
  CUtlString::operator=(local_30,param_6);
  CUtlVector<GCSDK::CTriggerInfo,CUtlMemory<GCSDK::CTriggerInfo,int>>::InsertBefore
            ((CUtlVector<GCSDK::CTriggerInfo,CUtlMemory<GCSDK::CTriggerInfo,int>> *)(this + 0x14),
             *(int *)(this + 0x20),local_13c);
  CUtlMemory<unsigned_char,int>::Purge((CUtlMemory<unsigned_char,int> *)local_30);
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

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)