aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/save/savehandler.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/gob/save/savehandler.h')
-rw-r--r--engines/gob/save/savehandler.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/engines/gob/save/savehandler.h b/engines/gob/save/savehandler.h
index a5ae1f5c21..d12d6bca0d 100644
--- a/engines/gob/save/savehandler.h
+++ b/engines/gob/save/savehandler.h
@@ -27,7 +27,9 @@
#define GOB_SAVE_SAVEHANDLER_H
#include "common/savefile.h"
-#include "engines/gob/video.h" // for SurfacePtr
+#include "common/array.h"
+
+#include "engines/gob/video.h" // for SurfacePtr
namespace Gob {
@@ -180,6 +182,22 @@ private:
SavePartVars *_notes;
};
+/** A handler that behaves like a file but keeps the contents in memory. */
+class FakeFileHandler : public SaveHandler {
+public:
+ FakeFileHandler(GobEngine *vm);
+ ~FakeFileHandler();
+
+ int32 getSize();
+ bool load(int16 dataVar, int32 size, int32 offset);
+ bool save(int16 dataVar, int32 size, int32 offset);
+
+ bool deleteFile();
+
+private:
+ Common::Array<byte> _data;
+};
+
} // End of namespace Gob
#endif // GOB_SAVE_SAVEHANDLER_H