r5sdk/r5dev/vphysics/physics_collide.h
Kawe Mazidjatari a8074b4c99 VPhysics: add CPhysicsCollision singleton
Used for CStudioVCollide::~CStudioVCollide().
2024-04-05 17:26:16 +02:00

45 lines
1.3 KiB
C++

//=============================================================================//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef PHYSICS_COLLIDE_H
#define PHYSICS_COLLIDE_H
#include "vphysics/vphysics_interface.h"
class CPhysicsCollision : public IPhysicsCollision
{
public:
// Class implemented in engine!
};
extern CPhysicsCollision* g_pPhysicsCollision;
// Physics collision singleton accessor.
IPhysicsCollision* PhysicsCollision();
///////////////////////////////////////////////////////////////////////////////
class VPhysicsCollide : public IDetour
{
virtual void GetAdr(void) const
{
LogVarAdr("g_PhysicsCollision", g_pPhysicsCollision);
}
virtual void GetFun(void) const { }
virtual void GetVar(void) const
{
// Unfortunately can't obtain it via interface system; have to get it this way...
g_GameDll.FindPatternSIMD("40 53 48 83 EC 20 48 83 3D ?? ?? ?? ?? ?? 48 8B D9 75 08 32 C0 48 83 C4 20 5B C3 48 8D 05 ?? ?? ?? ??")
.FindPatternSelf("48 8D 05", CMemory::Direction::DOWN, 512, 3).ResolveRelativeAddressSelf(0x3, 0x7).GetPtr(g_pPhysicsCollision);
}
virtual void GetCon(void) const { }
virtual void Detour(const bool bAttach) const { };
};
///////////////////////////////////////////////////////////////////////////////
#endif // PHYSICS_COLLIDE_H