CTriggerMultiple::Spawn
0x00b1ec60 · 368 bytes · __thiscall
_ZN16CTriggerMultiple5SpawnEv
Decompiled
undefined (1 param)
/* CTriggerMultiple::Spawn() */
void __thiscall CTriggerMultiple::Spawn(CTriggerMultiple *this)
{
char cVar1;
char *pcVar2;
int iVar3;
float fVar4;
undefined1 local_14 [8];
CBaseTrigger::Spawn((CBaseTrigger *)this);
pcVar2 = "";
if (*(char **)(gpGlobals + 0x3c) != (char *)0x0) {
pcVar2 = *(char **)(gpGlobals + 0x3c);
}
iVar3 = _V_stricmp(pcVar2,"c5m2_park");
if (iVar3 == 0) {
if (*(char **)(this + 0x154) != "finale_decon_trigger") {
cVar1 = CBaseEntity::NameMatchesComplex((CBaseEntity *)this,"finale_decon_trigger");
if (cVar1 == '\0') goto LAB_00b1ecb9;
}
CBaseEntityOutput::DeleteAllElements((CBaseEntityOutput *)(this + 0x4f4));
(**(code **)(*(int *)this + 0x84))
(this,"OnEntireTeamEndTouch","ceda_trailer_allinside_branch,SetValueTest,0,0,-1");
}
LAB_00b1ecb9:
CBaseTrigger::InitTrigger((CBaseTrigger *)this);
if (*(float *)(this + 0x448) == 0.0) {
*(undefined4 *)(this + 0x448) = 0x3e4ccccd;
}
this[0x584] = (CTriggerMultiple)0x0;
*(code **)(this + 0xd8) = MultiTouch;
*(undefined4 *)(this + 0xdc) = 0;
if (*(int *)(this + 0x588) == 0) {
return;
}
CBaseEntity::ThinkSet((_func_void *)local_14,(float)this,(char *)TeamTouchThink);
fVar4 = 0.0;
if (*(int *)(this + 0x30) != 0) {
fVar4 = (float)((*(int *)(this + 0x30) - *(int *)(gpGlobals + 0x58) >> 4) % 10) * 0.1;
}
CBaseEntity::SetNextThink
((CBaseEntity *)this,*(float *)(gpGlobals + 0xc) + 10.0 + fVar4,(char *)0x0);
return;
}
SourceMod gamedata
paste intoaddons/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.
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.
Gamedata KeyValues
DHooks plugin example
Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.