Adding support for a configuration file
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# Persistent configuration (`questshock.config.json`)
|
||||
|
||||
QuestShock can load a persistent, human-editable configuration file at
|
||||
startup, in addition to (and independent of) the engine's own `prefs.txt`.
|
||||
|
||||
- **Location**: `/sdcard/questshock/questshock.config.json` - the same
|
||||
folder you already copy `res/data`/`res/sound` into (see README.md
|
||||
section 5.1).
|
||||
- **Format**: plain JSON, grouped by concern. Each top-level key is a
|
||||
*group*; each key inside a group is one *option*.
|
||||
- **Loading**: read automatically at app startup, before the splash screen,
|
||||
if the file exists. If it doesn't exist, nothing changes - the engine
|
||||
behaves exactly as it did before this file existed (driven by `prefs.txt`
|
||||
as usual).
|
||||
- **Saving**: never automatic. In-headset, open the menu (controller menu
|
||||
button) and press **Save Configuration** to write the file from your
|
||||
current live settings, overwriting it if present. Press **Load
|
||||
Configuration** to re-read the file and apply it without restarting the
|
||||
app.
|
||||
- **Live vs. restart-required**: every option below is tagged as either
|
||||
*live-appliable* (applying it while already playing takes effect
|
||||
immediately) or *restart-required*. Pressing **Load Configuration**
|
||||
applies every live-appliable change straight away; if the file also
|
||||
changes something restart-required, a dialog lists exactly which
|
||||
option(s) need it and offers:
|
||||
- **Dismiss** - keep playing with the live-appliable changes already
|
||||
applied; the restart-required option(s) stay as they were.
|
||||
- **Restart Now** - relaunches the app, which re-runs this same startup
|
||||
load and so applies every group in the file, including the
|
||||
restart-required ones.
|
||||
|
||||
(Both options currently documented below are live-appliable, so this
|
||||
dialog won't actually appear yet - it's built in for options added in a
|
||||
future version that do need a restart.)
|
||||
- Unrecognized groups/keys are ignored (harmless if you're editing the file
|
||||
in advance for a future version). An invalid value for a *specific*
|
||||
option (see each option's possible values below) is logged and that one
|
||||
option is skipped - every other valid option in the file still applies.
|
||||
A file that isn't valid JSON at all is ignored entirely, with nothing
|
||||
applied.
|
||||
- `questshock.config.json` and `prefs.txt` are fully independent - loading
|
||||
or saving one never reads or writes the other.
|
||||
|
||||
## Example
|
||||
|
||||
```json
|
||||
{
|
||||
"video_options": {
|
||||
"renderer": "opengl",
|
||||
"resolution": "1024x768"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Video Options (`video_options`)
|
||||
|
||||
### `renderer`
|
||||
|
||||
Which renderer the game uses to draw the 3D view.
|
||||
|
||||
- **Type**: enum
|
||||
- **Possible values**: `"software"`, `"opengl"`
|
||||
- **Restart required?**: No (live-appliable)
|
||||
|
||||
### `resolution`
|
||||
|
||||
The game's internal rendering resolution.
|
||||
|
||||
- **Type**: enum
|
||||
- **Possible values**: `"320x200"`, `"320x400"`, `"640x400"`, `"640x480"`, `"1024x768"`
|
||||
- **Restart required?**: No (live-appliable)
|
||||
Reference in New Issue
Block a user