mirror of
https://github.com/ineedbots/cod2m.git
synced 2025-04-20 16:25:42 +00:00
Scheduler works
This commit is contained in:
parent
fbeca33cfb
commit
2be8cd138c
@ -43,7 +43,7 @@ namespace Components
|
||||
|
||||
void Scheduler::ReadyHandler()
|
||||
{
|
||||
if (!false)
|
||||
if (!*Game::isDvarSystemActive)
|
||||
{
|
||||
Scheduler::Once(Scheduler::ReadyHandler);
|
||||
}
|
||||
@ -55,7 +55,7 @@ namespace Components
|
||||
}
|
||||
}
|
||||
|
||||
void Scheduler::FrameHandler()
|
||||
void Scheduler::FrameHandler([[maybe_unused]]bool isRenderer)
|
||||
{
|
||||
Scheduler::DelaySignal();
|
||||
Scheduler::FrameSignal();
|
||||
@ -95,10 +95,11 @@ namespace Components
|
||||
signal();
|
||||
}
|
||||
|
||||
void Scheduler::ShutdownStub(int num)
|
||||
void Scheduler::ShutdownStub(const char* str)
|
||||
{
|
||||
Scheduler::ShutdownSignal();
|
||||
//Utils::Hook::Call<void(int)>(0x46B370)(num);
|
||||
|
||||
Game::Com_Printf(str);
|
||||
}
|
||||
|
||||
void Scheduler::OnFrameAsync(Utils::Slot<Scheduler::Callback> callback)
|
||||
@ -111,13 +112,20 @@ namespace Components
|
||||
Scheduler::AsyncFrameOnceSignal.connect(callback);
|
||||
}
|
||||
|
||||
void Scheduler::GameFrameStub()
|
||||
{
|
||||
FrameHandler();
|
||||
|
||||
Game::Com_DedicatedModified();
|
||||
}
|
||||
|
||||
Scheduler::Scheduler()
|
||||
{
|
||||
Scheduler::ReadyPassed = false;
|
||||
Scheduler::Once(Scheduler::ReadyHandler);
|
||||
|
||||
// hook frames,
|
||||
//Utils::Hook(0x4D697A, Scheduler::ShutdownStub, HOOK_CALL).install()->quick();
|
||||
Utils::Hook(0x4326C5, Scheduler::ShutdownStub, HOOK_CALL).install()->quick();
|
||||
Utils::Hook(0x43503D, Scheduler::GameFrameStub, HOOK_CALL).install()->quick();
|
||||
|
||||
if (!Loader::IsPerformingUnitTests())
|
||||
{
|
||||
|
@ -21,8 +21,6 @@ namespace Components
|
||||
static void OnFrameAsync(Utils::Slot<Callback> callback);
|
||||
static void OnceAsync(Utils::Slot<Callback> callback);
|
||||
|
||||
static void FrameHandler();
|
||||
|
||||
private:
|
||||
class DelayedSlot
|
||||
{
|
||||
@ -49,6 +47,10 @@ namespace Components
|
||||
static void ReadyHandler();
|
||||
static void DelaySignal();
|
||||
|
||||
static void ShutdownStub(int num);
|
||||
static void ShutdownStub(const char*);
|
||||
|
||||
static void GameFrameStub();
|
||||
|
||||
static void FrameHandler(bool = 0);
|
||||
};
|
||||
}
|
||||
|
@ -34,6 +34,10 @@ namespace Game
|
||||
GScr_LoadGameTypeScript_t* GScr_LoadGameTypeScript;
|
||||
G_LoadStructs_t* G_LoadStructs;
|
||||
Sys_Milliseconds_t* Sys_Milliseconds;
|
||||
Com_Printf_t* Com_Printf;
|
||||
Com_DedicatedModified_t* Com_DedicatedModified;
|
||||
|
||||
char* isDvarSystemActive;
|
||||
|
||||
bool IsDedicated()
|
||||
{
|
||||
@ -48,8 +52,12 @@ namespace Game
|
||||
GScr_LoadGameTypeScript = ASSIGN(GScr_LoadGameTypeScript_t*, 0x503F90);
|
||||
G_LoadStructs = ASSIGN(G_LoadStructs_t*, 0x5118A0);
|
||||
Sys_Milliseconds = ASSIGN(Sys_Milliseconds_t*, 0x435200);
|
||||
Com_Printf = ASSIGN(Com_Printf_t*, 0x431EE0);
|
||||
Com_DedicatedModified = ASSIGN(Com_DedicatedModified_t*, 0x434DC0);
|
||||
|
||||
|
||||
isDvarSystemActive = ASSIGN(char*, 0xC5C5C8);
|
||||
|
||||
cls = ASSIGN(clientStatic_t*, 0x68A408);
|
||||
svs = ASSIGN(serverStatic_t*, 0xD35700);
|
||||
sv = ASSIGN(server_t*, 0xCD6180);
|
||||
|
@ -8,6 +8,8 @@ namespace Game
|
||||
void Init(GAMEEXE);
|
||||
bool IsDedicated();
|
||||
|
||||
extern char* isDvarSystemActive;
|
||||
|
||||
extern clientStatic_t* cls;
|
||||
extern serverStatic_t* svs;
|
||||
extern server_t* sv;
|
||||
@ -46,6 +48,12 @@ namespace Game
|
||||
typedef int (Sys_Milliseconds_t)();
|
||||
extern Sys_Milliseconds_t* Sys_Milliseconds;
|
||||
|
||||
typedef void (Com_DedicatedModified_t)();
|
||||
extern Com_DedicatedModified_t* Com_DedicatedModified;
|
||||
|
||||
typedef void(Com_Printf_t)(const char *, ...);
|
||||
extern Com_Printf_t* Com_Printf;
|
||||
|
||||
extern unsigned int Scr_GetFunctionHandle(char*, const char*);
|
||||
extern __int16 Scr_ExecThread(int);
|
||||
extern void RemoveRefToObject(int);
|
||||
|
Loading…
x
Reference in New Issue
Block a user