CNavMesh::CheckObstacles
0x00725cb0 · 130 bytes · __thiscall
_ZN8CNavMesh14CheckObstaclesEP8CNavNodeiiii
Decompiled
undefined (6 params)
/* CNavMesh::CheckObstacles(CNavNode*, int, int, int, int) */
bool __thiscall
CNavMesh::CheckObstacles
(CNavMesh *this,CNavNode *param_1,int param_2,int param_3,int param_4,int param_5)
{
bool bVar1;
bVar1 = 1 < param_3 || 1 < param_2;
if (1 >= param_3 && 1 >= param_2) {
return true;
}
if ((((param_4 < 1) || (*(float *)(param_1 + 0x34) <= 18.0)) &&
((param_5 < 1 || (*(float *)(param_1 + 0x28) <= 18.0)))) &&
((param_2 + -1 <= param_4 || (*(float *)(param_1 + 0x2c) <= 18.0)))) {
if (param_5 < param_3 + -1) {
bVar1 = *(float *)(param_1 + 0x30) <= 18.0;
}
return bVar1;
}
return false;
}
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.