diff options
Diffstat (limited to 'engines/kyra')
-rw-r--r-- | engines/kyra/seqplayer.cpp | 2 | ||||
-rw-r--r-- | engines/kyra/sequences_v1.cpp | 12 |
2 files changed, 10 insertions, 4 deletions
diff --git a/engines/kyra/seqplayer.cpp b/engines/kyra/seqplayer.cpp index 15cec11477..7ee91e91aa 100644 --- a/engines/kyra/seqplayer.cpp +++ b/engines/kyra/seqplayer.cpp @@ -627,7 +627,7 @@ bool SeqPlayer::playSequence(const uint8 *seqData, bool skipSeq) { uint8 seqCode = *_seqData++; if (seqCode < numCommands) { SeqProc currentProc = commands[seqCode].proc; - debugC( 5, kDebugLevelSequence, "seqCode = %d (%s)", seqCode, commands[seqCode].desc); + debugC(5, kDebugLevelSequence, "seqCode = %d (%s)", seqCode, commands[seqCode].desc); (this->*currentProc)(); } else { error("Invalid sequence opcode %d", seqCode); diff --git a/engines/kyra/sequences_v1.cpp b/engines/kyra/sequences_v1.cpp index 8d527b09ad..0d15768f01 100644 --- a/engines/kyra/sequences_v1.cpp +++ b/engines/kyra/sequences_v1.cpp @@ -135,19 +135,22 @@ void KyraEngine::seq_introLogos() { _screen->updateScreen(); _screen->fadeFromBlack(); - if (_seq->playSequence(_seq_WestwoodLogo, _skipFlag)) { + if (_seq->playSequence(_seq_WestwoodLogo, _skipFlag) || _quitFlag) { _screen->fadeToBlack(); _screen->clearPage(0); return; } delay(60 * _tickLength); - if (_seq->playSequence(_seq_KyrandiaLogo, _skipFlag) && !seq_skipSequence()) { + if (_seq->playSequence(_seq_KyrandiaLogo, _skipFlag) && !seq_skipSequence() || _quitFlag) { _screen->fadeToBlack(); _screen->clearPage(0); return; } _screen->fillRect(0, 179, 319, 199, 0); + if (_quitFlag) + return; + int y1 = 8; int h1 = 175; int y2 = 176; @@ -174,7 +177,10 @@ void KyraEngine::seq_introLogos() { if (wait > 0) { delay(wait); } - } while (y2 >= 64); + } while (y2 >= 64 && !_quitFlag); + + if (_quitFlag) + return; _seq->playSequence(_seq_Forest, true); } |