diff --git a/base/engine.cpp b/base/engine.cpp index 7660fbcfd49..d791ffe50ca 100644 --- a/base/engine.cpp +++ b/base/engine.cpp @@ -70,9 +70,7 @@ const char *Engine::getSavePath() const { if (!dir || dir[0] == 0) dir = ConfMan.get("savepath").c_str(); - // If no save path was specified, use no directory prefix - if (dir == NULL) - dir = ""; + assert(dir); return dir; #endif diff --git a/base/gameDetector.cpp b/base/gameDetector.cpp index ffb02072a51..e59727d45d4 100644 --- a/base/gameDetector.cpp +++ b/base/gameDetector.cpp @@ -117,6 +117,7 @@ GameDetector::GameDetector() { // Game specifc ConfMan.registerDefault("path", ""); + ConfMan.registerDefault("savepath", ""); // ConfMan.registerDefault("amiga", false); ConfMan.registerDefault("platform", Common::kPlatformPC); @@ -405,6 +406,11 @@ void GameDetector::parseCommandLine(int argc, char **argv) { ConfMan.set("aspect_ratio", cmdValue, kTransientDomain); END_OPTION + DO_LONG_OPTION("savepath") + // TODO: Verify whether the path is valid + ConfMan.set("savepath", option, kTransientDomain); + END_OPTION + #ifndef DISABLE_SCUMM DO_LONG_OPTION("tempo") // Use the special value '0' for the base in (int)strtol.