L L4D2node

CHLTVServer::CHLTVServer

0x00172730 · 957 bytes · __thiscall

_ZN11CHLTVServerC2Ev

Decompiled

undefined (1 param)

/* CHLTVServer::CHLTVServer() */

void __thiscall CHLTVServer::CHLTVServer(CHLTVServer *this)

{
  netadr_s *this_00;
  CHLTVServer *pCVar1;
  CHLTVServer *pCVar2;
  
  *(undefined ***)this = &PTR__IGameEventListener2_002a68f8;
                    /* try { // try from 0017274b to 0017274f has its CatchHandler @ 00172aed */
  CBaseServer::CBaseServer((CBaseServer *)(this + 4));
  *(undefined ***)(this + 0x1cc) = &PTR__CClientFrameManager_002aa3a8;
                    /* try { // try from 0017278b to 0017278f has its CatchHandler @ 00172bd6 */
  CUtlMemoryPool::CUtlMemoryPool((CUtlMemoryPool *)(this + 0x1d4),0x11c,0x80,2,(char *)0x0,0);
  *(undefined ***)this = &PTR__CHLTVServer_002b2368;
  *(undefined4 *)(this + 0x1d0) = 0;
  *(undefined ***)(this + 4) = &PTR__CHLTVServer_002b2434;
  *(undefined **)(this + 0x1cc) = &DAT_002b2544;
  *(undefined ***)(this + 0x204) = &PTR__CHLTVServer_002b2554;
  *(undefined ***)(this + 0x208) = &PTR__CHLTVServer_002b258c;
                    /* try { // try from 001727d1 to 001727d5 has its CatchHandler @ 00172bd2 */
  CHLTVClientState::CHLTVClientState((CHLTVClientState *)(this + 0x214));
                    /* try { // try from 001727e2 to 001727e6 has its CatchHandler @ 00172bca */
  CHLTVDemoRecorder::CHLTVDemoRecorder((CHLTVDemoRecorder *)(this + 0x4c04));
                    /* try { // try from 001727f3 to 001727f7 has its CatchHandler @ 00172bc6 */
  CHLTVFrame::CHLTVFrame((CHLTVFrame *)(this + 0x51d0));
  this_00 = (netadr_s *)(this + 0x63a4);
                    /* try { // try from 00172809 to 0017283e has its CatchHandler @ 00172bc2 */
  netadr_s::SetIP(this_00,0);
  netadr_s::SetPort(this_00,0);
  netadr_s::SetType(this_00,3);
  CNetworkStringTableContainer::CNetworkStringTableContainer
            ((CNetworkStringTableContainer *)(this + 0x63bc));
                    /* try { // try from 00172858 to 0017285c has its CatchHandler @ 00172bbb */
  _V_memset(this + 0x63ec,0,0x2000);
  *(undefined4 *)(this + 0x63e0) = 0;
  *(undefined4 *)(this + 0x63e4) = 0;
  *(undefined4 *)(this + 0x63e8) = 0;
  *(undefined4 *)(this + 0x83ec) = 0;
  *(undefined4 *)(this + 0x83f0) = 0;
  *(undefined4 *)(this + 0x83f4) = 0;
  *(undefined4 *)(this + 0x83f8) = 0;
  *(undefined4 *)(this + 0x83fc) = 0;
                    /* try { // try from 001728b9 to 001728bd has its CatchHandler @ 00172bb4 */
  CDemoFile::CDemoFile((CDemoFile *)(this + 0x8400));
  pCVar1 = this + 0x8980;
  pCVar2 = pCVar1;
  do {
    *(undefined4 *)pCVar2 = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x8984 - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x8988 - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x898c - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x8990 - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x8994 - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x8998 - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x899c - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x89a0 - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x89a4 - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x89a8 - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x89ac - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x89b0 - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x89b4 - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x89b8 - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x89bc - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x89c0 - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x89c4 - (int)pCVar1))) = 0;
    *(undefined4 *)(this + (int)(pCVar2 + (0x89c8 - (int)pCVar1))) = 0;
    pCVar2 = pCVar2 + 0x4c;
  } while (pCVar2 != this + 0x8ab0);
  *(undefined4 *)(this + 0x110) = 0x3cf5c28f;
  *(undefined4 *)(this + 0x210) = 0;
  *(undefined4 *)(this + 0x51b4) = 0;
  *(undefined4 *)(this + 0x51b8) = 0;
  *(undefined4 *)(this + 0x51bc) = 0xffffffff;
  *(undefined4 *)(this + 0x51c0) = 0;
  *(undefined4 *)(this + 0x51c4) = 0;
  *(undefined4 *)(this + 0x51c8) = 0;
  *(undefined4 *)(this + 0x51cc) = 0;
  this[0x537c] = (CHLTVServer)0x0;
  *(undefined4 *)(this + 0x5380) = 0;
  *(undefined4 *)(this + 0x5384) = 0;
  *(undefined4 *)(this + 0x5388) = 0;
  *(undefined4 *)(this + 0x538c) = 0;
                    /* try { // try from 00172a57 to 00172a5b has its CatchHandler @ 00172afb */
  _V_memset(this + 0x5390,0,0x1000);
  *(undefined4 *)(this + 0x6390) = 0;
  *(undefined4 *)(this + 0x6394) = 0;
  *(undefined4 *)(this + 0x6398) = 0;
  *(undefined4 *)(this + 0x639c) = 0;
  *(undefined4 *)(this + 0x897c) = 0;
  this[0x8ab0] = (CHLTVServer)0x0;
  this[0x8ab1] = (CHLTVServer)0x0;
  *(undefined4 *)(this + 0x8ab4) = 0;
  *(undefined4 *)(this + 0x8ab8) = 0;
  this[0x63a0] = (CHLTVServer)0x0;
  *(CHLTVServer **)(this + 0x4c00) = this;
  *(undefined4 *)(this + 0x63b0) = 0;
  *(undefined4 *)(this + 0x63b4) = 0;
  *(undefined4 *)(this + 0x63b8) = 0;
  *(undefined4 *)(this + 0x20c) = 0x2a;
  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)