aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorJohannes Schickel2006-07-26 05:27:34 +0000
committerJohannes Schickel2006-07-26 05:27:34 +0000
commit5ccb436cad9682bdaa86a41299c5ec7e2b0b0a02 (patch)
tree90f4f958d177fb2733c6320518b3d5c661276f54 /engines
parent37d050e9da0ef9adb2de6c906e665ccda03c838b (diff)
downloadscummvm-rg350-5ccb436cad9682bdaa86a41299c5ec7e2b0b0a02.tar.gz
scummvm-rg350-5ccb436cad9682bdaa86a41299c5ec7e2b0b0a02.tar.bz2
scummvm-rg350-5ccb436cad9682bdaa86a41299c5ec7e2b0b0a02.zip
Nicer quit handling in the intro sequences.
svn-id: r23594
Diffstat (limited to 'engines')
-rw-r--r--engines/kyra/seqplayer.cpp2
-rw-r--r--engines/kyra/sequences_v1.cpp12
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);
}