From 635fea9b178825a404cb6aec5a389ed3d66afc8f Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Thu, 24 Jul 2003 14:21:56 +0000 Subject: Simon games shold only play one voice at a time. Fixes many voice overlaps Fixes subtitles been ot of sync with voice, with simon 1 versions that had combi ned speech/subtitles. svn-id: r9167 --- simon/simon.cpp | 5 +---- simon/sound.cpp | 3 +++ 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'simon') 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 -- cgit v1.2.3