L L4D2node

CCSGameRules::BroadcastSound

0x00436090 · 132 bytes · __thiscall

_ZN12CCSGameRules14BroadcastSoundEPKci

Decompiled

undefined (3 params)

/* CCSGameRules::BroadcastSound(char const*, int) */

void __thiscall CCSGameRules::BroadcastSound(CCSGameRules *this,char *param_1,int param_2)

{
  CTeam *pCVar1;
  undefined **local_2c [8];
  
  CRecipientFilter::CRecipientFilter((CRecipientFilter *)local_2c);
  local_2c[0] = &PTR__CBroadcastRecipientFilter_00c09928;
                    /* try { // try from 004360b0 to 004360b4 has its CatchHandler @ 00436114 */
  CRecipientFilter::AddAllPlayers((CRecipientFilter *)local_2c);
                    /* try { // try from 004360b8 to 004360fd has its CatchHandler @ 00436126 */
  CRecipientFilter::MakeReliable((CRecipientFilter *)local_2c);
  if (param_2 != -1) {
    CRecipientFilter::RemoveAllRecipients((CRecipientFilter *)local_2c);
    pCVar1 = (CTeam *)GetGlobalTeam(param_2);
    CRecipientFilter::AddRecipientsByTeam((CRecipientFilter *)local_2c,pCVar1);
  }
  UserMessageBegin((IRecipientFilter *)local_2c,"SendAudio");
  MessageWriteString(param_1);
  MessageEnd();
  local_2c[0] = &PTR__CBroadcastRecipientFilter_00c09928;
  CRecipientFilter::~CRecipientFilter((CRecipientFilter *)local_2c);
  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)