L L4D2node

CPhysicsProp::IsPotentiallyAbleToObstructNavAreas

0x007e65a0 · 203 bytes · __thiscall

_ZNK12CPhysicsProp35IsPotentiallyAbleToObstructNavAreasEv

Decompiled

undefined (1 param)

/* CPhysicsProp::IsPotentiallyAbleToObstructNavAreas() const */

bool __thiscall CPhysicsProp::IsPotentiallyAbleToObstructNavAreas(CPhysicsProp *this)

{
  int *piVar1;
  longdouble lVar2;
  float local_24;
  float local_20;
  float local_1c;
  float local_18;
  float local_14;
  float local_10;
  
  if (((this[0x1b6] != (CPhysicsProp)0x0) && ((*(ushort *)(this + 0x1b4) & 4) == 0)) &&
     (piVar1 = *(int **)(this + 0x238), piVar1 != (int *)0x0)) {
    lVar2 = (longdouble)(**(code **)(*piVar1 + 0x78))(piVar1);
    if (100.0 < (float)lVar2) {
      CCollisionProperty::CollisionAABBToWorldAABB
                ((CCollisionProperty *)(this + 0x194),(Vector *)(this + 0x19c),
                 (Vector *)(this + 0x1a8),(Vector *)&local_24,(Vector *)&local_18);
      return 324.0 < (local_10 - local_1c) * (local_10 - local_1c) +
                     (local_18 - local_24) * (local_18 - local_24) +
                     (local_14 - local_20) * (local_14 - local_20);
    }
  }
  return false;
}

SourceMod gamedata

paste into addons/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.



        

        

          

Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.

Return-type handling cheatsheet (DHookReturn)