aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/sherlock/scene.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/engines/sherlock/scene.cpp b/engines/sherlock/scene.cpp
index a33574030f..328bf647d4 100644
--- a/engines/sherlock/scene.cpp
+++ b/engines/sherlock/scene.cpp
@@ -1210,6 +1210,15 @@ void Scene::transitionToScene() {
// Standard info, so set it
people[HOLMES]._position = hSavedPos;
people[HOLMES]._sequenceNumber = hSavedFacing;
+
+ if (saves._justLoaded && IS_ROSE_TATTOO) {
+ Tattoo::TattooUserInterface &ui = *(Tattoo::TattooUserInterface *)_vm->_ui;
+
+ // For scrolling scenes, make sure the player is on-screen
+ ui._targetScroll.x = CLIP(people[HOLMES]._position.x / FIXED_INT_MULTIPLIER -
+ SHERLOCK_SCREEN_WIDTH / 8 - 250, 0, screen._backBuffer1.w() - SHERLOCK_SCREEN_WIDTH);
+ screen._currentScroll = ui._targetScroll;
+ }
} else {
// It's canimation information
cAnimNum = hSavedFacing - 101;
@@ -1283,7 +1292,7 @@ void Scene::transitionToScene() {
screen.fadeIntoScreen3DO(3);
}
} else {
- screen.blitFrom(screen._backBuffer1);
+ screen.slamArea(screen._currentScroll.x, screen._currentScroll.y, SHERLOCK_SCREEN_WIDTH, SHERLOCK_SCREEN_HEIGHT);
}
screen.update();