L L4D2node

CollisionBSPData_Load

0x00124560 · 473 bytes · __cdecl

_Z21CollisionBSPData_LoadPKcP17CCollisionBSPDataP9texinfo_si

Decompiled

undefined (4 params)

/* CollisionBSPData_Load(char const*, CCollisionBSPData*, texinfo_s*, int) */

undefined4
CollisionBSPData_Load(char *param_1,CCollisionBSPData *param_2,texinfo_s *param_3,int param_4)

{
  undefined4 uVar1;
  undefined4 in_stack_ffffffe0;
  
  uVar1 = 0x60;
  V_strncpy((char *)(param_2 + 4),param_1,0x60);
  if (g_pPhysics2ResourceManager != (int *)0x0) {
    in_stack_ffffffe0 =
         (**(code **)(*g_pPhysics2ResourceManager + 0x58))(g_pPhysics2ResourceManager);
    (**(code **)(*g_pPhysics2ResourceManager + 0x54))
              (g_pPhysics2ResourceManager,param_1,uVar1,in_stack_ffffffe0);
  }
                    /* try { // try from 001245bb to 00124713 has its CatchHandler @ 00124739 */
  COM_TimestampedLog("  CollisionBSPData_LoadTextures");
  CollisionBSPData_LoadTextures(param_2);
  COM_TimestampedLog("  CollisionBSPData_LoadTexinfo");
  CollisionBSPData_LoadTexinfo(param_2,param_3,param_4);
  COM_TimestampedLog("  CollisionBSPData_LoadLeafs");
  CollisionBSPData_LoadLeafs(param_2);
  COM_TimestampedLog("  CollisionBSPData_LoadLeafBrushes");
  CollisionBSPData_LoadLeafBrushes(param_2);
  COM_TimestampedLog("  CollisionBSPData_LoadPlanes");
  CollisionBSPData_LoadPlanes(param_2);
  COM_TimestampedLog("  CollisionBSPData_LoadBrushes");
  CollisionBSPData_LoadBrushes(param_2);
  COM_TimestampedLog("  CollisionBSPData_LoadBrushSides");
  CollisionBSPData_LoadBrushSides(param_2,param_3,param_4);
  COM_TimestampedLog("  CollisionBSPData_LoadSubmodels");
  CollisionBSPData_LoadSubmodels(param_2);
  COM_TimestampedLog("  CollisionBSPData_LoadPlanes");
  CollisionBSPData_LoadNodes(param_2);
  COM_TimestampedLog("  CollisionBSPData_LoadAreas");
  CollisionBSPData_LoadAreas(param_2);
  COM_TimestampedLog("  CollisionBSPData_LoadAreaPortals");
  CollisionBSPData_LoadAreaPortals(param_2);
  COM_TimestampedLog("  CollisionBSPData_LoadVisibility");
  CollisionBSPData_LoadVisibility(param_2);
  COM_TimestampedLog("  CollisionBSPData_LoadEntityString");
  CollisionBSPData_LoadEntityString(param_2);
  COM_TimestampedLog("  CollisionBSPData_LoadPhysics");
  CollisionBSPData_LoadPhysics(param_2);
  COM_TimestampedLog("  CollisionBSPData_LoadDispInfo");
  CollisionBSPData_LoadDispInfo(param_2,param_3,param_4);
  COM_TimestampedLog("  CollisionBSPData_LoadPhysLevel");
  CollisionBSPData_LoadPhysLevel(param_2);
  CollisionBSPData_LoadPropCollision(param_2);
  if (g_pPhysics2ResourceManager != (int *)0x0) {
    (**(code **)(*g_pPhysics2ResourceManager + 0x54))(g_pPhysics2ResourceManager,in_stack_ffffffe0);
  }
  return 1;
}

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)