aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/platform/ds/arm9/source/gbampsave.cpp2
-rw-r--r--backends/platform/ds/arm9/source/gbampsave.h7
-rw-r--r--backends/platform/ds/arm9/source/ramsave.cpp4
-rw-r--r--backends/platform/ds/arm9/source/ramsave.h6
-rw-r--r--common/savefile.h15
5 files changed, 20 insertions, 14 deletions
diff --git a/backends/platform/ds/arm9/source/gbampsave.cpp b/backends/platform/ds/arm9/source/gbampsave.cpp
index 8fb5d99f16..5bf0e4892b 100644
--- a/backends/platform/ds/arm9/source/gbampsave.cpp
+++ b/backends/platform/ds/arm9/source/gbampsave.cpp
@@ -139,7 +139,7 @@ GBAMPSaveFileManager::~GBAMPSaveFileManager() {
}
-Common::SaveFile* GBAMPSaveFileManager::openSavefile(char const* name, bool saveOrLoad) {
+GBAMPSaveFile* GBAMPSaveFileManager::openSavefile(char const* name, bool saveOrLoad) {
char fileSpec[128];
strcpy(fileSpec, getSavePath());
diff --git a/backends/platform/ds/arm9/source/gbampsave.h b/backends/platform/ds/arm9/source/gbampsave.h
index 9727a7c1aa..f20d6229e9 100644
--- a/backends/platform/ds/arm9/source/gbampsave.h
+++ b/backends/platform/ds/arm9/source/gbampsave.h
@@ -26,7 +26,7 @@
#define SAVE_BUFFER_SIZE 100000
-class GBAMPSaveFile : public Common::SaveFile {
+class GBAMPSaveFile : public InSaveFile, public OutSaveFile {
FILE* handle;
char buffer[SAVE_BUFFER_SIZE];
int bufferPos;
@@ -64,7 +64,7 @@ public:
// static GBAMPSaveFileManager* instance() { return instancePtr; }
- Common::SaveFile *openSavefile(const char *filename, bool saveOrLoad);
+ GBAMPSaveFile *openSavefile(const char *filename, bool saveOrLoad);
virtual Common::OutSaveFile* openForSaving(const char* filename) { return openSavefile(filename, true); }
virtual Common::InSaveFile* openForLoading(const char* filename) { return openSavefile(filename, false); }
@@ -74,9 +74,6 @@ public:
void deleteFile(char* name);
void listFiles();
-
-protected:
- Common::SaveFile *makeSaveFile(const char *filename, bool saveOrLoad);
};
diff --git a/backends/platform/ds/arm9/source/ramsave.cpp b/backends/platform/ds/arm9/source/ramsave.cpp
index f1849a97a3..0d6f32e4d7 100644
--- a/backends/platform/ds/arm9/source/ramsave.cpp
+++ b/backends/platform/ds/arm9/source/ramsave.cpp
@@ -346,7 +346,7 @@ void DSSaveFileManager::listFiles() {
DSSaveFileManager* DSSaveFileManager::instancePtr = NULL;
-Common::SaveFile *DSSaveFileManager::openSavefile(const char* filename, bool saveOrLoad) {
+DSSaveFile *DSSaveFileManager::openSavefile(const char* filename, bool saveOrLoad) {
for (int r = 0; r < 8; r++) {
if (gbaSave[r].isValid() && (gbaSave[r].matches((char *) filename))) {
// consolePrintf("Matched save %d (%d)\n", r, gbaSave[r].getSize());
@@ -398,7 +398,7 @@ void DSSaveFileManager::listSavefiles(const char *prefix, bool *marks, int num)
}
-Common::SaveFile *DSSaveFileManager::makeSaveFile(const char *filename, bool saveOrLoad) {
+DSSaveFile *DSSaveFileManager::makeSaveFile(const char *filename, bool saveOrLoad) {
// Find a free save slot
int r = 0;
diff --git a/backends/platform/ds/arm9/source/ramsave.h b/backends/platform/ds/arm9/source/ramsave.h
index b8baa26b02..1127c8253a 100644
--- a/backends/platform/ds/arm9/source/ramsave.h
+++ b/backends/platform/ds/arm9/source/ramsave.h
@@ -28,7 +28,7 @@
#define DS_MAX_SAVE_SIZE 150000
-class DSSaveFile : public Common::SaveFile {
+class DSSaveFile : public InSaveFile, public OutSaveFile {
int address;
int ptr;
bool ownsData;
@@ -116,7 +116,7 @@ public:
static DSSaveFileManager* instance() { return instancePtr; }
- Common::SaveFile *openSavefile(const char *filename, bool saveOrLoad);
+ DSSaveFile *openSavefile(const char *filename, bool saveOrLoad);
virtual Common::OutSaveFile* openForSaving(const char* filename) { return openSavefile(filename, true); }
virtual Common::InSaveFile* openForLoading(const char* filename) { return openSavefile(filename, false); }
@@ -140,7 +140,7 @@ public:
static void setExtraData(int data);
protected:
- Common::SaveFile *makeSaveFile(const char *filename, bool saveOrLoad);
+ DSSaveFile *makeSaveFile(const char *filename, bool saveOrLoad);
};
#endif
diff --git a/common/savefile.h b/common/savefile.h
index 1e48bafdfd..4dbb46c5eb 100644
--- a/common/savefile.h
+++ b/common/savefile.h
@@ -56,11 +56,20 @@ public:
}
};
+
/**
- * Convenience intermediate class, to be removed.
+ * The SaveFileManager is serving as a factor for InSaveFile
+ * and OutSaveFile objects.
+ *
+ * Engines and other code should use SaveFiles whenever they need to
+ * store data which they need to be able to retrieve later on --
+ * i.e. typically save states, but also configuration files and similar
+ * things.
+ *
+ * While not declared as a singleton,
+ * it is effectively used as such, with OSystem::getSavefileManager
+ * returning the single SaveFileManager instances to be used.
*/
-class SaveFile : public InSaveFile, public OutSaveFile {};
-
class SaveFileManager {
public: