L L4D2node

MsgData::MsgData

0x0022cf90 · 675 bytes · __thiscall

_ZN7MsgDataC2Ev

Decompiled

undefined (1 param)

/* MsgData::MsgData() */

void __thiscall MsgData::MsgData(MsgData *this)

{
  bf_write *this_00;
  bf_write *this_01;
  
  this_00 = (bf_write *)(this + 0x298);
  *(undefined4 *)(this + 0x228) = 0;
  *(undefined4 *)(this + 0x22c) = 0;
  *(undefined4 *)(this + 0x230) = 0;
  *(undefined4 *)(this + 0x234) = 0;
  *(undefined4 *)(this + 0x238) = 0;
  *(undefined4 *)(this + 0x23c) = 0;
  *(undefined4 *)(this + 0x240) = 0;
  *(undefined4 *)(this + 0x244) = 0;
  *(undefined4 *)(this + 0x248) = 0;
  *(undefined4 *)(this + 0x24c) = 0;
  this[0x250] = (MsgData)0x0;
  *(undefined4 *)(this + 0x254) = 0;
  *(undefined4 *)(this + 600) = 0;
  *(undefined4 *)(this + 0x25c) = 0;
  *(undefined4 *)(this + 0x260) = 0;
  this[0x220] = (MsgData)0x1;
  *(undefined4 *)(this + 0x224) = 0;
  *(undefined ***)(this + 0x21c) = &PTR__SVC_EntityMessage_002a2008;
  this[0x278] = (MsgData)0x0;
  *(undefined4 *)(this + 0x274) = 0;
  *(undefined4 *)(this + 0x27c) = 0xffffffff;
  *(undefined4 *)(this + 0x280) = 0;
                    /* try { // try from 0022d078 to 0022d07c has its CatchHandler @ 0022d233 */
  bf_write::bf_write(this_00);
  this_01 = (bf_write *)(this + 0x328);
  this[0x220] = (MsgData)0x0;
  *(undefined4 *)(this + 700) = 0;
  *(undefined4 *)(this + 0x2c0) = 0;
  *(undefined4 *)(this + 0x2c4) = 0;
  *(undefined4 *)(this + 0x2c8) = 0;
  *(undefined4 *)(this + 0x2cc) = 0;
  *(undefined4 *)(this + 0x2d0) = 0;
  *(undefined4 *)(this + 0x2d4) = 0;
  *(undefined4 *)(this + 0x2d8) = 0;
  *(undefined4 *)(this + 0x2dc) = 0;
  *(undefined4 *)(this + 0x2e0) = 0;
  this[0x2e4] = (MsgData)0x0;
  *(undefined4 *)(this + 0x2e8) = 0;
  *(undefined4 *)(this + 0x2ec) = 0;
  *(undefined4 *)(this + 0x2f0) = 0;
  *(undefined4 *)(this + 0x2f4) = 0;
  this[0x2b4] = (MsgData)0x1;
  *(undefined4 *)(this + 0x2b8) = 0;
  *(undefined ***)(this + 0x2b0) = &PTR__SVC_UserMessage_002a1be8;
  this[0x308] = (MsgData)0x0;
  *(undefined4 *)(this + 0x304) = 0;
  *(undefined4 *)(this + 0x30c) = 0xffffffff;
  *(undefined4 *)(this + 0x310) = 0;
                    /* try { // try from 0022d160 to 0022d175 has its CatchHandler @ 0022d26a */
  bf_write::bf_write(this_01);
  CUtlString::CUtlString((CUtlString *)(this + 0x340));
  this[0x2b4] = (MsgData)0x0;
  *(undefined4 *)(this + 0x200) = 0;
  this[0x204] = (MsgData)0x0;
  *(undefined4 *)(this + 0x20c) = 0;
  this[0x210] = (MsgData)0x0;
  *(undefined4 *)(this + 0x214) = 0xffffffff;
  *(undefined4 *)(this + 0x218) = 0;
  *(undefined4 *)(this + 0x208) = 0;
                    /* try { // try from 0022d1e2 to 0022d22a has its CatchHandler @ 0022d245 */
  bf_write::StartWriting(this_00,this + 0x100,0x100,0,-1);
  bf_write::SetDebugName(this_00,"s_MsgData.entityMsg.m_DataOut");
  bf_write::StartWriting(this_01,this,0x100,0,-1);
  bf_write::SetDebugName(this_01,"s_MsgData.userMsg.m_DataOut");
  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)