diff options
-rw-r--r-- | engines/tinsel/saveload.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/engines/tinsel/saveload.cpp b/engines/tinsel/saveload.cpp index b6935d41ab..50f6d8d00b 100644 --- a/engines/tinsel/saveload.cpp +++ b/engines/tinsel/saveload.cpp @@ -165,8 +165,7 @@ static bool syncSaveGameHeader(Common::Serializer &s, SaveGameHeader &hdr) { } static void syncSavedMover(Common::Serializer &s, SAVED_MOVER &sm) { - SCNHANDLE *pList[3] = { (SCNHANDLE *)&sm.walkReels, - (SCNHANDLE *)&sm.standReels, (SCNHANDLE *)&sm.talkReels }; + int i, j; s.syncAsUint32LE(sm.bActive); s.syncAsSint32LE(sm.actorID); @@ -174,11 +173,21 @@ static void syncSavedMover(Common::Serializer &s, SAVED_MOVER &sm) { s.syncAsSint32LE(sm.objY); s.syncAsUint32LE(sm.hLastfilm); - for (int pIndex = 0; pIndex < 3; ++pIndex) { - SCNHANDLE *p = pList[pIndex]; - for (int i = 0; i < TOTAL_SCALES * 4; ++i) - s.syncAsUint32LE(*p++); - } + // Sync walk reels + for (i = 0; i < TOTAL_SCALES; ++i) + for (j = 0; j < 4; ++j) + s.syncAsUint32LE(sm.walkReels[i][j]); + + // Sync stand reels + for (i = 0; i < TOTAL_SCALES; ++i) + for (j = 0; j < 4; ++j) + s.syncAsUint32LE(sm.standReels[i][j]); + + // Sync talk reels + for (i = 0; i < TOTAL_SCALES; ++i) + for (j = 0; j < 4; ++j) + s.syncAsUint32LE(sm.talkReels[i][j]); + if (TinselV2) { s.syncAsByte(sm.bHidden); |