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.

Change History (1)

comment:1 by eriktorbjorn, 3 hours ago

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:

  • It seems that "rotate_mode" is not considered in EditGameDialog::open() when determining if the checkbox for overriding graphics options should be checked or not.
  • It seems that "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.
  • I don't think the "mute" setting is considered for the volume override checkbox?
Note: See TracTickets for help on using tickets.