L L4D2node

CSteamAppSystemGroup::SetupSearchPaths

0x0026b490 · 322 bytes · __thiscall

_ZN20CSteamAppSystemGroup16SetupSearchPathsEPKcbb

Decompiled

undefined (4 params)

/* CSteamAppSystemGroup::SetupSearchPaths(char const*, bool, bool) */

undefined4 __thiscall
CSteamAppSystemGroup::SetupSearchPaths
          (CSteamAppSystemGroup *this,char *param_1,bool param_2,bool param_3)

{
  int iVar1;
  undefined4 uVar2;
  int in_GS_OFFSET;
  CFSMountContentInfo local_444 [4];
  char *local_440;
  IFileSystem *local_43c;
  char *local_438;
  undefined1 local_434;
  undefined1 local_433;
  undefined1 local_432;
  undefined1 local_431;
  char local_42f [515];
  char *local_22c [2];
  IFileSystem *local_224;
  int local_20;
  
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  CFSSteamSetupInfo::CFSSteamSetupInfo((CFSSteamSetupInfo *)&local_438);
  local_438 = param_1;
  local_432 = 1;
  local_434 = param_2;
  local_433 = param_3;
  local_431 = (**(code **)(**(int **)(this + 0x50) + 0x14))(*(int **)(this + 0x50));
  iVar1 = FileSystem_SetupSteamEnvironment((CFSSteamSetupInfo *)&local_438);
  if (iVar1 == 0) {
    CFSMountContentInfo::CFSMountContentInfo(local_444);
    local_43c = *(IFileSystem **)(this + 0x50);
    local_444[0] = (CFSMountContentInfo)param_3;
    local_440 = local_42f;
    iVar1 = FileSystem_MountContent(local_444);
    if (iVar1 == 0) {
      CFSSearchPathsInit::CFSSearchPathsInit((CFSSearchPathsInit *)local_22c);
      local_224 = local_43c;
      local_22c[0] = local_42f;
      iVar1 = FileSystem_LoadSearchPaths((CFSSearchPathsInit *)local_22c);
      if (iVar1 == 0) {
        FileSystem_AddSearchPath_Platform(local_43c,local_42f);
        V_strncpy((char *)(this + 0x54),local_42f,0x104);
        uVar2 = 1;
        goto LAB_0026b513;
      }
    }
  }
  uVar2 = 0;
LAB_0026b513:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return uVar2;
  }
                    /* 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)