aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
authorRodrigo Rebello2014-11-02 15:07:09 -0200
committerRodrigo Rebello2014-11-30 13:30:00 -0200
commit30b6a479e5b1510cb5157c72decdb24aa4c24ed1 (patch)
treeb89958389647b1042cbbb32a95c2ea4268417c99 /engines/scumm
parent244da223bd44759febbc8d5ff3044c1bbc61ae07 (diff)
downloadscummvm-rg350-30b6a479e5b1510cb5157c72decdb24aa4c24ed1.tar.gz
scummvm-rg350-30b6a479e5b1510cb5157c72decdb24aa4c24ed1.tar.bz2
scummvm-rg350-30b6a479e5b1510cb5157c72decdb24aa4c24ed1.zip
SCUMM: Fix bug #6679 - INDY3 DOS-EGA: book of maps graphic glitch
Force correct width value for room 64 (book of maps) in Indy3. This works around the wrong value stored in the data files of a specific version of the game (DOS/EGA v1.0, according to scumm-md5.txt).
Diffstat (limited to 'engines/scumm')
-rw-r--r--engines/scumm/room.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/engines/scumm/room.cpp b/engines/scumm/room.cpp
index 3828629997..4b59e22408 100644
--- a/engines/scumm/room.cpp
+++ b/engines/scumm/room.cpp
@@ -614,6 +614,15 @@ void ScummEngine_v3old::setupRoomSubBlocks() {
}
} else {
_roomWidth = READ_LE_UINT16(&(rmhd->old.width));
+
+ // WORKAROUND: Fix bad width value for room 64 (book of maps) in
+ // Indy3. A specific version of this game (DOS/EGA v1.0, according to
+ // scumm-md5.txt) has a wrong width of 1793 stored in the data files,
+ // which causes a strange situation in which the book view may scroll
+ // towards the right depending on Indy's position from the previous room.
+ // Fixes bug #6679.
+ if (_game.id == GID_INDY3 && _roomResource == 64 && _roomWidth == 1793)
+ _roomWidth = 320;
_roomHeight = READ_LE_UINT16(&(rmhd->old.height));
}
_numObjectsInRoom = roomptr[20];