aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--simon/simon.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/simon/simon.cpp b/simon/simon.cpp
index 7ed2014afb..7bc8ef60e2 100644
--- a/simon/simon.cpp
+++ b/simon/simon.cpp
@@ -2389,7 +2389,8 @@ void SimonEngine::expire_vga_timers() {
_vga_tick_counter++;
while (vte->delay) {
- if (!--vte->delay) {
+ // not quite ok, good enough
+ if ((int16)(vte->delay -= 5) <= 0) {
uint16 cur_file = vte->cur_vga_file;
uint16 cur_unk = vte->sprite_id;
byte *script_ptr = vte->script_pointer;
@@ -2398,6 +2399,8 @@ 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);
}