diff options
-rw-r--r-- | engines/supernova2/rooms.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/engines/supernova2/rooms.cpp b/engines/supernova2/rooms.cpp index a95c522428..a5ea68fb2a 100644 --- a/engines/supernova2/rooms.cpp +++ b/engines/supernova2/rooms.cpp @@ -287,14 +287,14 @@ bool Intro::tvSay(int mod1, int mod2, int rest, MessagePosition pos, StringId id if (_gm->waitOnInput(2, key)) { _vm->removeMessage(); - return key != Common::KEYCODE_ESCAPE; + return key != Common::KEYCODE_ESCAPE && !_vm->shouldQuit(); } if (mod2) _vm->renderImage(mod2); if (_gm->waitOnInput(2, key)) { _vm->removeMessage(); - return key != Common::KEYCODE_ESCAPE; + return key != Common::KEYCODE_ESCAPE && !_vm->shouldQuit(); } animation_count--; } @@ -310,12 +310,12 @@ bool Intro::tvRest(int mod1, int mod2, int rest) { _vm->renderImage(mod1); if (_gm->waitOnInput(2, key)) { _vm->removeMessage(); - return key != Common::KEYCODE_ESCAPE; + return key != Common::KEYCODE_ESCAPE && !_vm->shouldQuit(); } _vm->renderImage(mod2); if (_gm->waitOnInput(2, key)) { _vm->removeMessage(); - return key != Common::KEYCODE_ESCAPE; + return key != Common::KEYCODE_ESCAPE && !_vm->shouldQuit(); } rest--; } @@ -328,13 +328,16 @@ bool Intro::displayThoughtMessage(StringId id) { _vm->renderMessage(text, kMessageNormal); if (_gm->waitOnInput((text.size() + 20) * _vm->_textSpeed / 10, key)) { _vm->removeMessage(); - return key != Common::KEYCODE_ESCAPE; + return key != Common::KEYCODE_ESCAPE && !_vm->shouldQuit(); } _vm->removeMessage(); return true; } bool Intro::thoughts1() { + if(_vm->shouldQuit()) + return false; + _vm->setCurrentImage(41); _vm->renderImage(0); _vm->paletteFadeIn(); @@ -353,6 +356,9 @@ bool Intro::thoughts1() { } bool Intro::thoughts2() { + if(_vm->shouldQuit()) + return false; + _vm->setCurrentImage(41); _vm->renderImage(0); _vm->paletteFadeIn(); @@ -399,6 +405,9 @@ bool Intro::thoughts2() { } bool Intro::tvDialogue() { + if(_vm->shouldQuit()) + return false; + _vm->setCurrentImage(39); _vm->renderImage(0); _vm->paletteFadeIn(); @@ -429,6 +438,7 @@ bool Intro::tvDialogue() { if(!tvSay(8, 6, 7, kMessageLeft, kStringIntroTV2)) return false; + debug("%d", _vm->shouldQuit()); _vm->renderImage(10); |