diff options
author | Gregory Montoir | 2007-07-31 21:17:15 +0000 |
---|---|---|
committer | Gregory Montoir | 2007-07-31 21:17:15 +0000 |
commit | d4999255b7e66cd263a203c140d4372568837c6f (patch) | |
tree | 46ed5423629de70d841fed374b125887dae41245 /engines | |
parent | 6b3c03317d236da2c8d13754d59a8a9bd9ae851b (diff) | |
download | scummvm-rg350-d4999255b7e66cd263a203c140d4372568837c6f.tar.gz scummvm-rg350-d4999255b7e66cd263a203c140d4372568837c6f.tar.bz2 scummvm-rg350-d4999255b7e66cd263a203c140d4372568837c6f.zip |
fix for bug #1751226 (glitches on save/load
svn-id: r28370
Diffstat (limited to 'engines')
-rw-r--r-- | engines/touche/saveload.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/engines/touche/saveload.cpp b/engines/touche/saveload.cpp index 653c2d26a3..fb82e68944 100644 --- a/engines/touche/saveload.cpp +++ b/engines/touche/saveload.cpp @@ -280,8 +280,8 @@ void ToucheEngine::loadGameStateData(Common::ReadStream *stream) { _newMusicNum = stream->readUint16LE(); _currentRoomNum = stream->readUint16LE(); res_loadRoom(_currentRoomNum); - int16 roomOffsX = stream->readUint16LE(); - int16 roomOffsY = stream->readUint16LE(); + int16 roomOffsX = _flagsTable[614] = stream->readUint16LE(); + int16 roomOffsY = _flagsTable[615] = stream->readUint16LE(); _disabledInputCounter = stream->readUint16LE(); res_loadProgram(_currentEpisodeNum); setupEpisode(-1); @@ -291,7 +291,7 @@ void ToucheEngine::loadGameStateData(Common::ReadStream *stream) { saveOrLoadCommonArray(*stream, _programWalkTable); saveOrLoadCommonArray(*stream, _programPointsTable); stream->read(_updatedRoomAreasTable, 200); - for (uint i = 1; i <= _updatedRoomAreasTable[0]; ++i) { + for (uint i = 1; i < _updatedRoomAreasTable[0]; ++i) { updateRoomAreas(_updatedRoomAreasTable[i], -1); } saveOrLoadStaticArray(*stream, _sequenceEntryTable, NUM_SEQUENCES); @@ -327,7 +327,9 @@ void ToucheEngine::loadGameStateData(Common::ReadStream *stream) { Graphics::copyRect(_offscreenBuffer, kScreenWidth, 0, 0, _backdropBuffer, _currentBitmapWidth, _flagsTable[614], _flagsTable[615], kScreenWidth, kRoomHeight); + updateRoomRegions(); updateEntireScreen(); + _roomNeedRedraw = false; if (_flagsTable[617] != 0) { res_loadSpeech(_flagsTable[617]); } |