diff options
-rw-r--r-- | engines/fullpipe/stateloader.cpp | 14 | ||||
-rw-r--r-- | engines/fullpipe/statesaver.cpp | 13 |
2 files changed, 25 insertions, 2 deletions
diff --git a/engines/fullpipe/stateloader.cpp b/engines/fullpipe/stateloader.cpp index 8f6a3b243c..32c611ff0b 100644 --- a/engines/fullpipe/stateloader.cpp +++ b/engines/fullpipe/stateloader.cpp @@ -106,7 +106,9 @@ void GameLoader::readSavegame(const char *fname) { for (uint i = 0; i < arrSize; i++) { _sc2array[i]._picAniInfosCount = archive->readUint32LE(); - debugC(3, kDebugLoading, "Count %d: %d", i, _sc2array[i]._picAniInfosCount); + + if (_sc2array[i]._picAniInfosCount) + debugC(3, kDebugLoading, "Count %d: %d", i, _sc2array[i]._picAniInfosCount); free(_sc2array[i]._picAniInfos); _sc2array[i]._picAniInfos = (PicAniInfo **)malloc(sizeof(PicAniInfo *) * _sc2array[i]._picAniInfosCount); @@ -117,6 +119,14 @@ void GameLoader::readSavegame(const char *fname) { } } + int num = 2; + for (int k = 0; k < _sc2array[num]._picAniInfosCount; k++) { + debugC(4, kDebugLoading, "num: %d", k); + debugC(4, kDebugLoading, "type: %d id: %d", _sc2array[num]._picAniInfos[k]->type, _sc2array[num]._picAniInfos[k]->objectId); + debugC(4, kDebugLoading, "staticsId: %d movid: %d movphase: %d", _sc2array[num]._picAniInfos[k]->staticsId, + _sc2array[num]._picAniInfos[k]->movementId, _sc2array[num]._picAniInfos[k]->dynamicPhaseIndex); + } + delete archive; getGameLoaderInventory()->rebuildItemRects(); @@ -588,6 +598,8 @@ bool PicAniInfo::load(MfcArchive &file) { oy = file.readSint32LE(); priority = file.readUint32LE(); staticsId = file.readUint16LE(); + if (objectId == 334) + warning("objid: %d stid: %d", objectId, staticsId); movementId = file.readUint16LE(); dynamicPhaseIndex = file.readUint16LE(); flags = file.readUint16LE(); diff --git a/engines/fullpipe/statesaver.cpp b/engines/fullpipe/statesaver.cpp index 31c2543a23..cbededf283 100644 --- a/engines/fullpipe/statesaver.cpp +++ b/engines/fullpipe/statesaver.cpp @@ -90,13 +90,22 @@ void GameLoader::writeSavegame(Scene *sc, const char *fname) { for (uint i = 0; i < _sc2array.size(); i++) { archive->writeUint32LE(_sc2array[i]._picAniInfosCount); - debugC(3, kDebugLoading, "Count %d: %d", i, _sc2array[i]._picAniInfosCount); + if (_sc2array[i]._picAniInfosCount) + debugC(3, kDebugLoading, "Count %d: %d", i, _sc2array[i]._picAniInfosCount); for (uint j = 0; j < _sc2array[i]._picAniInfosCount; j++) { _sc2array[i]._picAniInfos[j]->save(*archive); } } + int num = 2; + for (int k = 0; k < _sc2array[num]._picAniInfosCount; k++) { + debugC(4, kDebugLoading, "num: %d", k); + debugC(4, kDebugLoading, "type: %d id: %d", _sc2array[num]._picAniInfos[k]->type, _sc2array[num]._picAniInfos[k]->objectId); + debugC(4, kDebugLoading, "staticsId: %d movid: %d movphase: %d", _sc2array[num]._picAniInfos[k]->staticsId, + _sc2array[num]._picAniInfos[k]->movementId, _sc2array[num]._picAniInfos[k]->dynamicPhaseIndex); + } + header.encSize = stream.size(); // Now obfuscate the data @@ -169,6 +178,8 @@ void PicAniInfo::save(MfcArchive &file) { file.writeSint32LE(oy); file.writeUint32LE(priority); file.writeUint16LE(staticsId); + if (objectId == 334) + warning("objid: %d stid: %d", objectId, staticsId); file.writeUint16LE(movementId); file.writeUint16LE(dynamicPhaseIndex); file.writeUint16LE(flags); |