r5sdk/r5dev/engine/enginetrace.h

49 lines
1.6 KiB
C
Raw Permalink Normal View History

2022-10-13 16:48:56 +02:00
#pragma once
#include "public/engine/IEngineTrace.h"
#include "public/cmodel.h"
#include "public/trace.h"
2022-10-13 16:48:56 +02:00
#include "mathlib/mathlib.h"
class CEngineTrace : public IEngineTrace
{};
2022-10-13 16:48:56 +02:00
/* ==== CENGINETRACE ======================================================================================================================================================= */
#ifndef CLIENT_DLL
class CEngineTraceServer : public CEngineTrace
{};
inline CEngineTraceServer* g_pEngineTraceServer = nullptr;
inline CEngineTraceServer* g_pEngineTraceServerVFTable = nullptr;
#endif // CLIENT_DLL
#ifndef DEDICATED
2022-10-13 16:48:56 +02:00
class CEngineTraceClient : public CEngineTrace
{};
inline CEngineTraceClient* g_pEngineTraceClient = nullptr;
#endif // DEDICATED
2022-10-13 16:48:56 +02:00
///////////////////////////////////////////////////////////////////////////////
class VEngineTrace : public IDetour
2022-10-13 16:48:56 +02:00
{
virtual void GetAdr(void) const
{
#ifndef CLIENT_DLL
LogVarAdr("g_pEngineTraceServer", g_pEngineTraceServer);
#endif // CLIENT_DLL
#ifndef DEDICATED
LogVarAdr("g_pEngineTraceClient", g_pEngineTraceClient);
#endif // DEDICATED
}
2022-10-13 16:48:56 +02:00
virtual void GetFun(void) const { }
virtual void GetVar(void) const { }
virtual void GetCon(void) const
{
#ifndef CLIENT_DLL
g_pEngineTraceServerVFTable = g_GameDll.GetVirtualMethodTable(".?AVCEngineTraceServer@@").RCast<CEngineTraceServer*>();
g_pEngineTraceServer = reinterpret_cast<CEngineTraceServer*>(&g_pEngineTraceServerVFTable); // Must be done for virtual calls.
#endif // CLIENT_DLL
}
virtual void Detour(const bool bAttach) const { }
2022-10-13 16:48:56 +02:00
};
///////////////////////////////////////////////////////////////////////////////