aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2014-11-03 21:51:11 -0500
committerPaul Gilbert2014-12-12 22:22:30 -0500
commitfb686191a813c633d215f06ca2aadbf3ad9c64ac (patch)
tree9962fe02bf580c6429edc277bad14f74c3c8b00f /engines
parenta7d88af24d0a2c1e37b91f716ad85c8e7eb000c6 (diff)
downloadscummvm-rg350-fb686191a813c633d215f06ca2aadbf3ad9c64ac.tar.gz
scummvm-rg350-fb686191a813c633d215f06ca2aadbf3ad9c64ac.tar.bz2
scummvm-rg350-fb686191a813c633d215f06ca2aadbf3ad9c64ac.zip
ACCESS: Fix initialisation of Y positioning in rooms with vertical scrolling
Diffstat (limited to 'engines')
-rw-r--r--engines/access/room.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/engines/access/room.cpp b/engines/access/room.cpp
index 9b830770af..76ad29e21a 100644
--- a/engines/access/room.cpp
+++ b/engines/access/room.cpp
@@ -267,14 +267,15 @@ void Room::setupRoom() {
screen._scrollRow = 0;
} else {
screen._scrollY = _vm->_player->_rawPlayer.y -
- (_vm->_player->_rawPlayer.y >> 4);
- int yp = MAX((_vm->_player->_rawPlayer.y >> 4) -
+ (_vm->_player->_rawPlayer.y / 16) * 16;
+ int yc = MAX((_vm->_player->_rawPlayer.y >> 4) -
(screen._vWindowHeight / 2), 0);
- screen._scrollRow = yp;
+ screen._scrollRow = yc;
- yp = yp + screen._vWindowHeight - _playFieldHeight;
- if (yp >= 0) {
- screen._scrollRow = yp + 1;
+ yc = yc + screen._vWindowHeight - _playFieldHeight;
+ if (yc >= 0) {
+ screen._scrollRow = _playFieldHeight - screen._vWindowHeight;
+ screen._scrollY = 0;
}
}
}