aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/sherlock/scene.cpp3
-rw-r--r--engines/sherlock/talk.cpp2
2 files changed, 4 insertions, 1 deletions
diff --git a/engines/sherlock/scene.cpp b/engines/sherlock/scene.cpp
index 7b885a2cb9..f6fe8c8671 100644
--- a/engines/sherlock/scene.cpp
+++ b/engines/sherlock/scene.cpp
@@ -1014,6 +1014,9 @@ int Scene::startCAnim(int cAnimNum, int playRate) {
while (--temp > 0) {
cObj._frameNumber--;
doBgAnim();
+
+ if (_vm->shouldQuit())
+ return 0;
}
cObj._frameNumber += dir;
diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp
index ea2cb16252..427be09cc3 100644
--- a/engines/sherlock/talk.cpp
+++ b/engines/sherlock/talk.cpp
@@ -1117,7 +1117,7 @@ void Talk::doScript(const Common::String &script) {
// doing bg anims in the next call, so we need to know where to return to
++str;
_scriptCurrentIndex = (str + 1) - script.c_str();
- scene.startCAnim(((byte)str[0] - 1) & 127, 1 + ((byte)str[0] & 128));
+ scene.startCAnim(((byte)str[0] - 1) & 127, ((byte)str[0] & 128) ? -1 : 1);
if (_talkToAbort)
return;