aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
Diffstat (limited to 'backends')
-rw-r--r--backends/saves/default/default-saves.cpp44
-rw-r--r--backends/saves/default/default-saves.h2
2 files changed, 46 insertions, 0 deletions
diff --git a/backends/saves/default/default-saves.cpp b/backends/saves/default/default-saves.cpp
index 26dd55cec8..cd46c941f5 100644
--- a/backends/saves/default/default-saves.cpp
+++ b/backends/saves/default/default-saves.cpp
@@ -41,6 +41,50 @@
#include <sys/stat.h>
#endif
+#ifdef IPHONE
+#include "backends/platform/iphone/osys_iphone.h"
+#endif
+
+#ifdef UNIX
+#ifdef MACOSX
+#define DEFAULT_SAVE_PATH "Documents/ScummVM Savegames"
+#else
+#define DEFAULT_SAVE_PATH ".scummvm"
+#endif
+#elif defined(__SYMBIAN32__)
+#define DEFAULT_SAVE_PATH "Savegames"
+#elif defined(PALMOS_MODE)
+#define DEFAULT_SAVE_PATH "/PALM/Programs/ScummVM/Saved"
+#endif
+
+DefaultSaveFileManager::DefaultSaveFileManager() {
+ // Register default savepath
+ // TODO: Remove this code here, and instead leave setting the
+ // default savepath to the ports using this class.
+#ifdef DEFAULT_SAVE_PATH
+ char savePath[MAXPATHLEN];
+#if defined(UNIX) && !defined(IPHONE)
+ const char *home = getenv("HOME");
+ if (home && *home && strlen(home) < MAXPATHLEN) {
+ snprintf(savePath, MAXPATHLEN, "%s/%s", home, DEFAULT_SAVE_PATH);
+ ConfMan.registerDefault("savepath", savePath);
+ }
+#elif defined(__SYMBIAN32__)
+ strcpy(savePath, Symbian::GetExecutablePath());
+ strcat(savePath, DEFAULT_SAVE_PATH);
+ strcat(savePath, "\\");
+ ConfMan.registerDefault("savepath", savePath);
+#elif defined (IPHONE)
+ ConfMan.registerDefault("savepath", OSystem_IPHONE::getSavePath());
+
+#elif defined(PALMOS_MODE)
+ ConfMan.registerDefault("savepath", DEFAULT_SAVE_PATH);
+#endif
+#endif // #ifdef DEFAULT_SAVE_PATH
+}
+
+
+
Common::StringList DefaultSaveFileManager::listSavefiles(const char *pattern) {
FilesystemNode savePath(getSavePath());
FSList savefiles;
diff --git a/backends/saves/default/default-saves.h b/backends/saves/default/default-saves.h
index f3e0ec5b35..d8c0b0ae43 100644
--- a/backends/saves/default/default-saves.h
+++ b/backends/saves/default/default-saves.h
@@ -34,6 +34,8 @@
*/
class DefaultSaveFileManager : public Common::SaveFileManager {
public:
+ DefaultSaveFileManager();
+
virtual Common::StringList listSavefiles(const char *pattern);
virtual Common::InSaveFile *openForLoading(const char *filename);
virtual Common::OutSaveFile *openForSaving(const char *filename);