CEngineSoundServer::EmitSentenceByIndex
0x001578d0 · 227 bytes · __thiscall
_ZN18CEngineSoundServer19EmitSentenceByIndexER16IRecipientFilteriiif12soundlevel_tiiPK6VectorS5_P10CUtlVectorIS3_10CUtlMemoryIS3_iEEbfi
Decompiled
undefined (15 params)
/* CEngineSoundServer::EmitSentenceByIndex(IRecipientFilter&, int, int, int, float, soundlevel_t,
int, int, Vector const*, Vector const*, CUtlVector<Vector, CUtlMemory<Vector, int> >*, bool,
float, int) */
void __thiscall
CEngineSoundServer::EmitSentenceByIndex
(CEngineSoundServer *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,
int param_4,undefined4 param_5,undefined4 param_7,undefined4 param_8,undefined4 param_9,
undefined4 param_10,undefined4 param_11,undefined4 param_12,undefined1 param_13,
undefined4 param_14,undefined4 param_15)
{
int in_GS_OFFSET;
char local_28 [8];
int local_20;
local_20 = *(int *)(in_GS_OFFSET + 0x14);
if (-1 < param_4) {
V_snprintf(local_28,8,"!%d",param_4);
EmitSoundInternal(this,param_1,param_2,param_3,local_28,param_5,param_7,param_8,param_9,param_10
,param_11,param_12,param_13,param_14,param_15);
}
if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
return;
}
/* WARNING: Subroutine does not return */
__stack_chk_fail();
}
SourceMod gamedata
paste intoaddons/sourcemod/gamedata/<your_plugin>.txt
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.
Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.