28#ifndef GOB_SAVE_SAVELOAD_H
29#define GOB_SAVE_SAVELOAD_H
31#include "gob/save/savefile.h"
32#include "gob/save/savehandler.h"
57 static const char *
stripPath(
const char *fileName,
char separator =
'\\');
71 bool load(
const char *fileName, int16 dataVar, int32 size, int32 offset);
72 bool loadToRaw(
const char *fileName,
byte *ptr, int32 size, int32 offset);
74 bool save(
const char *fileName, int16 dataVar, int32 size, int32 offset);
75 bool saveFromRaw(
const char *fileName,
byte *ptr, int32 size, int32 offset);
76 bool copySaveGame(
const char *fileNameSrc,
const char *fileNameDest);
84 virtual SaveHandler *getHandler(
const char *fileName)
const;
85 virtual const char *getDescription(
const char *fileName)
const;
97 static const uint32 kSlotCount = 7;
98 static const uint32 kSlotSize = 44;
100 static const uint32 kSaveFileSize = kSlotCount * kSlotSize;
103 const char *sourceName;
106 const char *description;
116 bool load(int16 dataVar, int32 size, int32 offset)
override;
117 bool save(int16 dataVar, int32 size, int32 offset)
override;
126 int getSlot(int32 offset)
const override;
127 int getSlotRemainder(int32 offset)
const override;
133 static SaveFile _saveFiles[];
135 SaveHandler *getHandler(
const char *fileName)
const override;
136 const char *getDescription(
const char *fileName)
const override;
138 const SaveFile *getSaveFile(
const char *fileName)
const;
139 SaveFile *getSaveFile(
const char *fileName);
145 static const uint32 kSlotCount = 15;
146 static const uint32 kSlotNameLength = 40;
149 static const uint32
kIndexSize = kSlotCount * kSlotNameLength;
158 const char *sourceName;
161 const char *description;
171 bool load(int16 dataVar, int32 size, int32 offset)
override;
172 bool save(int16 dataVar, int32 size, int32 offset)
override;
181 int getSlot(int32 offset)
const override;
182 int getSlotRemainder(int32 offset)
const override;
190 void buildIndex(
byte *buffer)
const;
193 static SaveFile _saveFiles[];
195 GameHandler *_gameHandler;
199 SaveHandler *getHandler(
const char *fileName)
const override;
200 const char *getDescription(
const char *fileName)
const override;
202 const SaveFile *getSaveFile(
const char *fileName)
const;
203 SaveFile *getSaveFile(
const char *fileName);
209 static const uint32 kSlotCount = 15;
210 static const uint32 kSlotNameLength = 40;
213 static const uint32
kIndexSize = kSlotCount * kSlotNameLength;
222 const char *sourceName;
226 const char *description;
236 bool load(int16 dataVar, int32 size, int32 offset)
override;
237 bool save(int16 dataVar, int32 size, int32 offset)
override;
246 int getSlot(int32 offset)
const override;
247 int getSlotRemainder(int32 offset)
const override;
256 void buildIndex(
byte *buffer)
const;
262 static SaveFile _saveFiles[];
264 SaveHandler *getHandler(
const char *fileName)
const override;
265 const char *getDescription(
const char *fileName)
const override;
267 const SaveFile *getSaveFile(
const char *fileName)
const;
268 SaveFile *getSaveFile(
const char *fileName);
274 static const int32 kAdibou1NbrOfDrawings = 8;
282 const char *sourceName;
285 const char *description;
294 bool load(int16 dataVar, int32 size, int32 offset)
override;
295 bool save(int16 dataVar, int32 size, int32 offset)
override;
316 bool load(int16 dataVar, int32 size, int32 offset)
override;
317 bool save(int16 dataVar, int32 size, int32 offset)
override;
337 bool load(int16 dataVar, int32 size, int32 offset)
override;
338 bool save(int16 dataVar, int32 size, int32 offset)
override;
343 bool save(
const byte *ptrRaw, int16 dataVar, int32 size, int32 offset);
354 static SaveFile _saveFiles[];
356 GameFileHandler *_bouHandler;
357 GameFileHandler *_constructionHandler;
358 SpriteHandler *_drawingHandler;
360 DrawingWithThumbnailHandler *_drawingWithThumbnailHandler[kAdibou1NbrOfDrawings];
362 SaveHandler *getHandler(
const char *fileName)
const override;
363 const char *getDescription(
const char *fileName)
const override;
365 const SaveFile *getSaveFile(
const char *fileName)
const;
366 SaveFile *getSaveFile(
const char *fileName);
372 static const uint32 kSlotCount = 30;
373 static const uint32 kSlotNameLength = 40;
375 static const uint32 kPropsSize = 500;
377 static const uint32
kIndexSize = kSlotCount * kSlotNameLength;
391 const char *sourceName;
394 const char *description;
408 bool load(int16 dataVar, int32 size, int32 offset)
override;
409 bool save(int16 dataVar, int32 size, int32 offset)
override;
428 bool _usesScreenshots;
433 byte _props[kPropsSize];
440 void buildIndex(
byte *buffer)
const;
442 bool createReader(
int slot);
443 bool createWriter(
int slot);
454 bool load(int16 dataVar, int32 size, int32 offset)
override;
455 bool save(int16 dataVar, int32 size, int32 offset)
override;
462 uint32 shotSize, uint32 shotIndexSize);
465 int getSlot(int32 offset)
const override;
466 int getSlotRemainder(int32 offset)
const override;
468 void buildScreenshotIndex(
byte *buffer)
const;
472 uint32 _shotIndexSize;
480 int32 _shotIndexSize;
484 static SaveFile _saveFiles[];
488 GameHandler *_gameHandler;
491 ScreenshotHandler *_screenshotHandler;
493 SaveHandler *getHandler(
const char *fileName)
const override;
494 const char *getDescription(
const char *fileName)
const override;
496 const SaveFile *getSaveFile(
const char *fileName)
const;
497 SaveFile *getSaveFile(
const char *fileName);
503 static const uint32 kSlotCount = 40;
504 static const uint32 kPropsSize = 500;
513 const char *sourceName;
516 const char *description;
526 bool load(int16 dataVar, int32 size, int32 offset)
override;
527 bool save(int16 dataVar, int32 size, int32 offset)
override;
541 bool load(int16 dataVar, int32 size, int32 offset)
override;
542 bool save(int16 dataVar, int32 size, int32 offset)
override;
562 byte _props[kPropsSize];
569 bool createReader(
int slot);
570 bool createWriter(
int slot);
580 bool load(int16 dataVar, int32 size, int32 offset)
override;
581 bool save(int16 dataVar, int32 size, int32 offset)
override;
590 int getSlot(int32 offset)
const override;
591 int getSlotRemainder(int32 offset)
const override;
593 void buildScreenshotIndex(
byte *buffer)
const;
602 static SaveFile _saveFiles[];
604 VoiceHandler *_voiceHandler;
606 GameHandler *_gameHandler;
607 ScreenshotHandler *_screenshotHandler;
609 SaveHandler *getHandler(
const char *fileName)
const override;
610 const char *getDescription(
const char *fileName)
const override;
612 const SaveFile *getSaveFile(
const char *fileName)
const;
613 SaveFile *getSaveFile(
const char *fileName);
619 static const uint32 kSlotCount = 10;
620 static const uint32 kSlotNameLength = 40;
622 static const uint32 kPropsSize = 500;
624 static const uint32
kIndexSize = (kSlotCount * kSlotNameLength) + 800;
633 const char *sourceName;
636 const char *description;
648 int getLastSlot()
const;
651 bool load(int16 dataVar, int32 size, int32 offset)
override;
652 bool save(int16 dataVar, int32 size, int32 offset)
override;
654 bool saveScreenProps(
int slot,
const byte *props);
655 bool loadScreenProps(
int slot,
byte *props);
671 byte _props[kPropsSize];
682 void buildIndex(
byte *buffer)
const;
684 bool createReader(
int slot);
685 bool createWriter(
int slot);
695 bool load(int16 dataVar, int32 size, int32 offset)
override;
696 bool save(int16 dataVar, int32 size, int32 offset)
override;
709 bool load(int16 dataVar, int32 size, int32 offset)
override;
710 bool save(int16 dataVar, int32 size, int32 offset)
override;
718 int getSlot(int32 offset)
const override;
719 int getSlotRemainder(int32 offset)
const override;
732 static SaveFile _saveFiles[];
734 GameHandler *_gameHandler;
735 CurScreenPropsHandler *_curProps;
736 ScreenPropsHandler *_props[10];
738 SaveHandler *getHandler(
const char *fileName)
const override;
739 const char *getDescription(
const char *fileName)
const override;
741 const SaveFile *getSaveFile(
const char *fileName)
const;
742 SaveFile *getSaveFile(
const char *fileName);
748 static const uint32 kSlotCount = 60;
749 static const uint32 kSlotNameLength = 40;
751 static const uint32 kPropsSize = 500;
753 static const uint32
kIndexSize = kSlotCount * kSlotNameLength;
762 const char *sourceName;
765 const char *description;
785 bool load(int16 dataVar, int32 size, int32 offset)
override;
786 bool save(int16 dataVar, int32 size, int32 offset)
override;
788 uint8 getExtraID(
int slot);
789 bool loadExtra(
int slot, uint8
id, int16 dataVar, int32 size, int32 offset);
790 bool saveExtra(
int slot, uint8
id, int16 dataVar, int32 size, int32 offset);
799 int getSlot(int32 offset)
const override;
800 int getSlotRemainder(int32 offset)
const override;
805 byte _props[kPropsSize];
815 void buildIndex(
byte *buffer)
const;
819 bool createReader(
int slot);
820 bool createWriter(
int slot);
830 bool load(int16 dataVar, int32 size, int32 offset)
override;
831 bool save(int16 dataVar, int32 size, int32 offset)
override;
850 bool load(int16 dataVar, int32 size, int32 offset)
override;
851 bool save(int16 dataVar, int32 size, int32 offset)
override;
870 bool load(int16 dataVar, int32 size, int32 offset)
override;
871 bool save(int16 dataVar, int32 size, int32 offset)
override;
887 bool load(int16 dataVar, int32 size, int32 offset)
override;
888 bool save(int16 dataVar, int32 size, int32 offset)
override;
906 SaveHandler *getHandler(
const char *fileName)
const override;
907 const char *getDescription(
const char *fileName)
const override;
909 const SaveFile *getSaveFile(
const char *fileName)
const;
910 SaveFile *getSaveFile(
const char *fileName);
916 static const uint32 kSlotCount = 60;
917 static const uint32 kSlotNameLength = 40;
919 static const uint32 kPropsSize = 3921;
921 static const uint32
kIndexSize = kSlotCount * kSlotNameLength;
930 const char *sourceName;
933 const char *description;
943 bool load(int16 dataVar, int32 size, int32 offset)
override;
944 bool save(int16 dataVar, int32 size, int32 offset)
override;
953 int getSlot(int32 offset)
const override;
954 int getSlotRemainder(int32 offset)
const override;
957 byte _props[kPropsSize];
963 void buildIndex(
byte *buffer)
const;
966 static SaveFile _saveFiles[];
968 GameHandler *_gameHandler;
970 SaveHandler *getHandler(
const char *fileName)
const override;
971 const char *getDescription(
const char *fileName)
const override;
973 const SaveFile *getSaveFile(
const char *fileName)
const;
974 SaveFile *getSaveFile(
const char *fileName);
980 static const uint32 kChildrenCount = 16;
981 static const uint32 kAdibou2NbrOfApplications = 7;
982 static const uint32 kAdibou2NbrOfSavedDrawings = 12;
983 static const uint32 kAdibou2NbrOfConstructionGameFiles = 3;
985 static const uint32 kAdi4NbrOfTempFiles = 3;
986 static const uint32 kAdi4NbrOfApplications = 4;
987 static const uint32 kAdi4NbrOfSchoolYears = 8;
989 static const uint32 kAdi4NbrOfGameFiles = 13 + 2 * kChildrenCount + 2 * kAdi4NbrOfApplications * kAdi4NbrOfSchoolYears * kChildrenCount;
999 const char *sourceName;
1002 const char *description;
1011 bool load(int16 dataVar, int32 size, int32 offset)
override;
1012 bool save(int16 dataVar, int32 size, int32 offset)
override;
1013 bool loadToRaw(
byte *ptr, int32 size, int32 offset)
override;
1014 bool saveFromRaw(
const byte* ptr, int32 size, int32 offset)
override;
1033 uint32 chunkSize = 1);
1037 bool load(int16 dataVar, int32 size, int32 offset)
override;
1038 bool save(int16 dataVar, int32 size, int32 offset)
override;
1061 bool load(int16 dataVar, int32 size, int32 offset)
override;
1062 bool save(int16 dataVar, int32 size, int32 offset)
override;
1063 bool loadToRaw(
byte *ptr, int32 size, int32 offset)
override;
1064 bool saveFromRaw(
const byte *ptr, int32 size, int32 offset)
override;
1069 bool save(
const byte *ptrRaw, int16 dataVar, int32 size, int32 offset);
1081 static SaveFile _saveFiles[];
1083 SpriteHandler *_faceHandler[kChildrenCount];
1086 GameFileHandler *_configHandler;
1087 GameFileHandler *_adibou2EnvHandler[kChildrenCount];
1088 SpriteHandler *_adibou2WeatherHandler[kChildrenCount];
1089 GameFileHandler *_adibou2BreakoutGameProgressHandler[kChildrenCount];
1090 FakeFileHandler *_adibou2ConstructionGameTempFileHandler[kAdibou2NbrOfConstructionGameFiles];
1091 GameFileHandler *_adibou2ConstructionGameProgressHandler[kChildrenCount][kAdibou2NbrOfConstructionGameFiles];
1092 GameFileHandler *_adibou2AppProgressHandler[kChildrenCount][kAdibou2NbrOfApplications];
1093 GameFileHandler *_adibou2MemoHandler[kChildrenCount];
1094 GameFileHandler *_adibou2DiploHandler[kChildrenCount];
1095 GameFileHandler *_adibou2AppliHandler[kAdibou2NbrOfApplications];
1096 GameFileHandler *_adibou2CriteHandler[kAdibou2NbrOfApplications];
1097 GameFileHandler *_adibou2ExoHandler[kAdibou2NbrOfApplications];
1098 GameFileHandler *_adibou2ApplicationsInfoHandler;
1102 SpriteHandler *_adibou2DrawingHandler[kChildrenCount][kAdibou2NbrOfSavedDrawings];
1103 SpriteHandler *_adibou2DrawingThumbnailHandler[kChildrenCount][kAdibou2NbrOfSavedDrawings];
1104 GameFileHandler *_adibou2DrawingPaletteHandler[kChildrenCount];
1105 SpriteHandler *_adibou2DrawingMailboxHandler[kChildrenCount];
1106 SpriteHandler *_adibou2CakePhotoHandler[kChildrenCount];
1107 SpriteHandler *_adibou2FlowerPhotoHandler[kChildrenCount];
1108 SpriteHandler *_adibou2FlowerInVaseHandler[kChildrenCount];
1109 SpriteHandler *_adibou2FadedFlowerInVaseHandler[kChildrenCount];
1110 SpriteHandler *_adibou2PosterHandler[kChildrenCount];
1111 DrawingOnFloppyDiskHandler *_adibou2DrawingOnFloppyDiskHandler;
1112 DrawingOnFloppyDiskHandler *_adibou2DrawingThumbnailOnFloppyDiskHandler;
1117 GameFileHandler *_adibou2AppProgressExtHandler[kAdibou2NbrOfApplications - 4][kChildrenCount];
1118 GameFileHandler *_adibou2AppliIniHandler[kAdibou2NbrOfApplications];
1122 GameFileHandler *_adi4GameFileHandler[kAdi4NbrOfGameFiles];
1124 SaveHandler *getHandler(
const char *fileName)
const override;
1125 const char *getDescription(
const char *fileName)
const override;
1127 const SaveFile *getSaveFile(
const char *fileName)
const;
Definition: savehandler.h:194
Definition: savehandler.h:172
Definition: savehandler.h:116
Definition: saveload.h:308
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:331
bool save(int16 dataVar, int32 size, int32 offset) override
bool deleteFile() override
bool load(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:288
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:272
SaveMode getSaveMode(const char *fileName) const override
Definition: saveload.h:230
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:207
static const uint32 kIndexSize
Definition: saveload.h:213
SaveMode getSaveMode(const char *fileName) const override
Definition: saveload.h:110
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:89
SaveMode getSaveMode(const char *fileName) const override
Definition: saveload.h:548
int getSlot(int32 offset) const override
int getSlotRemainder(int32 offset) const override
Definition: saveload.h:533
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:574
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:520
bool save(int16 dataVar, int32 size, int32 offset) override
bool load(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:501
SaveMode getSaveMode(const char *fileName) const override
Definition: saveload.h:937
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:914
SaveMode getSaveMode(const char *fileName) const override
static const uint32 kIndexSize
Definition: saveload.h:921
Definition: saveload.h:165
bool save(int16 dataVar, int32 size, int32 offset) override
bool load(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:143
static const uint32 kIndexSize
Definition: saveload.h:149
SaveMode getSaveMode(const char *fileName) const override
Definition: saveload.h:415
int getSlot(int32 offset) const override
int getSlotRemainder(int32 offset) const override
Definition: saveload.h:400
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:448
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:370
ScreenshotType
Definition: saveload.h:379
@ kScreenshotTypeLost
Lost in Time type screenshot.
Definition: saveload.h:381
@ kScreenshotTypeGob3
Goblins 3 type screenshot.
Definition: saveload.h:380
static const uint32 kIndexSize
Definition: saveload.h:377
SaveMode getSaveMode(const char *fileName) const override
Definition: saveload.h:688
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:658
int getSlotRemainder(int32 offset) const override
int getSlot(int32 offset) const override
Definition: saveload.h:642
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:702
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:617
SaveMode getSaveMode(const char *fileName) const override
static const uint32 kIndexSize
Definition: saveload.h:624
Definition: saveload.h:824
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:844
bool save(int16 dataVar, int32 size, int32 offset) override
bool load(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:881
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:779
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:769
Definition: saveload.h:864
bool deleteFile() override
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:746
SaveMode getSaveMode(const char *fileName) const override
static const uint32 kIndexSize
Definition: saveload.h:753
Definition: saveload.h:1027
bool load(int16 dataVar, int32 size, int32 offset) override
bool save(int16 dataVar, int32 size, int32 offset) override
bool deleteFile() override
Definition: saveload.h:1055
bool save(int16 dataVar, int32 size, int32 offset) override
bool deleteFile() override
bool load(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:1005
bool load(int16 dataVar, int32 size, int32 offset) override
bool deleteFile() override
bool save(int16 dataVar, int32 size, int32 offset) override
Definition: saveload.h:978
SaveMode getSaveMode(const char *fileName) const override
Common::List< Common::Path > getFilesMatchingPattern(const Common::Path &pattern) const override
Definition: saveload.h:39
static const char * stripPath(const char *fileName, char separator='\\')
virtual Common::List< Common::Path > getFilesMatchingPattern(const Common::Path &pattern) const
SaveMode
Definition: saveload.h:42
@ kSaveModeExists
Just claim it exists.
Definition: saveload.h:45
@ kSaveModeIgnore
Ignore it.
Definition: saveload.h:44
@ kSaveModeNone
Don't handle it.
Definition: saveload.h:43
@ kSaveModeSave
A normal save.
Definition: saveload.h:46
static Common::String replacePathSeparators(const char *path, char newSeparator)
bool load(const char *fileName, int16 dataVar, int32 size, int32 offset)
virtual SaveMode getSaveMode(const char *fileName) const
bool save(const char *fileName, int16 dataVar, int32 size, int32 offset)
bool deleteFile(const char *fileName)
int32 getSize(const char *fileName)
Definition: savefile.h:162
Definition: savefile.h:313
Definition: savefile.h:340
Definition: savehandler.h:68
Definition: savehandler.h:96
Definition: savehandler.h:141
Definition: saveload.h:281
Definition: saveload.h:221
Definition: saveload.h:102
Definition: saveload.h:512
Definition: saveload.h:929
Definition: saveload.h:157
Definition: saveload.h:390
Definition: saveload.h:632
Definition: saveload.h:761
Definition: saveload.h:998