FULLPIPE: Fix game save/load

This commit is contained in:
Eugene Sandulenko 2016-09-19 19:17:02 +02:00
parent 783d968e20
commit a60558071d
3 changed files with 3 additions and 5 deletions

View File

@ -78,8 +78,6 @@ void GameLoader::readSavegame(const char *fname) {
for (uint i = 0; i < header.encSize; i++)
data[i] -= i & 0x7f;
//Common::hexdump(data, 48);
MfcArchive *archive = new MfcArchive(new Common::MemoryReadStream(data, header.encSize));
GameVar *var = (GameVar *)archive->readClass();

View File

@ -97,8 +97,6 @@ void GameLoader::writeSavegame(Scene *sc, const char *fname) {
for (uint i = 0; i < header.encSize; i++)
stream.getData()[i] += i & 0x7f;
//Common::hexdump(stream.getData(), 48);
if (_savegameCallback)
_savegameCallback(archive, true);

View File

@ -475,9 +475,11 @@ void MfcArchive::writeObject(CObject *obj) {
writeUint16LE(0xffff); // New class
_objectHash[obj] = _lastIndex++;
writeUint16LE(1); // schema
switch (obj->_objtype) {
case kObjTypeGameVar:
writePascalString(lookupObjectId(kGameVar));
writePascalString(lookupObjectId(kGameVar), true); // Two byte counter
break;
default:
error("Unhandled save for object type: %d", obj->_objtype);