X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Ftoons.c;h=f2684b4034d626e097f77319f2172d2b8d83f9df;hb=80b3b0a5109b5678a9a921fcd1b4f7046e5e76d0;hp=613d2017a7993e5aa900f371c0779faa9a261d64;hpb=c8acee298eb56783813578bf38cabddfee9976c4;p=rocksndiamonds.git diff --git a/src/libgame/toons.c b/src/libgame/toons.c index 613d2017..f2684b40 100644 --- a/src/libgame/toons.c +++ b/src/libgame/toons.c @@ -64,10 +64,10 @@ int getAnimationFrame(int num_frames, int delay, int mode, int start_frame, { /* note: expect different frames for the same delay cycle! */ - if (anim.random_frame < 0) + if (gfx.anim_random_frame < 0) frame = SimpleRND(num_frames); else - frame = anim.random_frame % num_frames; + frame = gfx.anim_random_frame % num_frames; } if (mode & ANIM_REVERSE) /* use reverse animation direction */ @@ -310,6 +310,7 @@ void HandleAnimation(int mode) { static unsigned long animstart_delay = -1; static unsigned long animstart_delay_value = 0; + static boolean anim_running = FALSE; static boolean anim_restart = TRUE; static boolean reset_delay = TRUE; static int toon_nr = 0; @@ -326,12 +327,17 @@ void HandleAnimation(int mode) { case ANIM_START: screen_info.prepare_backbuffer_function(); + + anim_running = TRUE; anim_restart = TRUE; reset_delay = TRUE; return; case ANIM_CONTINUE: + if (!anim_running) + return; + break; case ANIM_STOP: @@ -343,6 +349,8 @@ void HandleAnimation(int mode) screen_info.update_function(); setup.direct_draw = draw_mode; + anim_running = FALSE; + return; default: