L L4D2node

CStaticPropMgr::DrawStaticProps_FastPipeline

0x001e64d0 · 302 bytes · __thiscall

_ZN14CStaticPropMgr28DrawStaticProps_FastPipelineEPP17IClientRenderablePK20RenderableInstance_tib

Decompiled

undefined (5 params)

/* WARNING: Type propagation algorithm not settling */
/* CStaticPropMgr::DrawStaticProps_FastPipeline(IClientRenderable**, RenderableInstance_t const*,
   int, bool) */

void __thiscall
CStaticPropMgr::DrawStaticProps_FastPipeline
          (CStaticPropMgr *this,IClientRenderable **param_1,RenderableInstance_t *param_2,
          int param_3,bool param_4)

{
  IClientRenderable *pIVar1;
  int iVar2;
  int local_a020;
  int local_a01c [4];
  undefined2 uStack_a00c;
  IClientRenderable aIStack_a00a [40954];
  
  if (param_3 < 0x801) {
    local_a020 = 0;
    if (param_3 < 1) goto LAB_001e6596;
  }
  else {
    DrawStaticProps_FastPipeline(this,param_1 + 0x800,param_2,param_3 + -0x800,param_4);
    param_3 = 0x800;
  }
  iVar2 = 0;
  local_a020 = 0;
  do {
    pIVar1 = param_1[iVar2] + -4;
    if (param_1[iVar2] == (IClientRenderable *)0x0) {
      pIVar1 = (IClientRenderable *)0x0;
    }
    if (*(int *)(pIVar1 + 0x28) != 0) {
      local_a01c[local_a020 * 5] = (int)(pIVar1 + 0x6c);
      local_a01c[local_a020 * 5 + 1] = *(int *)(pIVar1 + 0x28);
      (&uStack_a00c)[local_a020 * 10] = *(undefined2 *)(pIVar1 + 0x2e);
      aIStack_a00a[local_a020 * 0x14] = pIVar1[0x3a];
      local_a01c[local_a020 * 5 + 3] = (int)(pIVar1 + 0xb8);
      local_a01c[local_a020 * 5 + 2] = (int)(pIVar1 + 4);
      aIStack_a00a[local_a020 * 0x14 + 1] = *(IClientRenderable *)(param_2 + iVar2);
      local_a020 = local_a020 + 1;
    }
    iVar2 = iVar2 + 1;
  } while (iVar2 < param_3);
LAB_001e6596:
  (**(code **)(*(int *)modelrender + 0x54))(modelrender,local_a01c,local_a020,param_4);
  return;
}

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)