L L4D2node

GCSDK::CSchema::BSetFieldData

0x0008d2a0 · 200 bytes · __thiscall

_ZN5GCSDK7CSchema13BSetFieldDataEPviPhjPb

Decompiled

undefined (6 params)

/* GCSDK::CSchema::BSetFieldData(void*, int, unsigned char*, unsigned int, bool*) */

undefined4 __thiscall
GCSDK::CSchema::BSetFieldData
          (CSchema *this,void *param_1,int param_2,uchar *param_3,uint param_4,bool *param_5)

{
  uint uVar1;
  undefined4 uVar2;
  uint uVar3;
  uint *puVar4;
  
  *param_5 = false;
  puVar4 = (uint *)(param_2 * 0x118 + *(int *)(this + 0x88));
  if (*puVar4 < 2) {
    uVar2 = BSetVarField(this,param_1,(VarField_t *)((int)param_1 + puVar4[0x45]),param_3,param_4,
                         param_5,true);
  }
  else {
    uVar3 = puVar4[1];
    uVar2 = 0;
    uVar1 = puVar4[0x45];
    if (param_4 <= uVar3) {
      if (param_4 != 0) {
        _V_memcpy((void *)((int)param_1 + uVar1),param_3,param_4);
        uVar3 = puVar4[1];
      }
      uVar2 = 1;
      if (param_4 < uVar3) {
        _V_memset((void *)(param_4 + (int)((int)param_1 + uVar1)),0,uVar3 - param_4);
        return 1;
      }
    }
  }
  return uVar2;
}

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)