build: Ninja Multi-Config, schema codegen, and the offline-mod FPS cap endpoint - #30
Open
Seltraeh wants to merge 1 commit into
Open
build: Ninja Multi-Config, schema codegen, and the offline-mod FPS cap endpoint#30Seltraeh wants to merge 1 commit into
Seltraeh wants to merge 1 commit into
Conversation
…p endpoint Replaces the Visual Studio 17 2022 generator with Ninja Multi-Config so the build works against any toolset (2022, 2026+) without pinning a platform toolset. Adds paired Debug/Release build presets. Wires the packet-generator into CMake: gimuserver/packets/all.hpp and gimuserver/archive/archive.hpp are regenerated from the KDL schemas whenever a .kdl file changes, replacing the hand-run generate.py step. standalone_frontend accepts an optional config path as argv[1] and chdirs to its parent so relative paths in config.json resolve regardless of the launch working directory. stdout is unbuffered so redirected and headless boot logs survive a crash instead of dying in the CRT block buffer. Adds OfflineModController with a single route, GET /offline_mod/fps_cap, which returns the configured render-loop cap as a bare integer. It is read by the offline-proxy render hook at startup, not by the game client; the proxy falls back to its compile-time default if the endpoint is unreachable. game_frontend/bootstrap_windows.cpp: MSVC requires __declspec(dllexport) before the return type. The __APPX__-gated block had never been compiled because debug-win64 builds STANDALONE, so the C2059 only surfaced on the first release build. vcpkg.json drops the drogon[ctl] feature. The port marks ctl as supports:"native" and vcpkg refuses to install it on x86-windows-static. drogon_ctl is a scaffolding CLI that this codebase never references. Bumps the packet-generator submodule to 1e1682e, and switches BadgeInfo to serialise ::BadgeInfoResp rather than ::BadgeInfo so the response carries the h23iRjGN dispatch key at its root. The dispatcher also now records handler exceptions into the request log alongside the existing LOG_ERROR.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
build: Ninja Multi-Config, schema codegen, and the offline-mod FPS cap endpoint
Branch:
split/01-build-structuralBase:
devBuild-system and plumbing changes only. No gameplay behaviour is touched.
What's included
Visual Studio 17 2022generator with Ninja Multi-Config, so the build no longer pins a platform toolset and works on 2022 and 2026+ alike. Adds paired Debug/Release build presets.gimuserver/packets/all.hppandgimuserver/archive/archive.hppare regenerated whenever a.kdlchanges, replacing the hand-rungenerate.py.GET /offline_mod/fps_cap, returning the configured render cap as a bare integer. Consumed by the offline-proxy render hook at startup, not by the game client; the proxy falls back to its compile-time default if unreachable.argv[1]with a chdir to its parent, so relative paths inconfig.jsonresolve regardless of launch directory. stdout unbuffered so headless/redirected boot logs survive a crash.__declspec(dllexport)before the return type. The__APPX__block had never been compiled (debug-win64 builds STANDALONE), so this C2059 only appeared on the first release build.drogon[ctl]. The port marks itsupports:"native"and vcpkg refuses it onx86-windows-static.drogon_ctlis a scaffolding CLI this codebase never calls.1e1682e.::BadgeInfoResprather than::BadgeInfo, so the response carries theh23iRjGNdispatch key at its root. Needs the wrapper struct from the submodule bump, which is why it rides along here.LOG_ERROR.Review focus
The submodule bump is the only real risk. It carries
gatcha→gacharenames, auser_level_mstfield rename toenergy, and unit KDL type corrections. Those were validated inside the combined branch — this is the first time they are compiled againstdevalone.Verification
Clean configure and build, Debug and Release.
GET /offline_mod/fps_capreturns 200 with the configured value.