diff options
-rw-r--r-- | engines/tsage/core.cpp | 10 | ||||
-rw-r--r-- | engines/tsage/scenes.cpp | 4 |
2 files changed, 8 insertions, 6 deletions
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp index 07548224ed..7749e89580 100644 --- a/engines/tsage/core.cpp +++ b/engines/tsage/core.cpp @@ -2160,8 +2160,8 @@ void SceneObject::updateScreen() { if (srcRect.isValidRect()) { Rect destRect = srcRect; - destRect.translate(-_globals->_sceneOffset.x, -_globals->_sceneOffset.y); destRect.translate(-sceneBounds.left, -sceneBounds.top); + srcRect.translate(-_globals->_sceneOffset.x, -_globals->_sceneOffset.y); _globals->_screenSurface.copyFrom(_globals->_sceneManager._scene->_backSurface, srcRect, destRect); } @@ -2194,8 +2194,10 @@ void SceneObjectList::draw() { } else { // If there is a scroll follower, check whether it has moved off-screen if (_globals->_scrollFollower) { - const Common::Point &objPos = _globals->_scrollFollower->_position; const Rect &scrollerRect = _globals->_sceneManager._scrollerRect; + Common::Point objPos( + _globals->_scrollFollower->_position.x - _globals->_sceneManager._scene->_sceneBounds.left, + _globals->_scrollFollower->_position.y - _globals->_sceneManager._scene->_sceneBounds.top); int loadCount = 0; if (objPos.x >= scrollerRect.right) { @@ -2568,8 +2570,8 @@ void Player::process(Event &event) { (_position != event.mousePos) && _globals->_sceneObjects->contains(this)) { PlayerMover *newMover = new PlayerMover(); - Common::Point destPos(event.mousePos.x - _globals->_sceneManager._scene->_sceneBounds.left, - event.mousePos.y - _globals->_sceneManager._scene->_sceneBounds.top); + Common::Point destPos(event.mousePos.x + _globals->_sceneManager._scene->_sceneBounds.left, + event.mousePos.y + _globals->_sceneManager._scene->_sceneBounds.top); addMover(newMover, &destPos, NULL); event.handled = true; diff --git a/engines/tsage/scenes.cpp b/engines/tsage/scenes.cpp index e0ef87f66b..cc5ccb333a 100644 --- a/engines/tsage/scenes.cpp +++ b/engines/tsage/scenes.cpp @@ -344,10 +344,10 @@ void Scene::refreshBackground(int xAmount, int yAmount) { int yHalfOffset = (_backgroundBounds.height() / 100) == 3 ? 0 : _sceneBounds.top / 100; // Set the limits and increment amounts - int yInc = (xAmount < 0) ? -1 : 1; + int xInc = (xAmount < 0) ? -1 : 1; int xSection = (xAmount < 0) ? 15 : 0; int xSectionEnd = (xAmount < 0) ? -1 : 16; - int xInc = (yAmount < 0) ? -1 : 1; + int yInc = (yAmount < 0) ? -1 : 1; int ySection = (yAmount < 0) ? 15 : 0; int ySectionEnd = (yAmount < 0) ? -1 : 16; bool changedFlag = false; |