L L4D2node

CFogController::CFogController

0x006a9230 · 214 bytes · __thiscall

_ZN14CFogControllerC1Ev

Decompiled

undefined (1 param)

/* CFogController::CFogController() */

void __thiscall CFogController::CFogController(CFogController *this)

{
  fogparams_t *this_00;
  
  this_00 = (fogparams_t *)(this + 0x440);
  CBaseEntity::CBaseEntity((CBaseEntity *)this,false);
  *(undefined ***)this = &PTR__CFogController_00c882a8;
                    /* try { // try from 006a925a to 006a9309 has its CatchHandler @ 006a9316 */
  fogparams_t::fogparams_t(this_00);
  *(undefined ***)(this + 0x440) = &PTR_NetworkStateChanged_00c88268;
  if (this[0x48c] != (CFogController)0x0) {
    NetworkVar_m_fog::NetworkStateChanged(this_00);
    this[0x48c] = (CFogController)0x0;
  }
  if (*(float *)(this + 0x46c) != 1.0) {
    (**(code **)(*(int *)(this + 0x440) + 4))(this_00,this + 0x46c);
    *(undefined4 *)(this + 0x46c) = 0x3f800000;
  }
  if (*(float *)(this + 0x490) == 1.0) {
    return;
  }
  (**(code **)(*(int *)(this + 0x440) + 4))(this_00,this + 0x490);
  *(undefined4 *)(this + 0x490) = 0x3f800000;
  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)