Using a step delay of zero for envelope style requests (and also in-game
envelopes) resulted in extremely slow envelope animations (instead of very
fast animations, as could be expected), because "SkipUntilDelayReached()"
won't skip any frames in this case (which should probably be corrected,
too). This is fixed by never using a step delay value less than "1".
boolean no_delay = (tape.warp_forward);
unsigned int anim_delay = 0;
int frame_delay_value = (ffwd_delay ? FfwdFrameDelay : GameFrameDelay);
boolean no_delay = (tape.warp_forward);
unsigned int anim_delay = 0;
int frame_delay_value = (ffwd_delay ? FfwdFrameDelay : GameFrameDelay);
- int anim_delay_value = (no_delay ? 0 : frame_delay_value) / 2;
+ int anim_delay_value = MAX(1, (no_delay ? 0 : frame_delay_value) / 2);
int font_nr = FONT_ENVELOPE_1 + envelope_nr;
int font_width = getFontWidth(font_nr);
int font_height = getFontHeight(font_nr);
int font_nr = FONT_ENVELOPE_1 + envelope_nr;
int font_width = getFontWidth(font_nr);
int font_height = getFontHeight(font_nr);
boolean ffwd_delay = (tape.playing && tape.fast_forward);
boolean no_delay = (tape.warp_forward);
int delay_value = (ffwd_delay ? delay_value_fast : delay_value_normal);
boolean ffwd_delay = (tape.playing && tape.fast_forward);
boolean no_delay = (tape.warp_forward);
int delay_value = (ffwd_delay ? delay_value_fast : delay_value_normal);
- int anim_delay_value = (no_delay ? 0 : delay_value + 500 * 0) / 2;
+ int anim_delay_value = MAX(1, (no_delay ? 0 : delay_value + 500 * 0) / 2);
unsigned int anim_delay = 0;
int tile_size = MAX(request.step_offset, 1);
unsigned int anim_delay = 0;
int tile_size = MAX(request.step_offset, 1);