diff options
-rw-r--r-- | simon/simon.cpp | 5 | ||||
-rw-r--r-- | simon/sound.cpp | 3 |
2 files changed, 4 insertions, 4 deletions
diff --git a/simon/simon.cpp b/simon/simon.cpp index 7bc8ef60e2..7ed2014afb 100644 --- a/simon/simon.cpp +++ b/simon/simon.cpp @@ -2389,8 +2389,7 @@ void SimonEngine::expire_vga_timers() { _vga_tick_counter++; while (vte->delay) { - // not quite ok, good enough - if ((int16)(vte->delay -= 5) <= 0) { + if (!--vte->delay) { uint16 cur_file = vte->cur_vga_file; uint16 cur_unk = vte->sprite_id; byte *script_ptr = vte->script_pointer; @@ -2399,8 +2398,6 @@ void SimonEngine::expire_vga_timers() { delete_vga_timer(vte); if (script_ptr == NULL) { - // special scroll timer - scroll_timeout(); } else { vc_resume_sprite(script_ptr, cur_file, cur_unk); } diff --git a/simon/sound.cpp b/simon/sound.cpp index 9276e3a40e..18b84e86a5 100644 --- a/simon/sound.cpp +++ b/simon/sound.cpp @@ -450,6 +450,9 @@ void SimonSound::playVoice(uint sound) { if (!_voice) return; + if (_voice) + _mixer->stop(_voice_index); + if (_game == GAME_SIMON1CD32) _voice_index = _voice->playSound(sound, &_voice_handle, FLAG_SIGNED); else |