From 8d1d1f6739b3b9f456d618a8740d754ddac2eb41 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 21 Aug 2014 21:03:44 -0400 Subject: ACCESS: Fix displaying background in scrolling rooms --- engines/access/room.cpp | 16 +++++++--------- 1 file 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; } } -- cgit v1.2.3