aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2009-05-20 21:00:52 +0000
committerEugene Sandulenko2009-05-20 21:00:52 +0000
commit8e4b31f5220d73a211a2e822c27989fd96b65030 (patch)
treed56c46b59165289fd79f038a3c5406cab05a1a32
parent43f58b2869f97c055f56aa14f6eb4153d272b2b3 (diff)
downloadscummvm-rg350-8e4b31f5220d73a211a2e822c27989fd96b65030.tar.gz
scummvm-rg350-8e4b31f5220d73a211a2e822c27989fd96b65030.tar.bz2
scummvm-rg350-8e4b31f5220d73a211a2e822c27989fd96b65030.zip
Fix bug #1544799: "ALL: Engine creates launcher entry when failing to launch"
svn-id: r40745
-rw-r--r--base/main.cpp11
-rw-r--r--engines/advancedDetector.cpp12
2 files changed, 23 insertions, 0 deletions
diff --git a/base/main.cpp b/base/main.cpp
index 1c14e20f76..e45af96c12 100644
--- a/base/main.cpp
+++ b/base/main.cpp
@@ -144,6 +144,17 @@ static Common::Error runGame(const EnginePlugin *plugin, OSystem &system, const
ConfMan.getActiveDomainName().c_str(),
dir.getPath().c_str()
);
+
+ // Autoadded is set only when no path was provided and
+ // the game is run from command line.
+ //
+ // Thus, we remove this garbage entry
+ //
+ // Fixes bug #1544799
+ if (ConfMan.hasKey("autoadded")) {
+ ConfMan.removeGameDomain(ConfMan.getActiveDomainName().c_str());
+ }
+
return err;
}
diff --git a/engines/advancedDetector.cpp b/engines/advancedDetector.cpp
index 11747b26a2..8b752cac85 100644
--- a/engines/advancedDetector.cpp
+++ b/engines/advancedDetector.cpp
@@ -244,6 +244,18 @@ Common::Error AdvancedMetaEngine::createInstance(OSystem *syst, Engine **engine)
path = ConfMan.get("path");
} else {
path = ".";
+
+ // This situation may happen only when game was
+ // launched from a command line with wrong target and
+ // no path was provided.
+ //
+ // A dummy entry will get created and will keep game path
+ // We mark this entry, so it will not be added to the
+ // config file.
+ //
+ // Fixes bug #1544799
+ ConfMan.set("autoadded", "true");
+
warning("No path was provided. Assuming the data files are in the current directory");
}
Common::FSNode dir(path);