diff options
Diffstat (limited to 'engines/gob/save')
-rw-r--r-- | engines/gob/save/saveload.h | 24 | ||||
-rw-r--r-- | engines/gob/save/saveload_playtoons.cpp | 88 |
2 files changed, 112 insertions, 0 deletions
diff --git a/engines/gob/save/saveload.h b/engines/gob/save/saveload.h index a74b64b883..8095b8c045 100644 --- a/engines/gob/save/saveload.h +++ b/engines/gob/save/saveload.h @@ -445,6 +445,30 @@ protected: SaveFile *getSaveFile(const char *fileName); }; +/** Save/Load class for Playtoons. */ +class SaveLoad_playtoons : public SaveLoad { +public: + SaveLoad_playtoons(GobEngine *vm); + virtual ~SaveLoad_playtoons(); + +protected: + struct SaveFile { + const char *sourceName; + SaveMode mode; + SaveHandler *handler; + const char *description; + }; + + static SaveFile _saveFiles[]; + + SaveMode getSaveMode(const char *fileName) const; + + const SaveFile *getSaveFile(const char *fileName) const; + + SaveFile *getSaveFile(const char *fileName); + +}; + } // End of namespace Gob #endif // GOB_SAVE_SAVELOAD_H diff --git a/engines/gob/save/saveload_playtoons.cpp b/engines/gob/save/saveload_playtoons.cpp new file mode 100644 index 0000000000..576a10294f --- /dev/null +++ b/engines/gob/save/saveload_playtoons.cpp @@ -0,0 +1,88 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + * + */ + +#include "gob/save/saveload.h" +#include "gob/inter.h" +#include "gob/variables.h" + +namespace Gob { + +SaveLoad_playtoons::SaveFile SaveLoad_playtoons::_saveFiles[] = { + { "disk.001", kSaveModeExists, 0, 0}, // Playtoons 1 identification file + { "disk.002", kSaveModeExists, 0, 0}, // Playtoons 2 identification file + { "disk.003", kSaveModeExists, 0, 0}, // Playtoons 3 identification file + { "disk.004", kSaveModeExists, 0, 0}, // Playtoons 4 identification file + { "disk.005", kSaveModeExists, 0, 0}, // Playtoons 5 identification file + { "disk.006", kSaveModeExists, 0, 0}, // Playtoons CK 1 identification file + { "disk.007", kSaveModeExists, 0, 0}, // Playtoons CK 2 identification file + { "disk.008", kSaveModeExists, 0, 0}, // Playtoons CK 3 identification file + { "titre.001", kSaveModeExists, 0, 0}, // Playtoons 1 titles + { "titre.002", kSaveModeExists, 0, 0}, // Playtoons 2 titles + { "titre.003", kSaveModeExists, 0, 0}, // Playtoons 3 titles + { "titre.004", kSaveModeExists, 0, 0}, // Playtoons 4 titles + { "titre.005", kSaveModeExists, 0, 0}, // Playtoons 5 titles + { "titre.006", kSaveModeExists, 0, 0}, // Playtoons CK 1 empty title (???) + { "titre.007", kSaveModeExists, 0, 0}, // Playtoons CK 2 empty title (???) + { "titre.008", kSaveModeExists, 0, 0}, // Playtoons CK 3 empty title (???) + { "mdo.def", kSaveModeExists, 0, 0}, +}; + +SaveLoad::SaveMode SaveLoad_playtoons::getSaveMode(const char *fileName) const { + const SaveFile *saveFile = getSaveFile(fileName); + + if (saveFile) + return saveFile->mode; + + return kSaveModeNone; +} + +SaveLoad_playtoons::SaveLoad_playtoons(GobEngine *vm) : + SaveLoad(vm) { +} + +SaveLoad_playtoons::~SaveLoad_playtoons() { +} + +const SaveLoad_playtoons::SaveFile *SaveLoad_playtoons::getSaveFile(const char *fileName) const { + fileName = stripPath(fileName); + + for (int i = 0; i < ARRAYSIZE(_saveFiles); i++) + if (!scumm_stricmp(fileName, _saveFiles[i].sourceName)) + return &_saveFiles[i]; + + return 0; +} + +SaveLoad_playtoons::SaveFile *SaveLoad_playtoons::getSaveFile(const char *fileName) { + fileName = stripPath(fileName); + + for (int i = 0; i < ARRAYSIZE(_saveFiles); i++) + if (!scumm_stricmp(fileName, _saveFiles[i].sourceName)) + return &_saveFiles[i]; + + return 0; +} + +} // End of namespace Gob |