aboutsummaryrefslogtreecommitdiff
path: root/engines/drascula/animation.cpp
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 /engines/drascula/animation.cpp
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.)
Diffstat (limited to 'engines/drascula/animation.cpp')
-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();