aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Montoir2006-11-19 02:02:41 +0000
committerGregory Montoir2006-11-19 02:02:41 +0000
commit55da3104cc4a9331ac9db2f525e296641fc8f84b (patch)
treea5d05d27769d3c40326c4d93bad438fab050cdbf
parentc210aff40cd832a1216f22a123b962856f7a9898 (diff)
downloadscummvm-rg350-55da3104cc4a9331ac9db2f525e296641fc8f84b.tar.gz
scummvm-rg350-55da3104cc4a9331ac9db2f525e296641fc8f84b.tar.bz2
scummvm-rg350-55da3104cc4a9331ac9db2f525e296641fc8f84b.zip
workaround bug #1599009
svn-id: r24743
-rw-r--r--engines/queen/grid.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/engines/queen/grid.cpp b/engines/queen/grid.cpp
index cb8ed4696b..0dc7d045df 100644
--- a/engines/queen/grid.cpp
+++ b/engines/queen/grid.cpp
@@ -132,7 +132,20 @@ void Grid::setupNewRoom(uint16 room, uint16 firstRoomObjNum) {
zoneNum = 1;
for (i = firstRoomObjNum + 1; i <= firstRoomObjNum + maxObjRoom; ++i) {
if (_vm->logic()->objectData(i)->name != 0) {
- setZone(GS_ROOM, zoneNum, _objectBox[i]);
+ if (room == 41 && i == 303) {
+
+ // WORKAROUND bug #1599009: In the room 41, the bounding box of the
+ // stairs (object 303) doesn't match with the room picture. With the
+ // original box dimensions, Joe could walk "above" the stairs, giving
+ // the impression of floating in the air.
+ // To fix this, the bounding box is set relative to the position of
+ // the cabinet (object 295).
+
+ uint16 y1 = _objectBox[295].y2 + 1;
+ setZone(GS_ROOM, zoneNum, _objectBox[i].x1, y1, _objectBox[i].x2, _objectBox[i].y2);
+ } else {
+ setZone(GS_ROOM, zoneNum, _objectBox[i]);
+ }
}
++zoneNum;
}