mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Engine: detour function CEngineAPI::OnStartup()
Allows for initializing SDK code before or after CEngineAPI::OnStartup().
This commit is contained in:
parent
7114bc6a40
commit
bc54931408
@ -97,7 +97,7 @@ bool CEngineAPI::VModInit(CEngineAPI* pEngineAPI, const char* pModName, const ch
|
||||
// Register new Pak Assets here!
|
||||
//RTech_RegisterAsset(0, 1, "", nullptr, nullptr, nullptr, CMemory(0x1660AD0A8).RCast<void**>(), 8, 8, 8, 0, 0xFFFFFFC);
|
||||
|
||||
bool results = CEngineAPI__ModInit(pEngineAPI, pModName, pGameDir);
|
||||
const bool results = CEngineAPI__ModInit(pEngineAPI, pModName, pGameDir);
|
||||
if (!IsValveMod(pModName) && !IsRespawnMod(pModName))
|
||||
{
|
||||
#ifndef DEDICATED
|
||||
@ -109,6 +109,15 @@ bool CEngineAPI::VModInit(CEngineAPI* pEngineAPI, const char* pModName, const ch
|
||||
return results;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// One-time setup, based on the initially selected mod
|
||||
//-----------------------------------------------------------------------------
|
||||
bool CEngineAPI::OnStartup(CEngineAPI* pEngineAPI, void* pInstance, const char* pStartupModName)
|
||||
{
|
||||
const bool results = CEngineAPI__OnStartup(pEngineAPI, pInstance, pStartupModName);
|
||||
return results;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Sets startup info
|
||||
//-----------------------------------------------------------------------------
|
||||
@ -297,6 +306,7 @@ void VSys_Dll2::Detour(const bool bAttach) const
|
||||
{
|
||||
DetourSetup(&CEngineAPI__Init, &CEngineAPI::VInit, bAttach);
|
||||
DetourSetup(&CEngineAPI__ModInit, &CEngineAPI::VModInit, bAttach);
|
||||
DetourSetup(&CEngineAPI__OnStartup, &CEngineAPI::OnStartup, bAttach);
|
||||
DetourSetup(&CEngineAPI__PumpMessages, &CEngineAPI::PumpMessages, bAttach);
|
||||
DetourSetup(&CEngineAPI__MainLoop, &CEngineAPI::MainLoop, bAttach);
|
||||
DetourSetup(&CEngineAPI__SetStartupInfo, &CEngineAPI::VSetStartupInfo, bAttach);
|
||||
|
@ -32,6 +32,7 @@ public:
|
||||
|
||||
static InitReturnVal_t VInit(CEngineAPI* thisp);
|
||||
static bool VModInit(CEngineAPI* pEngineAPI, const char* pModName, const char* pGameDir);
|
||||
static bool OnStartup(CEngineAPI* pEngineAPI, void* pInstance, const char* pStartupModName);
|
||||
static void VSetStartupInfo(CEngineAPI* pEngineAPI, StartupInfo_t* pStartupInfo);
|
||||
|
||||
static void PumpMessages();
|
||||
@ -49,6 +50,7 @@ inline InitReturnVal_t(*CEngineAPI__Init)(CEngineAPI* thisp);
|
||||
inline void(*CEngineAPI__Shutdown)(void);
|
||||
inline bool(*CEngineAPI__Connect)(CEngineAPI* thisptr, CreateInterfaceFn factory);
|
||||
inline bool(*CEngineAPI__ModInit)(CEngineAPI* pEngineAPI, const char* pModName, const char* pGameDir);
|
||||
inline bool(*CEngineAPI__OnStartup)(CEngineAPI* pEngineAPI, void* pInstance, const char* pStartupModName);
|
||||
inline bool(*CEngineAPI__MainLoop)(void);
|
||||
inline void(*CEngineAPI__PumpMessages)(void);
|
||||
inline void(*CEngineAPI__SetStartupInfo)(CEngineAPI* pEngineAPI, StartupInfo_t* pStartupInfo);
|
||||
@ -69,6 +71,7 @@ class VSys_Dll2 : public IDetour
|
||||
LogFunAdr("CEngineAPI::Shutdown", CEngineAPI__Shutdown);
|
||||
LogFunAdr("CEngineAPI::Connect", CEngineAPI__Connect);
|
||||
LogFunAdr("CEngineAPI::ModInit", CEngineAPI__ModInit);
|
||||
LogFunAdr("CEngineAPI::OnStartup", CEngineAPI__OnStartup);
|
||||
LogFunAdr("CEngineAPI::MainLoop", CEngineAPI__MainLoop);
|
||||
LogFunAdr("CEngineAPI::PumpMessages", CEngineAPI__PumpMessages);
|
||||
LogFunAdr("CEngineAPI::SetStartupInfo", CEngineAPI__SetStartupInfo);
|
||||
@ -85,6 +88,7 @@ class VSys_Dll2 : public IDetour
|
||||
g_GameDll.FindPatternSIMD("48 83 EC 28 48 8B 05 ?? ?? ?? ?? 48 8D 0D ?? ?? ?? ?? 48 85 C0 48 89 15").GetPtr(CEngineAPI__Connect);
|
||||
g_GameDll.FindPatternSIMD("48 83 EC 28 48 8B 0D ?? ?? ?? ?? 33 D2 48 8B 01 FF 90 ?? ?? ?? ?? B1 01").GetPtr(CEngineAPI__Shutdown);
|
||||
g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 4C 24 ?? 55 56 57 41 54 41 55 41 56 41 57 48 81 EC ?? ?? ?? ?? 4D 8B F8").GetPtr(CEngineAPI__ModInit);
|
||||
g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 74 24 ?? 57 48 81 EC ?? ?? ?? ?? 49 8B F8 48 8B DA").GetPtr(CEngineAPI__OnStartup);
|
||||
g_GameDll.FindPatternSIMD("4C 8B DC 49 89 4B 08 48 81 EC ?? ?? ?? ?? 8B 05 ?? ?? ?? ??").GetPtr(CEngineAPI__MainLoop);
|
||||
g_GameDll.FindPatternSIMD("44 88 44 24 ?? 53 55 56 57").GetPtr(v_PakFile_Init);
|
||||
g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 55 48 81 EC ?? ?? ?? ?? 45 33 C9").GetPtr(CEngineAPI__PumpMessages);
|
||||
|
Loading…
x
Reference in New Issue
Block a user