- New "Language" row on the Main Menu tab (English/French/German),
backed by a new "general" group in questshock.config.json
- Fixes a device-reproduced crash: switching language used to call
language_dealfunc(), whose render_run()/opanel_redraw() repaint
assumes the game's own in-game options panel is on screen - crashes
(SIGSEGV) when triggered from our independent VR overlay instead.
Now calls language_change() directly, which is all that's actually
needed to reload resources and refresh the inventory/MFD/side-icon UI
- Fixes a second crash: this data set ships frnstrng.res/gerstrng.res
but not mfdfrn.res/mfdger.res, and language_change() closes the
current resource files before discovering the new ones don't exist -
leaving no valid resource file open and crashing on the next lookup.
Now checks both files exist before ever switching, refusing the
change (with an in-headset popup) instead of corrupting resource state
- extract_assets.sh can now also pull mfdfrn.res/mfdger.res out of a
System Shock: Classic installer (which includes them, unlike Enhanced
Edition) if one is present in res/assets/ - entirely optional
- Documented all of the above in README.md/CONFIG.md
dependency (SDL2, SDL2_mixer, fluidsynth-lite, a MIDI soundfont)
prebuilt, so compiling the engine needs no network access - just the
image and the engine source. Add res/assets/extract_assets.sh to pull
the game's data files out of a purchased GOG installer, and a Makefile
that assembles a runnable dist/ from the two.
Also add `make package`, which builds a redistributable tarball that
omits the proprietary game assets (shipping res/GET_ASSETS.txt instead)
plus license information for both the MIT tooling and the GPLv3 engine,
and a Gitea Actions workflow that builds and publishes it to
dl.ladkau.de on every push.