aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2004-12-30 21:48:22 +0000
committerMax Horn2004-12-30 21:48:22 +0000
commitacd1f910d5d5f8a8bbeb6fc953afdf5a1ece404c (patch)
tree2b01a2336bd1df3d1900f74c5c759179abc65db7
parent75f31d28c97492fbf73826fe6eb3f600875e8ea0 (diff)
downloadscummvm-rg350-acd1f910d5d5f8a8bbeb6fc953afdf5a1ece404c.tar.gz
scummvm-rg350-acd1f910d5d5f8a8bbeb6fc953afdf5a1ece404c.tar.bz2
scummvm-rg350-acd1f910d5d5f8a8bbeb6fc953afdf5a1ece404c.zip
Handle SCUMMVM_SAVEPATH exactly like the command line option --savepath (but the command line option has higher priority); i.e. it's affecting the config system (see also bug #1045171)
svn-id: r16391
-rw-r--r--base/gameDetector.cpp15
-rw-r--r--common/savefile.cpp22
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