diff options
Diffstat (limited to 'engines/agi/preagi_common.cpp')
-rw-r--r-- | engines/agi/preagi_common.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/engines/agi/preagi_common.cpp b/engines/agi/preagi_common.cpp index ad26879ca1..74dcd75edb 100644 --- a/engines/agi/preagi_common.cpp +++ b/engines/agi/preagi_common.cpp @@ -193,7 +193,17 @@ int PreAgiEngine::getSelection(SelectionTypes type) { void PreAgiEngine::playNote(int16 frequency, int32 length) { _speakerStream->play(Audio::PCSpeaker::kWaveFormSquare, frequency, length); - _system->delayMillis(length); + waitForTimer(length); +} + +void PreAgiEngine::waitForTimer(int msec_delay) { + uint32 start_time = _system->getMillis(); + + while (_system->getMillis() < start_time + msec_delay) { + _gfx->doUpdate(); + _system->updateScreen(); + _system->delayMillis(10); + } } } |