diff options
author | Torbjörn Andersson | 2013-01-04 14:21:34 +0100 |
---|---|---|
committer | Torbjörn Andersson | 2013-01-04 14:21:34 +0100 |
commit | 069f1079d8c9a253e019380c6074dc711f8953d2 (patch) | |
tree | 0769c5cb3ba36970c04df542c57640c51f7fda4f /engines | |
parent | 92dc12a3b207833ee7f5a24516d198ca2c997b7c (diff) | |
download | scummvm-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')
-rw-r--r-- | engines/drascula/animation.cpp | 14 |
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(); |