aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/gameloader.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2016-09-18 09:32:58 +0200
committerEugene Sandulenko2016-09-18 09:37:37 +0200
commitb413d01113d39d74639cb8f068efb0f14110d646 (patch)
tree14ac49649cda792531f53acac8efca363d58bc54 /engines/fullpipe/gameloader.cpp
parentc42dfbc4968ff2cdc7ad1ed316164d4cab20b550 (diff)
downloadscummvm-rg350-b413d01113d39d74639cb8f068efb0f14110d646.tar.gz
scummvm-rg350-b413d01113d39d74639cb8f068efb0f14110d646.tar.bz2
scummvm-rg350-b413d01113d39d74639cb8f068efb0f14110d646.zip
FULLPIPE: Implement map saving and save obfuscation
Diffstat (limited to 'engines/fullpipe/gameloader.cpp')
-rw-r--r--engines/fullpipe/gameloader.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/engines/fullpipe/gameloader.cpp b/engines/fullpipe/gameloader.cpp
index 8524a8ddf5..bbe99ab9f5 100644
--- a/engines/fullpipe/gameloader.cpp
+++ b/engines/fullpipe/gameloader.cpp
@@ -673,11 +673,14 @@ void GameLoader::writeSavegame(Scene *sc, const char *fname) {
}
}
- //header.encSize = GameLoader_encryptSavegame((GameLoader *)header.unkField, (int)&cmemfile);
- //CFile::Write((int)&cfile, (int)&header, header.saveSize);
+ header.encSize = stream.size();
- //if (_savegameCallback)
- // _savegameCallback(saveFile, 1);
+ // Now obfuscate the data
+ for (uint i = 0; i < header.encSize; i++)
+ stream.getData()[i] += i & 0x7f;
+
+ if (_savegameCallback)
+ _savegameCallback(archive, true);
// Now dump it into save file
Common::OutSaveFile *saveFile = g_system->getSavefileManager()->openForSaving(fname);