diff options
-rw-r--r-- | engines/sherlock/scene.cpp | 4 | ||||
-rw-r--r-- | engines/sherlock/talk.cpp | 6 |
2 files changed, 9 insertions, 1 deletions
diff --git a/engines/sherlock/scene.cpp b/engines/sherlock/scene.cpp index 50e62b7ba5..487688f3a5 100644 --- a/engines/sherlock/scene.cpp +++ b/engines/sherlock/scene.cpp @@ -798,6 +798,8 @@ void Scene::updateBackground() { screen._backBuffer->transBlitFrom(*_canimShapes[idx]._imageFrame, _canimShapes[idx]._position, _canimShapes[idx]._flags & 2); } + + screen.resetDisplayBounds(); } Exit *Scene::checkForExit(const Common::Rect &r) { @@ -1082,6 +1084,7 @@ void Scene::doBgAnim() { UserInterface &ui = *_vm->_ui; screen.setDisplayBounds(Common::Rect(0, 0, SHERLOCK_SCREEN_WIDTH, SHERLOCK_SCENE_HEIGHT)); + int cursorId = events.getCursor(); Common::Point mousePos = events.mousePos(); @@ -1384,6 +1387,7 @@ void Scene::doBgAnim() { events.wait(1); _doBgAnimDone = true; + screen.resetDisplayBounds(); // Check if the method was called for calling a portrait, and a talk was // interrupting it. This talk file would not have been executed at the time, diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp index ed09ddde9c..b4dde2e6b0 100644 --- a/engines/sherlock/talk.cpp +++ b/engines/sherlock/talk.cpp @@ -455,7 +455,11 @@ void Talk::talkTo(const Common::String &filename) { events._pressed = events._released = events._oldButtons = 0; events.clearKeyboard(); - screen.setDisplayBounds(savedBounds); + if (savedBounds.bottom == SHERLOCK_SCREEN_HEIGHT) + screen.resetDisplayBounds(); + else + screen.setDisplayBounds(savedBounds); + _talkToAbort = abortFlag; // If a script was added to the script stack, restore state so that the |