Add a language option to the VR menu, and fix a crash switching to it
build / build (push) Successful in 2m22s
build / build (push) Successful in 2m22s
- 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
This commit is contained in:
@@ -90,6 +90,21 @@ package`/`make apk` pick it up the same way either way. This one copy of
|
||||
game assets feeds both the desktop build and the Android/Quest build
|
||||
below.
|
||||
|
||||
**Note on French/German**: the GOG Enhanced Edition installer only ships
|
||||
English MFD (Multi-Function Display - the small in-game screens showing
|
||||
the map, inventory, etc.) art resources (`mfdart.res`) - it doesn't include
|
||||
`mfdfrn.res`/`mfdger.res`, which French/German need in addition to their
|
||||
own text resources (`frnstrng.res`/`gerstrng.res`, which the installer
|
||||
*does* include). Without those two files, switching to French/German (via
|
||||
`questshock.config.json`'s `general.language` or the in-headset menu's
|
||||
Language row - see [CONFIG.md](CONFIG.md)) is refused with an in-headset
|
||||
popup rather than applied, since doing so anyway used to crash the game. If
|
||||
you also own **System Shock: Classic** on gog.com (which does include both
|
||||
files), drop its offline installer into `res/assets/` alongside the
|
||||
Enhanced Edition one and `extract_assets.sh` pulls them out of it too,
|
||||
entirely optionally - it still runs fine with just the Enhanced Edition
|
||||
installer.
|
||||
|
||||
## 4. Desktop build
|
||||
|
||||
Builds and runs Questshock natively on the desktop (your dev machine, or
|
||||
|
||||
Reference in New Issue
Block a user