L L4D2node

CNetChan::CNetChan

0x001b4a50 · 941 bytes · __thiscall

_ZN8CNetChanC1Ev

Decompiled

undefined (1 param)

/* CNetChan::CNetChan() */

void __thiscall CNetChan::CNetChan(CNetChan *this)

{
  netadr_s *this_00;
  
  *(undefined ***)this = &PTR_GetName_002bb9c8;
                    /* try { // try from 001b4a6b to 001b4a6f has its CatchHandler @ 001b4dfd */
  bf_write::bf_write((bf_write *)(this + 0x20));
  *(undefined4 *)(this + 0x38) = 0;
  *(undefined4 *)(this + 0x3c) = 0;
  *(undefined4 *)(this + 0x40) = 0;
                    /* try { // try from 001b4a8b to 001b4a8f has its CatchHandler @ 001b4ea5 */
  bf_write::bf_write((bf_write *)(this + 0x44));
  *(undefined4 *)(this + 0x5c) = 0;
  *(undefined4 *)(this + 0x60) = 0;
  *(undefined4 *)(this + 100) = 0;
                    /* try { // try from 001b4aab to 001b4aaf has its CatchHandler @ 001b4e86 */
  bf_write::bf_write((bf_write *)(this + 0x68));
  *(undefined4 *)(this + 0x80) = 0;
  this_00 = (netadr_s *)(this + 0x98);
  *(undefined4 *)(this + 0x84) = 0;
  *(undefined4 *)(this + 0x88) = 0;
                    /* try { // try from 001b4adf to 001b4b03 has its CatchHandler @ 001b4ea9 */
  netadr_s::SetIP(this_00,0);
  netadr_s::SetPort(this_00,0);
  netadr_s::SetType(this_00,3);
  *(undefined2 *)(this + 0x4250) = 0xffff;
  *(undefined2 *)(this + 0x4256) = 0xffff;
  *(undefined4 *)(this + 0xbc) = 0;
  *(undefined4 *)(this + 0xc0) = 0;
  *(undefined4 *)(this + 0xc4) = 0;
  *(undefined4 *)(this + 200) = 0;
  *(undefined4 *)(this + 0xcc) = 0;
  *(undefined4 *)(this + 0xd0) = 0;
  *(undefined4 *)(this + 0xd4) = 0;
  *(undefined4 *)(this + 0xd8) = 0;
  *(undefined4 *)(this + 0xdc) = 0;
  *(undefined4 *)(this + 0xe0) = 0;
  *(undefined4 *)(this + 0x540) = 0;
  *(undefined4 *)(this + 0x544) = 0;
  *(undefined4 *)(this + 0x548) = 0;
  *(undefined4 *)(this + 0x420c) = 0;
  *(undefined4 *)(this + 0x4210) = 0;
  *(undefined4 *)(this + 0x4214) = 0;
  *(undefined4 *)(this + 0x4218) = 0;
  *(undefined4 *)(this + 0x421c) = 0;
  *(code **)(this + 0x4240) = SplitPlayer_t::Less;
  *(undefined4 *)(this + 0x4244) = 0;
  *(undefined4 *)(this + 0x4248) = 0;
  *(undefined4 *)(this + 0x424c) = 0;
  *(undefined2 *)(this + 0x4252) = 0;
  *(undefined2 *)(this + 0x4254) = 0xffff;
  *(undefined4 *)(this + 0x4258) = 0;
  *(undefined4 *)(this + 0x425c) = 0;
  *(undefined4 *)(this + 0x4260) = 0;
  *(undefined4 *)(this + 0x4264) = 0;
  *(undefined4 *)(this + 17000) = 0;
  *(undefined4 *)(this + 0x426c) = 0;
  *(undefined4 *)(this + 0x4270) = 0;
  *(undefined4 *)(this + 0x4274) = 0;
  *(undefined4 *)(this + 0x4278) = 0;
  *(undefined4 *)(this + 0x427c) = 0;
  *(undefined4 *)(this + 0x4280) = 0;
                    /* try { // try from 001b4c84 to 001b4c88 has its CatchHandler @ 001b4e82 */
  SocketProcessingStats_t::SocketProcessingStats_t((SocketProcessingStats_t *)(this + 0x4284));
  *(CNetChan **)(this + 0x423c) = this;
  *(undefined4 *)(this + 0x4238) = 1;
  *(undefined4 *)(this + 0x4234) = 0x4b0;
  this[4] = (CNetChan)0x0;
  this[5] = (CNetChan)0x0;
  this[6] = (CNetChan)0x0;
  *(undefined4 *)(this + 0x8c) = 0xffffffff;
                    /* try { // try from 001b4cbc to 001b4df4 has its CatchHandler @ 001b4e0b */
  netadr_s::Clear(this_00);
  *(undefined8 *)(this + 0xa8) = 0;
  *(undefined4 *)(this + 0xa4) = 0;
  V_strncpy((char *)(this + 0x41e0),"",0x20);
  *(undefined4 *)(this + 0x4208) = 0;
  *(undefined4 *)(this + 0x4220) = 0;
  bf_write::SetDebugName((bf_write *)(this + 0x44),"netchan_t::unreliabledata");
  bf_write::SetDebugName((bf_write *)(this + 0x20),"netchan_t::reliabledata");
  *(undefined4 *)(this + 0xb0) = 10000;
  *(undefined4 *)(this + 0x4204) = 0x43960000;
  *(undefined4 *)(this + 8) = 1;
  *(undefined4 *)(this + 0xc) = 0;
  *(undefined4 *)(this + 0x10) = 0;
  *(undefined4 *)(this + 0x14) = 0;
  *(undefined4 *)(this + 0x18) = 0;
  *(undefined4 *)(this + 0x4200) = 0;
  *(undefined4 *)(this + 0x90) = 0;
  this[0x42a] = (CNetChan)0x0;
  *(undefined4 *)(this + 0x42c) = 0;
  *(undefined4 *)(this + 0x434) = 0;
  *(undefined4 *)(this + 0x438) = 0;
  *(undefined4 *)(this + 0x430) = 0;
  this[0x43c] = (CNetChan)0x0;
  *(undefined4 *)(this + 0x94) = 0x37aa0;
  *(undefined4 *)(this + 0x424) = 0;
  this[0x428] = (CNetChan)0x1;
  this[0x429] = (CNetChan)0x0;
  *(undefined4 *)(this + 0x4224) = 0;
  *(undefined4 *)(this + 0x422c) = 0;
  *(undefined4 *)(this + 0x4230) = 0;
  FlowReset(this);
  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)