diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sherlock/scene.cpp | 3 | ||||
-rw-r--r-- | engines/sherlock/talk.cpp | 2 |
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; |