diff options
author | Travis Howell | 2003-07-24 14:21:56 +0000 |
---|---|---|
committer | Travis Howell | 2003-07-24 14:21:56 +0000 |
commit | 635fea9b178825a404cb6aec5a389ed3d66afc8f (patch) | |
tree | e301d6b4f030a3ca7c72e822f99237d8b7580c28 /simon | |
parent | 55c71f65c0794acb45acd4ac07854bd5b53e4429 (diff) | |
download | scummvm-rg350-635fea9b178825a404cb6aec5a389ed3d66afc8f.tar.gz scummvm-rg350-635fea9b178825a404cb6aec5a389ed3d66afc8f.tar.bz2 scummvm-rg350-635fea9b178825a404cb6aec5a389ed3d66afc8f.zip |
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
Diffstat (limited to 'simon')
-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 |