[Scheduler] Fix errors
This commit is contained in:
parent
fe6cb2d737
commit
7dbfdb8a79
@ -213,7 +213,7 @@ namespace Components
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Invocation handler
|
// Invocation handler
|
||||||
QuickPatch::OnReady(ConnectProtocol::Invocation);
|
Scheduler::OnReady(ConnectProtocol::Invocation);
|
||||||
|
|
||||||
ConnectProtocol::InstallProtocol();
|
ConnectProtocol::InstallProtocol();
|
||||||
ConnectProtocol::EvaluateProtocol();
|
ConnectProtocol::EvaluateProtocol();
|
||||||
|
@ -572,7 +572,7 @@ namespace Components
|
|||||||
|
|
||||||
if (Dedicated::IsEnabled() && !ZoneBuilder::IsEnabled())
|
if (Dedicated::IsEnabled() && !ZoneBuilder::IsEnabled())
|
||||||
{
|
{
|
||||||
Dedicated::OnFrame(Console::RefreshStatus);
|
Scheduler::OnFrame(Console::RefreshStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Code below is not necessary when performing unit tests!
|
// Code below is not necessary when performing unit tests!
|
||||||
|
@ -380,7 +380,7 @@ namespace Components
|
|||||||
Utils::Hook(0x60BFBF, Dedicated::PostInitializationStub, HOOK_JUMP).install()->quick();
|
Utils::Hook(0x60BFBF, Dedicated::PostInitializationStub, HOOK_JUMP).install()->quick();
|
||||||
|
|
||||||
// Transmit custom data
|
// Transmit custom data
|
||||||
Dedicated::OnFrame([]()
|
Scheduler::OnFrame([]()
|
||||||
{
|
{
|
||||||
static std::uint64_t LastUpdate = 0;
|
static std::uint64_t LastUpdate = 0;
|
||||||
|
|
||||||
@ -396,7 +396,7 @@ namespace Components
|
|||||||
#ifdef USE_LEGACY_SERVER_LIST
|
#ifdef USE_LEGACY_SERVER_LIST
|
||||||
|
|
||||||
// Heartbeats
|
// Heartbeats
|
||||||
Dedicated::OnFrame([] ()
|
Scheduler::OnFrame([] ()
|
||||||
{
|
{
|
||||||
static int LastHeartbeat = 0;
|
static int LastHeartbeat = 0;
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ namespace Components
|
|||||||
Dvar::RegistrationSignal();
|
Dvar::RegistrationSignal();
|
||||||
|
|
||||||
// Name watcher
|
// Name watcher
|
||||||
Renderer::OnFrame([] ()
|
Scheduler::OnFrame([] ()
|
||||||
{
|
{
|
||||||
static std::string lastValidName = "Unknown Soldier";
|
static std::string lastValidName = "Unknown Soldier";
|
||||||
std::string name = Dvar::Var("name").get<char*>();
|
std::string name = Dvar::Var("name").get<char*>();
|
||||||
|
@ -640,7 +640,7 @@ namespace Components
|
|||||||
|
|
||||||
UIFeeder::Add(61.0f, Friends::GetFriendCount, Friends::GetFriendText, Friends::SelectFriend);
|
UIFeeder::Add(61.0f, Friends::GetFriendCount, Friends::GetFriendText, Friends::SelectFriend);
|
||||||
|
|
||||||
QuickPatch::OnShutdown([]()
|
Scheduler::OnShutdown([]()
|
||||||
{
|
{
|
||||||
Friends::ClearPresence("iw4x_server");
|
Friends::ClearPresence("iw4x_server");
|
||||||
Friends::ClearPresence("iw4x_playing");
|
Friends::ClearPresence("iw4x_playing");
|
||||||
|
@ -1003,7 +1003,7 @@ namespace Components
|
|||||||
|
|
||||||
Command::Add("delayReconnect", [](Command::Params*)
|
Command::Add("delayReconnect", [](Command::Params*)
|
||||||
{
|
{
|
||||||
Renderer::OnDelay([]()
|
Scheduler::OnDelay([]()
|
||||||
{
|
{
|
||||||
Command::Execute("closemenu popup_reconnectingtoparty", false);
|
Command::Execute("closemenu popup_reconnectingtoparty", false);
|
||||||
Command::Execute("reconnect", false);
|
Command::Execute("reconnect", false);
|
||||||
@ -1077,7 +1077,7 @@ namespace Components
|
|||||||
// Allow hiding specific smodels
|
// Allow hiding specific smodels
|
||||||
Utils::Hook(0x50E67C, Maps::HideModelStub, HOOK_CALL).install()->quick();
|
Utils::Hook(0x50E67C, Maps::HideModelStub, HOOK_CALL).install()->quick();
|
||||||
|
|
||||||
Renderer::OnFrame([]()
|
Scheduler::OnFrame([]()
|
||||||
{
|
{
|
||||||
Game::GfxWorld*& gameWorld = *reinterpret_cast<Game::GfxWorld**>(0x66DEE94);
|
Game::GfxWorld*& gameWorld = *reinterpret_cast<Game::GfxWorld**>(0x66DEE94);
|
||||||
if (!Game::CL_IsCgameInitialized() || !gameWorld || !Dvar::Var("r_listSModels").get<bool>()) return;
|
if (!Game::CL_IsCgameInitialized() || !gameWorld || !Dvar::Var("r_listSModels").get<bool>()) return;
|
||||||
|
@ -405,7 +405,7 @@ namespace Components
|
|||||||
// Send deadline when shutting down
|
// Send deadline when shutting down
|
||||||
if (Dedicated::IsEnabled())
|
if (Dedicated::IsEnabled())
|
||||||
{
|
{
|
||||||
QuickPatch::OnShutdown([] ()
|
Scheduler::OnShutdown([] ()
|
||||||
{
|
{
|
||||||
if (Dvar::Var("sv_lanOnly").get<bool>()) return;
|
if (Dvar::Var("sv_lanOnly").get<bool>()) return;
|
||||||
|
|
||||||
|
@ -271,7 +271,7 @@ namespace Components
|
|||||||
Party::Connect(Party::Container.target);
|
Party::Connect(Party::Container.target);
|
||||||
});
|
});
|
||||||
|
|
||||||
Renderer::OnFrame([] ()
|
Scheduler::OnFrame([] ()
|
||||||
{
|
{
|
||||||
if (Party::Container.valid)
|
if (Party::Container.valid)
|
||||||
{
|
{
|
||||||
|
@ -334,8 +334,6 @@ namespace Components
|
|||||||
Utils::Hook::Set<char*>(0x60B279, CLIENT_CONFIG);
|
Utils::Hook::Set<char*>(0x60B279, CLIENT_CONFIG);
|
||||||
Utils::Hook::Set<char*>(0x60BBD4, CLIENT_CONFIG);
|
Utils::Hook::Set<char*>(0x60BBD4, CLIENT_CONFIG);
|
||||||
|
|
||||||
Utils::Hook(0x4D697A, QuickPatch::ShutdownStub, HOOK_CALL).install()->quick();
|
|
||||||
|
|
||||||
// Disable profile system
|
// Disable profile system
|
||||||
// Utils::Hook::Nop(0x60BEB1, 5); // GamerProfile_InitAllProfiles - Causes an error, when calling a harrier killstreak.
|
// Utils::Hook::Nop(0x60BEB1, 5); // GamerProfile_InitAllProfiles - Causes an error, when calling a harrier killstreak.
|
||||||
// Utils::Hook::Nop(0x60BEB8, 5); // GamerProfile_LogInProfile
|
// Utils::Hook::Nop(0x60BEB8, 5); // GamerProfile_LogInProfile
|
||||||
@ -657,7 +655,7 @@ namespace Components
|
|||||||
|
|
||||||
// Constantly draw the mini console
|
// Constantly draw the mini console
|
||||||
Utils::Hook::Set<BYTE>(0x412A45, 0xEB);
|
Utils::Hook::Set<BYTE>(0x412A45, 0xEB);
|
||||||
Renderer::OnFrame([] ()
|
Scheduler::OnFrame([] ()
|
||||||
{
|
{
|
||||||
if (*reinterpret_cast<Game::Font**>(0x62E4BAC))
|
if (*reinterpret_cast<Game::Font**>(0x62E4BAC))
|
||||||
{
|
{
|
||||||
|
@ -15,14 +15,28 @@ namespace Components
|
|||||||
Scheduler::FrameOnceSignal.connect(callback);
|
Scheduler::FrameOnceSignal.connect(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Scheduler::OnShutdown(Utils::Slot<Scheduler::Callback> callback)
|
||||||
|
{
|
||||||
|
Scheduler::ShutdownSignal.connect(callback);
|
||||||
|
}
|
||||||
|
|
||||||
void Scheduler::OnFrame(Utils::Slot<Scheduler::Callback> callback)
|
void Scheduler::OnFrame(Utils::Slot<Scheduler::Callback> callback)
|
||||||
{
|
{
|
||||||
Scheduler::FrameSignal.connect(callback);
|
Scheduler::FrameSignal.connect(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Scheduler::OnReady(Utils::Slot<Scheduler::Callback> callback)
|
||||||
|
{
|
||||||
|
if (Scheduler::ReadyPassed) Scheduler::Once(callback);
|
||||||
|
else Scheduler::ReadySignal.connect(callback);
|
||||||
|
}
|
||||||
|
|
||||||
void Scheduler::ReadyHandler()
|
void Scheduler::ReadyHandler()
|
||||||
{
|
{
|
||||||
if (!FastFiles::Ready()) Scheduler::Once(Scheduler::ReadyHandler);
|
if (!FastFiles::Ready())
|
||||||
|
{
|
||||||
|
Scheduler::Once(Scheduler::ReadyHandler);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Scheduler::ReadyPassed = true;
|
Scheduler::ReadyPassed = true;
|
||||||
@ -69,15 +83,30 @@ namespace Components
|
|||||||
signal();
|
signal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Scheduler::ShutdownStub(int num)
|
||||||
|
{
|
||||||
|
Scheduler::ShutdownSignal();
|
||||||
|
Utils::Hook::Call<void(int)>(0x46B370)(num);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Scheduler::Scheduler()
|
Scheduler::Scheduler()
|
||||||
{
|
{
|
||||||
Scheduler::ReadyPassed = false;
|
Scheduler::ReadyPassed = false;
|
||||||
Scheduler::Once(Scheduler::ReadyHandler);
|
Scheduler::Once(Scheduler::ReadyHandler);
|
||||||
|
|
||||||
|
Utils::Hook(0x4D697A, Scheduler::ShutdownStub, HOOK_CALL).install()->quick();
|
||||||
}
|
}
|
||||||
|
|
||||||
Scheduler::~Scheduler()
|
Scheduler::~Scheduler()
|
||||||
{
|
{
|
||||||
Scheduler::FrameOnceSignal.clear();
|
Scheduler::ReadySignal.clear();
|
||||||
|
Scheduler::ShutdownSignal.clear();
|
||||||
|
|
||||||
Scheduler::FrameSignal.clear();
|
Scheduler::FrameSignal.clear();
|
||||||
|
Scheduler::FrameOnceSignal.clear();
|
||||||
|
Scheduler::DelayedSlots.clear();
|
||||||
|
|
||||||
|
Scheduler::ReadyPassed = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,5 +37,7 @@ namespace Components
|
|||||||
|
|
||||||
static void ReadyHandler();
|
static void ReadyHandler();
|
||||||
static void DelaySignal();
|
static void DelaySignal();
|
||||||
|
|
||||||
|
static void ShutdownStub(int num);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -853,7 +853,7 @@ namespace Components
|
|||||||
|
|
||||||
// This is placed here in case the anticheat has been disabled!
|
// This is placed here in case the anticheat has been disabled!
|
||||||
#if !defined(DEBUG) && !defined(DISABLE_ANTICHEAT) && defined(PROCTECT_PROCESS)
|
#if !defined(DEBUG) && !defined(DISABLE_ANTICHEAT) && defined(PROCTECT_PROCESS)
|
||||||
Scheduler::OnFrame(AntiCheat::ReadIntegrityCheck);
|
if(!Dedicated::IsEnabled() && !ZoneBuilder::IsEnabled()) Scheduler::OnFrame(AntiCheat::ReadIntegrityCheck);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,7 +157,7 @@ namespace Components
|
|||||||
WinToastLib::WinToast::instance()->initialize();
|
WinToastLib::WinToast::instance()->initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
QuickPatch::OnReady([]()
|
Scheduler::OnReady([]()
|
||||||
{
|
{
|
||||||
Scheduler::OnFrame(Toast::Handler);
|
Scheduler::OnFrame(Toast::Handler);
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user