diff options
Diffstat (limited to 'engines/xeen/files.cpp')
-rw-r--r-- | engines/xeen/files.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/engines/xeen/files.cpp b/engines/xeen/files.cpp index 83a4ca9072..d18b5c4dd6 100644 --- a/engines/xeen/files.cpp +++ b/engines/xeen/files.cpp @@ -218,7 +218,7 @@ Common::SeekableReadStream *CCArchive::createReadStreamForMember(const Common::S /*------------------------------------------------------------------------*/ FileManager::FileManager(XeenEngine *vm) { - _isDarkCc = vm->getGameID() == GType_DarkSide; + _ccNum = vm->getGameID() == GType_DarkSide; File::_xeenCc = File::_darkCc = File::_introCc = nullptr; File::_xeenSave = File::_darkSave = nullptr; File::_currentSave = nullptr; @@ -277,7 +277,7 @@ void FileManager::setGameCc(int ccMode) { } File::setCurrentArchive(ccMode); - _isDarkCc = ccMode != 0; + _ccNum = ccMode != 0; } void FileManager::load(Common::SeekableReadStream &stream) { @@ -285,7 +285,7 @@ void FileManager::load(Common::SeekableReadStream &stream) { } void FileManager::save(Common::WriteStream &s) { - s.writeByte(_isDarkCc ? 1 : 0); + s.writeByte(_ccNum ? 1 : 0); } /*------------------------------------------------------------------------*/ @@ -330,7 +330,7 @@ bool File::open(const Common::String &filename, Common::Archive &archive) { bool File::open(const Common::String &filename, int ccMode) { FileManager &files = *g_vm->_files; - int oldMode = files._isDarkCc ? 1 : 0; + int oldNum = files._ccNum; files.setGameCc(ccMode); if (File::exists(filename, *_currentArchive)) @@ -338,7 +338,7 @@ bool File::open(const Common::String &filename, int ccMode) { else File::open(filename); - files.setGameCc(oldMode); + files.setGameCc(oldNum); return true; } @@ -390,11 +390,11 @@ bool File::exists(const Common::String &filename) { bool File::exists(const Common::String &filename, int ccMode) { FileManager &files = *g_vm->_files; - int oldMode = files._isDarkCc ? 1 : 0; + int oldNum = files._ccNum; files.setGameCc(ccMode); bool result = exists(filename); - files.setGameCc(oldMode); + files.setGameCc(oldNum); return result; } @@ -480,6 +480,7 @@ Common::SeekableReadStream *SaveArchive::createReadStreamForMember(uint16 id) co } void SaveArchive::load(Common::SeekableReadStream &stream) { + _newData.clear(); loadIndex(stream); delete[] _data; @@ -487,8 +488,10 @@ void SaveArchive::load(Common::SeekableReadStream &stream) { _data = new byte[_dataSize]; stream.seek(0); stream.read(_data, _dataSize); +} - // Load in the character stats and active party +void SaveArchive::loadParty() { + // Load in the character roster and active party Common::SeekableReadStream *chr = createReadStreamForMember("maze.chr"); Common::Serializer sChr(chr, nullptr); _party->_roster.synchronize(sChr); @@ -503,6 +506,7 @@ void SaveArchive::load(Common::SeekableReadStream &stream) { void SaveArchive::reset(CCArchive *src) { Common::MemoryWriteStreamDynamic saveFile(DisposeAfterUse::YES); File fIn; + _newData.clear(); g_vm->_files->setGameCc(g_vm->getGameID() == GType_DarkSide ? 1 : 0); const int RESOURCES[6] = { 0x2A0C, 0x2A1C, 0x2A2C, 0x2A3C, 0x284C, 0x2A5C }; |