aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjörn Andersson2013-01-04 14:21:34 +0100
committerTorbjörn Andersson2013-01-04 14:21:34 +0100
commit069f1079d8c9a253e019380c6074dc711f8953d2 (patch)
tree0769c5cb3ba36970c04df542c57640c51f7fda4f
parent92dc12a3b207833ee7f5a24516d198ca2c997b7c (diff)
downloadscummvm-rg350-069f1079d8c9a253e019380c6074dc711f8953d2.tar.gz
scummvm-rg350-069f1079d8c9a253e019380c6074dc711f8953d2.tar.bz2
scummvm-rg350-069f1079d8c9a253e019380c6074dc711f8953d2.zip
DRASCULA: Respond quicker to aborting the von Braun song
This also fixes a palette glitch when trying to interrupt during a fade. (The old image would flash before the room changed. It's possible other such glitches still exist here, but if so they're much less obvious than that one was.)
-rw-r--r--engines/drascula/animation.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/engines/drascula/animation.cpp b/engines/drascula/animation.cpp
index 43799f7944..969d06f2ef 100644
--- a/engines/drascula/animation.cpp
+++ b/engines/drascula/animation.cpp
@@ -798,17 +798,22 @@ void DrasculaEngine::animation_16_2() {
return;
}
- delay(3000);
+ uint32 now = _system->getMillis();
+ while (_system->getMillis() - now < 3000 * 2) {
+ delay(50);
+ if (getScan() != 0) {
+ asco();
+ return;
+ }
+ }
if (i < 4) {
fadeToBlack(1);
-
+ clearRoom();
if (getScan() != 0) {
asco();
return;
}
-
- clearRoom();
}
}
@@ -818,6 +823,7 @@ void DrasculaEngine::animation_16_2() {
for (int l = 1; l < 200; l++) {
copyBackground(0, 0, 0, l, 320, 200 - l, drawSurface3, screenSurface);
copyBackground(0, 200 - l, 0, 0, 320, l, bgSurface, screenSurface);
+ delay(10);
updateScreen();
if (getScan() != 0) {
asco();