ClientPrecachePrecache::CResourcePrecacher::Cache
0x0063f2e0 · 972 bytes · __thiscall
_ZN22ClientPrecachePrecache18CResourcePrecacher5CacheEP16IPrecacheHandlerbP16ResourceList_t__b
Decompiled
undefined (5 params)
/* ClientPrecachePrecache::CResourcePrecacher::Cache(IPrecacheHandler*, bool, ResourceList_t__*,
bool) */
void __thiscall
ClientPrecachePrecache::CResourcePrecacher::Cache
(CResourcePrecacher *this,IPrecacheHandler *param_1,bool param_2,ResourceList_t__ *param_3
,bool param_4)
{
(*(code *)**(undefined4 **)param_1)(param_1,2,"cable/cable.vmt",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,2,"cable/cable_lit.vmt",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,2,"cable/chain.vmt",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,2,"cable/rope.vmt",param_2,param_3,0);
if ((!param_4) &&
((*(int *)(g_Language._28_4_ + 0x30) != 1 ||
((*(code *)**(undefined4 **)param_1)(param_1,2,"models/germangibs.mdl",param_2,param_3,0),
*(int *)(g_Language._28_4_ + 0x30) != 1)))) {
(*(code *)**(undefined4 **)param_1)(param_1,2,"models/gibs/hgibs.mdl",param_2,param_3,0);
}
(*(code *)**(undefined4 **)param_1)(param_1,3,"Player.FallDamage",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Player.Swim",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Player.PickupWeapon",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Player.DenyWeaponSelection",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Player.WeaponSelected",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Player.WeaponSelectionClose",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Player.WeaponSelectionMoveSlot",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Bounce.Glass",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Bounce.Metal",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Bounce.Flesh",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Bounce.Wood",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Bounce.Shrapnel",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Bounce.ShotgunShell",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Bounce.Shell",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"Bounce.Concrete",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"BaseEntity.EnterWater",param_2,param_3,0);
(*(code *)**(undefined4 **)param_1)(param_1,3,"BaseEntity.ExitWater",param_2,param_3,0);
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.