aboutsummaryrefslogtreecommitdiff
path: root/engines/m4/saveload.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/m4/saveload.cpp')
-rw-r--r--engines/m4/saveload.cpp166
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