ZombieManager::AccumulateSurvivorActiveSet
0x00a5d940 · 198 bytes · __thiscall
_ZNK13ZombieManager27AccumulateSurvivorActiveSetENS_15MobLocationTypeE15ZombieClassTypefP10CUtlVectorIP8CNavArea10CUtlMemoryIS4_iEEb
Decompiled
undefined (6 params)
/* ZombieManager::AccumulateSurvivorActiveSet(ZombieManager::MobLocationType, ZombieClassType,
float, CUtlVector<CNavArea*, CUtlMemory<CNavArea*, int> >*, bool) const */
void __thiscall
ZombieManager::AccumulateSurvivorActiveSet
(ZombieManager *this,undefined4 param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5,undefined1 param_6)
{
int iVar1;
int local_30 [8];
local_30[0] = 0;
local_30[1] = 0;
local_30[2] = 0;
local_30[3] = 0;
local_30[4] = 0;
/* try { // try from 00a5d978 to 00a5d9d2 has its CatchHandler @ 00a5da06 */
ForEachSurvivor<SurvivorCollector>((SurvivorCollector *)local_30);
iVar1 = 0;
if (0 < local_30[3]) {
do {
AccumulateSpawnAreaCollection
(this,*(int *)(local_30[0] + iVar1 * 4) + 0x30e8,param_2,param_3,param_4,param_5,
param_6,0);
iVar1 = iVar1 + 1;
} while (iVar1 < local_30[3]);
}
local_30[3] = 0;
CUtlMemory<CTerrorPlayer*,int>::Purge((CUtlMemory<CTerrorPlayer*,int> *)local_30);
local_30[4] = local_30[0];
CUtlMemory<CTerrorPlayer*,int>::Purge((CUtlMemory<CTerrorPlayer*,int> *)local_30);
return;
}
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.