From 8e4b31f5220d73a211a2e822c27989fd96b65030 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Wed, 20 May 2009 21:00:52 +0000 Subject: Fix bug #1544799: "ALL: Engine creates launcher entry when failing to launch" svn-id: r40745 --- base/main.cpp | 11 +++++++++++ engines/advancedDetector.cpp | 12 ++++++++++++ 2 files changed, 23 insertions(+) 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); -- cgit v1.2.3