aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/save/saveload.h
diff options
context:
space:
mode:
authorArnaud Boutonné2009-08-13 09:56:54 +0000
committerArnaud Boutonné2009-08-13 09:56:54 +0000
commit6bcc9a45fd63c35f4060fee81989d5cb1c0f833f (patch)
tree91249cf4ce08e61ff32941e1d16c65d1c08ee834 /engines/gob/save/saveload.h
parent568ffca0a60339b5c0e2d20ddef57f65f229950b (diff)
downloadscummvm-rg350-6bcc9a45fd63c35f4060fee81989d5cb1c0f833f.tar.gz
scummvm-rg350-6bcc9a45fd63c35f4060fee81989d5cb1c0f833f.tar.bz2
scummvm-rg350-6bcc9a45fd63c35f4060fee81989d5cb1c0f833f.zip
Initial save handler for Playtoons
svn-id: r43344
Diffstat (limited to 'engines/gob/save/saveload.h')
-rw-r--r--engines/gob/save/saveload.h46
1 files changed, 40 insertions, 6 deletions
diff --git a/engines/gob/save/saveload.h b/engines/gob/save/saveload.h
index 1a1a47178b..66cc34827e 100644
--- a/engines/gob/save/saveload.h
+++ b/engines/gob/save/saveload.h
@@ -450,13 +450,16 @@ protected:
};
/** Save/Load class for Playtoons. */
-/** Only used for the moment to check file presence */
-
class SaveLoad_Playtoons : public SaveLoad {
public:
- SaveLoad_Playtoons(GobEngine *vm);
+ static const uint32 kSlotCount = 60;
+ static const uint32 kSlotNameLength = 40;
+
+ SaveLoad_Playtoons(GobEngine *vm, const char *targetName);
virtual ~SaveLoad_Playtoons();
+ SaveMode getSaveMode(const char *fileName) const;
+
protected:
struct SaveFile {
const char *sourceName;
@@ -465,14 +468,45 @@ protected:
const char *description;
};
+ /** Handles the save slots. */
+ class GameHandler : public SaveHandler {
+ public:
+ GameHandler(GobEngine *vm, const char *target);
+ ~GameHandler();
+
+ int32 getSize();
+ bool load(int16 dataVar, int32 size, int32 offset);
+ bool save(int16 dataVar, int32 size, int32 offset);
+
+ private:
+ /** Slot file construction. */
+ class File : public SlotFileIndexed {
+ public:
+ File(GobEngine *vm, const char *base);
+ ~File();
+
+ int getSlot(int32 offset) const;
+ int getSlotRemainder(int32 offset) const;
+ };
+
+ byte _props[500];
+ /** The index. 500 bytes properties + kSlotCount * kSlotNameLength bytes. */
+ byte _index[2400];
+
+ File *_slotFile;
+
+ void buildIndex(byte *buffer) const;
+ };
+
static SaveFile _saveFiles[];
- SaveMode getSaveMode(const char *fileName) const;
+ GameHandler *_gameHandler;
+
+ SaveHandler *getHandler(const char *fileName) const;
+ const char *getDescription(const char *fileName) const;
const SaveFile *getSaveFile(const char *fileName) const;
-
SaveFile *getSaveFile(const char *fileName);
-
};
} // End of namespace Gob