diff options
Diffstat (limited to 'engines/m4/saveload.cpp')
-rw-r--r-- | engines/m4/saveload.cpp | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/engines/m4/saveload.cpp b/engines/m4/saveload.cpp deleted file mode 100644 index a7615fa4b6..0000000000 --- a/engines/m4/saveload.cpp +++ /dev/null @@ -1,166 +0,0 @@ -/* 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. - * - */ - -#include "common/file.h" -#include "common/savefile.h" - -#include "m4/m4.h" -#include "m4/saveload.h" -#include "m4/sprite.h" - -namespace M4 { - -const char *orionSavesList = "saves.dir"; - -SaveLoad::SaveLoad(MadsM4Engine *vm) : _vm(vm) { - // For Orion Burger, check the existance of a 'saves.dir' file to determine whether to - // act exactly like the original. Otherwise, we'll use the ScummVM standard, where we'll - // keep all the data for a savegame in a single file - - Common::File file; - _emulateOriginal = file.exists(orionSavesList); -} - -const char *SaveLoad::generateSaveName(int slotNumber) { - static char buffer[15]; - - sprintf(buffer, _emulateOriginal ? "burg%.3d.sav" : "burger.%.3d", slotNumber); - return buffer; -} - -bool SaveLoad::hasSaves() { - // Return true if a savegame file exists for the first slot - - if (_emulateOriginal) { - Common::File f; - return f.exists(generateSaveName(1)); - - } else { - Common::ReadStream *f = _vm->saveManager()->openForLoading(generateSaveName(1)); - if (f == NULL) - return false; - - delete f; - return true; - } -} - -SaveGameList *SaveLoad::getSaves() { - SaveGameList *result = new SaveGameList(); - char saveName[MAX_SAVEGAME_NAME]; - Common::ReadStream *f = NULL; - - if (_emulateOriginal) { - Common::File *saveFile = new Common::File(); - saveFile->open(orionSavesList); - f = saveFile; - } - - for (int slotNumber = 1; slotNumber <= 99; ++slotNumber) { - if (_emulateOriginal) { - // Read in savegame name from save directory - bool isPresent = (f->readByte() != 0); - f->read(&saveName[0], MAX_SAVEGAME_NAME); - - if (isPresent) - result->push_back(Common::String(saveName)); - else { - result->push_back(Common::String()); - } - - } else { - // Read in savegame name from savegame files directly - Common::ReadStream *saveFile = _vm->saveManager()->openForLoading( - generateSaveName(slotNumber)); - if (!saveFile) { - // No savegame prsent at that slot - result->push_back(Common::String()); - } else { - // Skip over byte offset - uint32 offset = saveFile->readUint32LE(); - assert(offset < 0x100); - - // Read in savegame name - saveFile->read(&saveName[0], MAX_SAVEGAME_NAME); - result->push_back(Common::String(saveName)); - - delete saveFile; - } - } - } - - if (_emulateOriginal) - delete f; - - return result; -} - -M4Surface *SaveLoad::getThumbnail(int slotNumber) { - Common::SeekableReadStream *saveFile; - uint32 dataOffset; - - if (_emulateOriginal) { - // Get savegame file from original game folder - Common::File *f = new Common::File(); - if (!f->open(generateSaveName(slotNumber))) { - delete f; - return NULL; - } - - saveFile = f; - } else { - // Open up savegame for access via savefile manager - saveFile = _vm->saveManager()->openForLoading(generateSaveName(slotNumber)); - } - if (!saveFile) - return NULL; - - dataOffset = saveFile->readUint32LE(); - assert(dataOffset < 0x100); - saveFile->seek(dataOffset, SEEK_CUR); - - // Read in the sprite data - - saveFile->seek(16, SEEK_CUR); - int width = saveFile->readUint32LE(); - int height = saveFile->readUint32LE(); - saveFile->seek(21, SEEK_CUR); - saveFile->readUint32LE(); // sprite data size - - M4Sprite *result = new M4Sprite(saveFile, 0, 0, width, height); - delete saveFile; - - return result; -} - -bool SaveLoad::load(int slotNumber) { - // TODO: Currently it's hardcoded to return a failure - return false; -} - -bool SaveLoad::save(int slotNumber, Common::String saveName) { - // TODO: Currently it's hardcoded to return a failure - return false; -} - - -} // End of namespace M4 |