"engineid" isn't present on all games. Games that predate the "engineid"
feature and haven't been run since it was introduced don't have it yet.
Fixes bug #13038
I would get an assert(!domName.empty()) whenever I use the ingame GMM sound settings, since that commit tries to remove keys even from the default/empty domain
When the subtitle toggle controls are disabled for a game, don't
read the value and then set config values based on it.
This caused "Override global audio settings" to always set "subtitles"
and "mute_speech" even when the controls were disabled.
Fixes bug #13007 where "Override global audio settings" always
mutes the speech clips in Hoyle4.
We used to have different charsets depending on the language and
a different set of fonts for each one. So themes could support
some language and not others depending on the fonts it contained.
Now all languages are using UTF-32, except English. So the only
case that can fail is when not using English and the Theme does
not have TTF fonts.
Now that we can get an accurate HiDPI screen scaling from OSystem,
defaulting to using that seems to make sense. But we may still want
to use a slightly different scaling. The GUI scale option allows
that by providing a scaling (in percentage) with which to multiply
the HiDPI scaling.
I think it works better than a base resolution as it avoids having
the GUI getting bigger or smaller when we resize the window.
This commit keeps a popup widget, but this could be changed with
a slider if we want more fine grain control.
This bumps the theme version.
The primary target is Android where a user may navigate to a location
where there is no read permission which leads to them being stuck.
This option has no effect on those native browse dialogs that do not
use the "browser_lastpath" config setting. Particularly, macOS is
not affected.
OSystem now just returns a nullptr if there is no text to speech manager instance
(because none is compiled into the binary, or the system doesn't provide support
for it). This removed the need for the engine authors to add scummvm osystem compile
time options checks into their engine code
Dropbox is switching to short-lived access_token OAuth. This commit adapts Cloud::DropboxStorage to use refresh_token similarly to how other Storages do: by introducing a DropboxTokenRefresher.
It is used instead of plain CurlJsonRequest. It just checks if received JSON has access_token-related error and tries to refresh it, then repeats the original request transparently for the caller. If no such errors found, it just passes the info to the caller.