From 097b52b66180712fd9e285dd62013bc9533b2be9 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 19 Jul 2015 20:12:08 -0400 Subject: SHERLOCK: RT: Fix loading saves where the screen is scrolled --- engines/sherlock/scene.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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(); -- cgit v1.2.3