X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Ftools.c;h=5bd1569946b0db561d25fd28cd54818677bc4eb8;hp=4a5243602014051440e8ae14fca474bce98b5c9e;hb=ea925ed1065e3211c36c9bb2a56a5dbe760c208d;hpb=9f88e49643566b03fbd6e92509bb66fd42bc1daa diff --git a/src/tools.c b/src/tools.c index 4a524360..5bd15699 100644 --- a/src/tools.c +++ b/src/tools.c @@ -628,6 +628,20 @@ static void FadeExt(int fade_mask, int fade_mode, int fade_type) redraw_mask &= ~fade_mask; } +static void SetAnimStatus_BeforeFadingOut() +{ + global.anim_status = GAME_MODE_PSEUDO_FADING; +} + +static void SetAnimStatus_AfterFadingIn() +{ + global.anim_status = global.anim_status_next; + + // force update of global animation status in case of rapid screen changes + redraw_mask = REDRAW_ALL; + BackToFront(); +} + void FadeIn(int fade_mask) { #if 1 @@ -644,12 +658,12 @@ void FadeIn(int fade_mask) FADE_SXSIZE = FULL_SXSIZE; FADE_SYSIZE = FULL_SYSIZE; - global.anim_status = global.anim_status_next; + SetAnimStatus_AfterFadingIn(); } void FadeOut(int fade_mask) { - global.anim_status = GAME_MODE_PSEUDO_FADING; + SetAnimStatus_BeforeFadingOut(); #if 0 DrawMaskedBorder(REDRAW_ALL);