diff options
-rw-r--r-- | base/gameDetector.cpp | 15 | ||||
-rw-r--r-- | common/savefile.cpp | 22 |
2 files changed, 21 insertions, 16 deletions
diff --git a/base/gameDetector.cpp b/base/gameDetector.cpp index e371cf2924..1d10138ba9 100644 --- a/base/gameDetector.cpp +++ b/base/gameDetector.cpp @@ -48,6 +48,9 @@ extern int gDebugLevel; +// For convenience, we alias kTransientDomain here +static const Common::String &kTransientDomain = Common::ConfigManager::kTransientDomain; + // DONT FIXME: DO NOT ORDER ALPHABETICALLY, THIS IS ORDERED BY IMPORTANCE/CATEGORY! :) #ifdef __PALM_OS__ @@ -187,6 +190,16 @@ GameDetector::GameDetector() { #endif #endif + // The user can override the savepath with the SCUMMVM_SAVEPATH + // environment variable. +#if !defined(MACOS_CARBON) && !defined(_WIN32_WCE) + const char *dir = getenv("SCUMMVM_SAVEPATH"); + if (dir && *dir) { + // TODO: Verify whether the path is valid + ConfMan.set("savepath", dir, kTransientDomain); + } +#endif + _dumpScripts = false; memset(&_game, 0, sizeof(_game)); @@ -291,8 +304,6 @@ GameSettings GameDetector::findGame(const String &gameName, const Plugin **plugi } -static const Common::String &kTransientDomain = Common::ConfigManager::kTransientDomain; - void GameDetector::parseCommandLine(int argc, char **argv) { int i; char *s; diff --git a/common/savefile.cpp b/common/savefile.cpp index 17468f6a80..fcf86308aa 100644 --- a/common/savefile.cpp +++ b/common/savefile.cpp @@ -39,21 +39,15 @@ const char *SaveFileManager::getSavePath() const { const char *dir = NULL; -#if !defined(MACOS_CARBON) && !defined(_WIN32_WCE) - dir = getenv("SCUMMVM_SAVEPATH"); -#endif - - // If SCUMMVM_SAVEPATH was not specified, try to use game specific savepath from config - if (!dir || dir[0] == 0) { + // Try to use game specific savepath from config + dir = ConfMan.get("savepath").c_str(); + + // Work around a bug (#999122) in the original 0.6.1 release of + // ScummVM, which would insert a bad savepath value into config files. + if (0 == strcmp(dir, "None")) { + ConfMan.removeKey("savepath", ConfMan.getActiveDomain()); + ConfMan.flushToDisk(); dir = ConfMan.get("savepath").c_str(); - - // Work around a bug (#999122) in the original 0.6.1 release of - // ScummVM, which would insert a bad savepath value into config files. - if (0 == strcmp(dir, "None")) { - ConfMan.removeKey("savepath", ConfMan.getActiveDomain()); - ConfMan.flushToDisk(); - dir = ConfMan.get("savepath").c_str(); - } } #ifdef _WIN32_WCE |