aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sherlock/scene.cpp4
-rw-r--r--engines/sherlock/talk.cpp6
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