}
redraw_mask = REDRAW_NONE;
+
+ // force screen redraw in every frame to continue drawing global animations
+ redraw_mask = REDRAW_ALL;
}
static void FadeCrossSaveBackbuffer()
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
FADE_SY = REAL_SY;
FADE_SXSIZE = FULL_SXSIZE;
FADE_SYSIZE = FULL_SYSIZE;
+
+ SetAnimStatus_AfterFadingIn();
}
void FadeOut(int fade_mask)
{
+ SetAnimStatus_BeforeFadingOut();
+
#if 0
DrawMaskedBorder(REDRAW_ALL);
#endif
void SetGameStatus(int game_status_new)
{
game_status = game_status_new;
+
+ global.anim_status_next = game_status;
}
void ChangeViewportPropertiesIfNeeded()