aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjörn Andersson2010-11-28 17:26:27 +0000
committerTorbjörn Andersson2010-11-28 17:26:27 +0000
commit1857076d76d8bde59bf6b47fe49c32ba6c462c10 (patch)
tree7920ff256173a2c35016083369638763be377cca
parentbed8c34a87512282e582dc7ee5471e9f5a94d6c7 (diff)
downloadscummvm-rg350-1857076d76d8bde59bf6b47fe49c32ba6c462c10.tar.gz
scummvm-rg350-1857076d76d8bde59bf6b47fe49c32ba6c462c10.tar.bz2
scummvm-rg350-1857076d76d8bde59bf6b47fe49c32ba6c462c10.zip
MAIN: Fix --gfx-mode regression
We cannot check for supported graphics mode until after the backend has been initialised, or there won't be a graphics manager to ask. svn-id: r54534
-rw-r--r--base/commandLine.cpp13
-rw-r--r--base/main.cpp19
2 files changed, 19 insertions, 13 deletions
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index b1610feb2e..36218376c8 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -383,19 +383,6 @@ Common::String parseCommandLine(Common::StringMap &settings, int argc, const cha
END_OPTION
DO_OPTION('g', "gfx-mode")
- // Check whether 'option' specifies a valid graphics mode.
- bool isValid = false;
- if (!scumm_stricmp(option, "normal") || !scumm_stricmp(option, "default"))
- isValid = true;
- if (!isValid) {
- const OSystem::GraphicsMode *gm = g_system->getSupportedGraphicsModes();
- while (gm->name && !isValid) {
- isValid = !scumm_stricmp(gm->name, option);
- gm++;
- }
- }
- if (!isValid)
- usage("Unrecognized graphics mode '%s'", option);
END_OPTION
DO_OPTION_INT('m', "music-volume")
diff --git a/base/main.cpp b/base/main.cpp
index 2958dea283..c6fffe5ce3 100644
--- a/base/main.cpp
+++ b/base/main.cpp
@@ -372,6 +372,25 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) {
// the command line params) was read.
system.initBackend();
+ // If we received an invalid graphics mode parameter via command line
+ // we check this here. We can't do it until after the backend is inited,
+ // or there won't be a graphics manager to ask for the supported modes.
+
+ if (settings.contains("gfx-mode")) {
+ const OSystem::GraphicsMode *gm = g_system->getSupportedGraphicsModes();
+ Common::String option = settings["gfx-mode"];
+ bool isValid = false;
+
+ while (gm->name && !isValid) {
+ isValid = !scumm_stricmp(gm->name, option.c_str());
+ gm++;
+ }
+ if (!isValid) {
+ warning("Unrecognized graphics mode '%s'. Switching to default mode", option.c_str());
+ settings["gfx-mode"] = "default";
+ }
+ }
+
setupGraphics(system);
// Init the different managers that are used by the engines.