L L4D2node

CGameClient::CGameClient

0x001eabc0 · 337 bytes · __thiscall

_ZN11CGameClientC1EiP11CBaseServer

Decompiled

undefined (3 params)

/* CGameClient::CGameClient(int, CBaseServer*) */

void __thiscall CGameClient::CGameClient(CGameClient *this,int param_1,CBaseServer *param_2)

{
  int iVar1;
  CGameClient *pCVar2;
  byte bVar3;
  
  bVar3 = 0;
  CBaseClient::CBaseClient((CBaseClient *)this);
  *(undefined ***)(this + 0x1d704) = &PTR__CClientFrameManager_002aa3a8;
                    /* try { // try from 001eac0f to 001eac13 has its CatchHandler @ 001ead11 */
  CUtlMemoryPool::CUtlMemoryPool((CUtlMemoryPool *)(this + 0x1d70c),0x11c,0x80,2,(char *)0x0,0);
  *(undefined ***)this = &PTR__CGameClient_002bff48;
  *(undefined4 *)(this + 0x1d708) = 0;
  *(undefined ***)(this + 4) = &PTR__CGameClient_002c0098;
  *(undefined ***)(this + 8) = &PTR__CGameClient_002c0158;
  *(undefined **)(this + 0x1d704) = &DAT_002c01a4;
  *(undefined4 *)(this + 0x1d740) = 0;
  *(undefined4 *)(this + 0x1d744) = 0;
  *(undefined4 *)(this + 0x1d754) = 0;
  *(undefined4 *)(this + 0x1d758) = 0;
  *(undefined4 *)(this + 0x1d75c) = 0;
  *(undefined4 *)(this + 0x1d760) = 0;
  *(undefined4 *)(this + 0x1d764) = 0;
  pCVar2 = this + 0x219e4;
  for (iVar1 = 0x40; iVar1 != 0; iVar1 = iVar1 + -1) {
    *(undefined4 *)pCVar2 = 0;
    pCVar2 = pCVar2 + (uint)bVar3 * -8 + 4;
  }
                    /* try { // try from 001eac96 to 001eac9a has its CatchHandler @ 001ead23 */
  Clear(this);
  this[0x1f8a8] = (CGameClient)0x0;
  *(undefined4 *)(this + 0x1d76c) = 0;
  *(int *)(this + 0x30) = param_1;
  *(int *)(this + 0x34) = param_1 + 1;
  *(CBaseServer **)(this + 0xb8) = param_2;
  memset(this + 0x1f8ac,0,0x2138);
  *(CGameClient **)(this + 0x218b4) = this + 0x219e4;
  *(undefined4 *)(this + 0x21ae4) = 0xbf800000;
  *(undefined8 *)(this + 0x21ae8) = 0xbff0000000000000;
  *(undefined4 *)(this + 0x21af0) = 0;
  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)