mirror of
https://github.com/Jous99/F4MP.git
synced 2026-01-13 00:40:53 +01:00
61 lines
1.4 KiB
C++
61 lines
1.4 KiB
C++
|
|
#include <TiltedOnlinePCH.h>
|
||
|
|
#include "TiltedOnlineApp.h"
|
||
|
|
|
||
|
|
extern std::unique_ptr<TiltedOnlineApp> g_appInstance;
|
||
|
|
|
||
|
|
#include <GameVM.h>
|
||
|
|
|
||
|
|
struct Main;
|
||
|
|
struct VMContext
|
||
|
|
{
|
||
|
|
char pad[0x680];
|
||
|
|
uint8_t inactive; // 0x680
|
||
|
|
};
|
||
|
|
|
||
|
|
TP_THIS_FUNCTION(TVMUpdate, int, VMContext, float);
|
||
|
|
TP_THIS_FUNCTION(TMainLoop, short, Main);
|
||
|
|
TP_THIS_FUNCTION(TVMDestructor, uintptr_t, void);
|
||
|
|
|
||
|
|
static TVMUpdate* VMUpdate = nullptr;
|
||
|
|
static TMainLoop* MainLoop = nullptr;
|
||
|
|
static TVMDestructor* VMDestructor = nullptr;
|
||
|
|
|
||
|
|
int TP_MAKE_THISCALL(HookVMUpdate, VMContext, float a2)
|
||
|
|
{
|
||
|
|
if (apThis->inactive == 0)
|
||
|
|
g_appInstance->Update();
|
||
|
|
|
||
|
|
return TiltedPhoques::ThisCall(VMUpdate, apThis, a2);
|
||
|
|
}
|
||
|
|
|
||
|
|
short TP_MAKE_THISCALL(HookMainLoop, Main)
|
||
|
|
{
|
||
|
|
TP_EMPTY_HOOK_PLACEHOLDER
|
||
|
|
|
||
|
|
return TiltedPhoques::ThisCall(MainLoop, apThis);
|
||
|
|
}
|
||
|
|
|
||
|
|
uintptr_t TP_MAKE_THISCALL(HookVMDestructor, void)
|
||
|
|
{
|
||
|
|
TP_EMPTY_HOOK_PLACEHOLDER
|
||
|
|
|
||
|
|
return TiltedPhoques::ThisCall(VMDestructor, apThis);
|
||
|
|
}
|
||
|
|
|
||
|
|
static TiltedPhoques::Initializer s_mainHooks(
|
||
|
|
[]()
|
||
|
|
{
|
||
|
|
POINTER_SKYRIMSE(TMainLoop, cMainLoop, 36564);
|
||
|
|
POINTER_SKYRIMSE(TVMUpdate, cVMUpdate, 53926);
|
||
|
|
POINTER_SKYRIMSE(TVMDestructor, cVMDestructor, 40412);
|
||
|
|
|
||
|
|
VMUpdate = cVMUpdate.Get();
|
||
|
|
MainLoop = cMainLoop.Get();
|
||
|
|
VMDestructor = cVMDestructor.Get();
|
||
|
|
|
||
|
|
TP_HOOK(&VMUpdate, HookVMUpdate);
|
||
|
|
TP_HOOK(&MainLoop, HookMainLoop);
|
||
|
|
TP_HOOK(&VMDestructor, HookVMDestructor);
|
||
|
|
});
|
||
|
|
|