#include #include #include #include #include #include #include void App::Restart(std::vector restartArgs) { os::process::StartProcess(os::process::GetExecutablePath(), restartArgs, os::process::GetWorkingDirectory()); Exit(); } void App::Exit() { Config::Save(); #ifdef _WIN32 timeEndPeriod(1); #endif std::_Exit(0); } // CApplication::Ctor PPC_FUNC_IMPL(__imp__sub_824EB490); PPC_FUNC(sub_824EB490) { App::s_isInit = true; App::s_isMissingDLC = !Installer::checkAllDLC(GetGamePath()); App::s_language = Config::Language; __imp__sub_824EB490(ctx, base); } // CApplication::Update PPC_FUNC_IMPL(__imp__sub_822C1130); PPC_FUNC(sub_822C1130) { // Correct small delta time errors. if (Config::FPS >= FPS_MIN && Config::FPS < FPS_MAX) { double targetDeltaTime = 1.0 / Config::FPS; if (abs(ctx.f1.f64 - targetDeltaTime) < 0.00001) ctx.f1.f64 = targetDeltaTime; } App::s_deltaTime = ctx.f1.f64; SDL_PumpEvents(); SDL_FlushEvents(SDL_FIRSTEVENT, SDL_LASTEVENT); GameWindow::Update(); AudioPatches::Update(App::s_deltaTime); __imp__sub_822C1130(ctx, base); }