diff options
Diffstat (limited to 'base/main.cpp')
-rw-r--r-- | base/main.cpp | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/base/main.cpp b/base/main.cpp index f529f3ec08..be561f9766 100644 --- a/base/main.cpp +++ b/base/main.cpp @@ -128,13 +128,13 @@ static const Plugin *detectPlugin() { printf("User picked target '%s' (gameid '%s')...\n", ConfMan.getActiveDomainName().c_str(), gameid.c_str()); printf(" Looking for a plugin supporting this gameid... "); - GameDescriptor game = EngineMan.findGame(gameid, &plugin); + PlainGameDescriptor game = EngineMan.findGame(gameid, &plugin); if (plugin == 0) { printf("failed\n"); warning("%s is an invalid gameid. Use the --list-games option to list supported gameid", gameid.c_str()); } else { - printf("%s\n Starting '%s'\n", plugin->getName(), game.description().c_str()); + printf("%s\n Starting '%s'\n", plugin->getName(), game.description); } return plugin; @@ -193,13 +193,10 @@ static Common::Error runGame(const Plugin *plugin, OSystem &system, const Common 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")) { + // If a temporary target failed to launch, remove it from the configuration manager + // so it not visible in the launcher. + // Temporary targets are created when starting games from the command line using the game id. + if (ConfMan.hasKey("id_came_from_command_line")) { ConfMan.removeGameDomain(ConfMan.getActiveDomainName().c_str()); } @@ -210,10 +207,13 @@ static Common::Error runGame(const Plugin *plugin, OSystem &system, const Common Common::String caption(ConfMan.get("description")); if (caption.empty()) { - caption = EngineMan.findGame(ConfMan.get("gameid")).description(); + PlainGameDescriptor game = EngineMan.findGame(ConfMan.get("gameid")); + if (game.description) { + caption = game.description; + } } if (caption.empty()) - caption = ConfMan.getActiveDomainName(); // Use the domain (=target) name + caption = ConfMan.getActiveDomainName(); // Use the domain (=target) name if (!caption.empty()) { system.setWindowCaption(caption.c_str()); } @@ -394,7 +394,7 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) { if (settings.contains("debuglevel")) { gDebugLevel = (int)strtol(settings["debuglevel"].c_str(), 0, 10); printf("Debuglevel (from command line): %d\n", gDebugLevel); - settings.erase("debuglevel"); // This option should not be passed to ConfMan. + settings.erase("debuglevel"); // This option should not be passed to ConfMan. } else if (ConfMan.hasKey("debuglevel")) gDebugLevel = ConfMan.getInt("debuglevel"); @@ -535,12 +535,12 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) { g_eventRec.deinit(); #endif - #if defined(UNCACHED_PLUGINS) && defined(DYNAMIC_MODULES) +#if defined(UNCACHED_PLUGINS) && defined(DYNAMIC_MODULES) // do our best to prevent fragmentation by unloading as soon as we can PluginManager::instance().unloadPluginsExcept(PLUGIN_TYPE_ENGINE, NULL, false); // reallocate the config manager to get rid of any fragmentation ConfMan.defragment(); - #endif +#endif // Did an error occur ? if (result.getCode() != Common::kNoError && result.getCode() != Common::kUserCanceled) { @@ -549,20 +549,20 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) { } // Quit unless an error occurred, or Return to launcher was requested - #ifndef FORCE_RTL +#ifndef FORCE_RTL if (result.getCode() == Common::kNoError && !g_system->getEventManager()->shouldRTL()) break; - #endif +#endif // Reset RTL flag in case we want to load another engine g_system->getEventManager()->resetRTL(); - #ifdef FORCE_RTL +#ifdef FORCE_RTL g_system->getEventManager()->resetQuit(); - #endif - #ifdef ENABLE_EVENTRECORDER +#endif +#ifdef ENABLE_EVENTRECORDER if (g_eventRec.checkForContinueGame()) { continue; } - #endif +#endif // At this point, we usually return to the launcher. However, the // game may have requested that one or more other games be "chained" |