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 intoaddons/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.
Signatures + Functions block. The plugin uses
DHookCreateFromConf - DHooks reads return type, this-type,
calling convention, and argument types straight from the gamedata. Less
boilerplate in the plugin, types travel with the gamedata.
Gamedata KeyValues
DHooks plugin example
Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.