aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/access/room.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/engines/access/room.cpp b/engines/access/room.cpp
index 0e6cba052d..83fcce1a15 100644
--- a/engines/access/room.cpp
+++ b/engines/access/room.cpp
@@ -256,15 +256,13 @@ void Room::setupRoom() {
_vm->_screen->_scrollX = 0;
_vm->_screen->_scrollCol = 0;
} else {
- _vm->_screen->_scrollX = _vm->_player->_rawPlayer.x -
- (_vm->_player->_rawPlayer.x >> 4);
- int xp = MAX((_vm->_player->_rawPlayer.x >> 4) -
- (_vm->_screen->_vWindowWidth / 2), 0);
- _vm->_screen->_scrollCol = xp;
-
- xp = xp + _vm->_screen->_vWindowWidth - _playFieldWidth;
- if (xp >= 0) {
- _vm->_screen->_scrollCol = xp + 1;
+ int xv = _vm->_player->_rawPlayer.x / TILE_WIDTH;
+ _vm->_screen->_scrollX = _vm->_player->_rawPlayer.x % TILE_WIDTH;
+ _vm->_screen->_scrollCol = MAX(xv - (_vm->_screen->_vWindowWidth / 2), 0);
+
+ int sx = _vm->_screen->_scrollCol + _vm->_screen->_vWindowWidth - _playFieldWidth;
+ if (sx >= 0) {
+ _vm->_screen->_scrollCol -= sx + 1;
}
}