diff options
author | Sven Hesse | 2008-12-13 13:18:16 +0000 |
---|---|---|
committer | Sven Hesse | 2008-12-13 13:18:16 +0000 |
commit | dce40f6ffeed0437699f5001765745537ca073dc (patch) | |
tree | 90bff1c66eb136d091a92e43267dd13c7f345a67 /engines/gob | |
parent | 5fa38662e2fa1da6e06f9dd33c9f328c260ae273 (diff) | |
download | scummvm-rg350-dce40f6ffeed0437699f5001765745537ca073dc.tar.gz scummvm-rg350-dce40f6ffeed0437699f5001765745537ca073dc.tar.bz2 scummvm-rg350-dce40f6ffeed0437699f5001765745537ca073dc.zip |
Added a SaveLoad for Urban Runner with an entry to make the scripts believe the file mdo.def (config file created by the original installer) always exists
svn-id: r35338
Diffstat (limited to 'engines/gob')
-rw-r--r-- | engines/gob/gob.cpp | 2 | ||||
-rw-r--r-- | engines/gob/inter_v2.cpp | 2 | ||||
-rw-r--r-- | engines/gob/module.mk | 1 | ||||
-rw-r--r-- | engines/gob/saveload.h | 23 | ||||
-rw-r--r-- | engines/gob/saveload_v6.cpp | 54 |
5 files changed, 81 insertions, 1 deletions
diff --git a/engines/gob/gob.cpp b/engines/gob/gob.cpp index c79fab95cf..dcee6ff1e0 100644 --- a/engines/gob/gob.cpp +++ b/engines/gob/gob.cpp @@ -411,7 +411,7 @@ bool GobEngine::initGameParts() { _map = new Map_v4(this); _goblin = new Goblin_v4(this); _scenery = new Scenery_v2(this); - _saveLoad = new SaveLoad(this, _targetName.c_str()); + _saveLoad = new SaveLoad_v6(this, _targetName.c_str()); break; default: diff --git a/engines/gob/inter_v2.cpp b/engines/gob/inter_v2.cpp index 2d370c8e7e..0c61361cc3 100644 --- a/engines/gob/inter_v2.cpp +++ b/engines/gob/inter_v2.cpp @@ -1925,6 +1925,8 @@ bool Inter_v2::o2_checkData(OpFuncParams ¶ms) { warning("File \"%s\" not found", _vm->_global->_inter_resStr); } else if (mode == SaveLoad::kSaveModeSave) size = _vm->_saveLoad->getSize(_vm->_global->_inter_resStr); + else if (mode == SaveLoad::kSaveModeExists) + size = 23; if (size == -1) handle = -1; diff --git a/engines/gob/module.mk b/engines/gob/module.mk index d4d38c0228..2abf89a010 100644 --- a/engines/gob/module.mk +++ b/engines/gob/module.mk @@ -48,6 +48,7 @@ MODULE_OBJS := \ saveload_v2.o \ saveload_v3.o \ saveload_v4.o \ + saveload_v6.o \ scenery.o \ scenery_v1.o \ scenery_v2.o \ diff --git a/engines/gob/saveload.h b/engines/gob/saveload.h index 447cb901b5..593c13f374 100644 --- a/engines/gob/saveload.h +++ b/engines/gob/saveload.h @@ -166,6 +166,7 @@ public: enum SaveMode { kSaveModeNone, kSaveModeIgnore, + kSaveModeExists, kSaveModeSave }; @@ -409,6 +410,28 @@ protected: void assertInited(); }; +class SaveLoad_v6 : public SaveLoad { +public: + enum SaveType { + kSaveNone + }; + + SaveLoad_v6(GobEngine *vm, const char *targetName); + virtual ~SaveLoad_v6(); + + virtual SaveMode getSaveMode(const char *fileName); + +protected: + struct SaveFile { + const char *sourceName; + char *destName; + SaveMode mode; + SaveType type; + }; + + static SaveFile _saveFiles[]; +}; + } // End of namespace Gob #endif // GOB_SAVELOAD_H diff --git a/engines/gob/saveload_v6.cpp b/engines/gob/saveload_v6.cpp new file mode 100644 index 0000000000..167d84ebac --- /dev/null +++ b/engines/gob/saveload_v6.cpp @@ -0,0 +1,54 @@ +/* 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 "common/endian.h" + +#include "gob/gob.h" +#include "gob/saveload.h" + +namespace Gob { + +SaveLoad_v6::SaveFile SaveLoad_v6::_saveFiles[] = { + {"mdo.def", 0, kSaveModeExists, kSaveNone} +}; + +SaveLoad_v6::SaveLoad_v6(GobEngine *vm, const char *targetName) : + SaveLoad(vm, targetName) { +} + +SaveLoad_v6::~SaveLoad_v6() { +} + +SaveLoad::SaveMode SaveLoad_v6::getSaveMode(const char *fileName) { + fileName = stripPath(fileName); + + for (int i = 0; i < ARRAYSIZE(_saveFiles); i++) + if (!scumm_stricmp(fileName, _saveFiles[i].sourceName)) + return _saveFiles[i].mode; + + return kSaveModeNone; +} + +} // End of namespace Gob |