aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/files.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/files.cpp')
-rw-r--r--engines/xeen/files.cpp20
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 };