aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/stateloader.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/stateloader.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/stateloader.cpp')
-rw-r--r--engines/fullpipe/stateloader.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/engines/fullpipe/stateloader.cpp b/engines/fullpipe/stateloader.cpp
index 1e1cf35abd..5142d2bfe2 100644
--- a/engines/fullpipe/stateloader.cpp
+++ b/engines/fullpipe/stateloader.cpp
@@ -37,6 +37,15 @@
namespace Fullpipe {
+void gameLoaderSavegameCallback(MfcArchive *archive, bool mode) {
+ if (mode)
+ for (int i = 0; i < 200; i++)
+ archive->writeUint32LE(g_fp->_mapTable[i]);
+ else
+ for (int i = 0; i < 200; i++)
+ g_fp->_mapTable[i] = archive->readUint32LE();
+}
+
bool FullpipeEngine::loadGam(const char *fname, int scene) {
_gameLoader = new GameLoader();
@@ -60,7 +69,7 @@ bool FullpipeEngine::loadGam(const char *fname, int scene) {
// _sceneSwitcher = sceneSwitcher; // substituted with direct call
_gameLoader->_preloadCallback = preloadCallback;
- // _savegameCallback = gameLoaderSavegameCallback; // TODO
+ _gameLoader->_savegameCallback = gameLoaderSavegameCallback;
_aniMan = accessScene(SC_COMMON)->getAniMan();
_scene2 = 0;