The initial install, and all subsequent updates were always looking for prereleases. But the prerelease checks were also bugged so it grabbed the latest release. Now this has been fixed, the bug became apparent. Now defaulted to latest (non-prerelease). Also only toggle update view if the game is installed. Also added an error message if 'SDKLauncher_WriteLocalManifest()' fails
* Fix bug regarding searching for prerelease builds, prerelease was assumed to be always at the top but this isn't true.
* Make the prerelease toggle button check for updates instantly.
* Automatically launch the game after the update has finished.
The game will now not be installed if the download fails (this should've never happened in the first place). The CPU usage fix should also fix download speed throttling.
If depot vector is empty, the SDK launcher will download all files in depot json, but still use the depot vector as the count for how many packages instead of the depot json array.
Raise privileges so its more likely to being able to terminate the launcher process, also continue if TerminateProcess fails, as there could be a race condition between TerminateProcess and ExitProcess (called from launcher). We just want to make sure launcher is fully closed before proceeding to replace it.
- check if game is running, and if so, warn and discard update/install request.
- check if launcher instance is running, and if so, not create another one but instead move focus to existing one
- periodic update checks and update installations
The installer is now capable of fully installing r5reloaded and itself! Download code has been temporarily commented for debugging with local cached files.
Compiled to 'game/bin/', current purpose is to just replace launcher.exe after update as launcher.exe is the main updater, but needs to be killed to update itself.
* Moved dedicated server command line parameter init to 'init.cpp'.
* Registered 'SV_Main' on the client, this is engine code (lower level 'local' server wrappers).
* Disabled registration of Weapon_Bolt, although this is shared game code, this particular file is only used for the SERVER at this moment.
* Added the '-noserverdll' command lien parameter to instruct our loader.dll to load the client.dll instead.
* Adjusted the loader and sdklauncher project to support the loading of client.dll.
Some of its defines were located in the 'launcher' library directory, but it only contained defines for the SDK launcher, this has been moved to 'sdklauncher_const.h'. Also renamed the 'launcher_pch.h' PCH to 'sdklauncher_pch.h' to avoid confusion with 'launcher' and 'sdklauncher'.
- Added missing implementation for 'numworkerthreads' text box.
- Swapped 'single-core server' toggle with 'processor affinity' text box.
- Performed additional light code cleanup.
The single-core dedi cvar now only gets set when 1 bit is set in the affinity mask, as that implies single core usage.
Since the SDK loader (loader.dll) is taking care of loading the DLL with the process, the SDK launcher no longer needs to inject it. Replaced call 'DetourCreateProcessWithDllsA' with 'CreateProcessA', and performed additional cleanup
Previously, it was all controlled from the global init (applied to all projects), but some projects need different options. With these changes, you can disable the common options applied in the 'add_module' macro, and set your own if desired.
Treat them as errors globally. Most of the time a warning is a bug, or problem in code that could be solved in a different (better) manner. Thirdparty code have this disabled. The warnings as errors option can be globally disabled through the CMake GUI, but this is not recommended.
Use the 'add_module' macro to add modules without creating duplicate code. This macro also takes a reuse PCH as parameter, so modules that need a precompiled header, could reuse those from different targets that compile them. This commit also restructures the group order of the generated solution files for easier code navigation.