Opened 5 hours ago
Last modified 3 hours ago
#15518 new defect
GUI: Game Options dialog can create inconsistent settings
Reported by: | eriktorbjorn | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | GUI |
Version: | Keywords: | ||
Cc: | Game: |
Description
This bug report grew out of https://bugs.scummvm.org/ticket/15457
When overriding settings, the Game Options dialog is a bit inconsistent about what it saves and what it doesn't when overriding settings. For instance, "speech_mute"
is always saved, but "subtitles"
is only saved if the setting has been changed. Which could lead to the following scenario:
Start with the global setting for voice/speech as "Subtitles", i.e. the [scummvm] section will have
subtitles=true speech_mute=true
Add agame, overriding the Audio settings, but do not touch the Speech/Subtitles setting. The game will now have:
speech_mute=true
Because, as stated above, the speech_mute setting is always saved, even if subtitles is not.
Change the global setting to "Speech". The global options are now:
subtitles=false speech_mute=false
And the game settings are still
speech_mute=true
When you start the game, technically it will have neither speech nor subtitles. The game engine may compensate for that (it appears SCI does, at ethe very least). When editing the game settings, ScummVM will complain but recover:
WARNING: Wrong configuration: Both subtitles and speech are off. Assuming subtitles only!
So the situation isn't as bad as it could be. But it still seems wrong that you can change the overriden settings by changing the global settings. It seems to me that if you've selected to override, it should save the current state of all those settings as game specific.
Now, I'm a bit fuzzy on how it's all supposed to work. It seems that at least sometimes, non-overridden settings are indicated with a different text color, or something?
Should we save all overridden settings, or should we only change the ones that changed? It seems we're doing something in between.
Some things I did notice:
"rotate_mode"
is not considered inEditGameDialog::open()
when determining if the checkbox for overriding graphics options should be checked or not."output_rate"
is considered when determining if the checkbox for overriding audio settings should be checked or not, even though we don't have a visible setting for it."mute"
setting is considered for the volume override checkbox?