aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--simon/simon.cpp5
-rw-r--r--simon/sound.cpp3
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