L L4D2node

CTerrorPlayer::GetMusicIntensity

0x004f0660 · 128 bytes · __thiscall

_ZNK13CTerrorPlayer17GetMusicIntensityEv

Decompiled

undefined (1 param)

/* CTerrorPlayer::GetMusicIntensity() const */

longdouble __thiscall CTerrorPlayer::GetMusicIntensity(CTerrorPlayer *this)

{
  char cVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  
  uVar4 = *(uint *)(this + 12000);
  cVar1 = (**(code **)(*(int *)this + 300))(this);
  if ((cVar1 == '\0') || (iVar2 = CBaseEntity::GetTeamNumber((CBaseEntity *)this), iVar2 != 2)) {
    uVar4 = 0;
  }
  if (this[0x39f1] != (CTerrorPlayer)0x0) {
    uVar4 = 0x3f800000;
  }
  uVar3 = -(uint)(0.0 <= *(float *)(MusicIntensityOverride._28_4_ + 0x2c));
  return (longdouble)
         (float)(~uVar3 & uVar4 | (uint)*(float *)(MusicIntensityOverride._28_4_ + 0x2c) & uVar3);
}

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)