diff --git a/engines/sherlock/objects.h b/engines/sherlock/objects.h index 9e43c087b89..8099c6b74f3 100644 --- a/engines/sherlock/objects.h +++ b/engines/sherlock/objects.h @@ -117,6 +117,9 @@ public: void adjustSprite(); void checkSprite(); + + int frameWidth() const { return _imageFrame ? _imageFrame->_frame.w : 0; } + int frameHeight() const { return _imageFrame ? _imageFrame->_frame.h : 0; } }; struct ActionType { diff --git a/engines/sherlock/scene.cpp b/engines/sherlock/scene.cpp index 2133da5056a..9f549b43128 100644 --- a/engines/sherlock/scene.cpp +++ b/engines/sherlock/scene.cpp @@ -777,7 +777,8 @@ void Scene::updateBackground() { player._sequenceNumber == WALK_DOWNRIGHT || player._sequenceNumber == STOP_DOWNRIGHT; surface.transBlitFrom(player._imageFrame->_frame, - Common::Point(player._position.x / 100, player._position.y / 100), flipped); + Common::Point(player._position.x / 100, + player._position.y / 100 - player.frameHeight()), flipped); } // Draw all static and active shapes that are NORMAL and are in front of the player