if (redraw_mask & REDRAW_ALL)
{
BlitBitmap(backbuffer, window, 0, 0, WIN_XSIZE, WIN_YSIZE, 0, 0);
- redraw_mask = 0;
+
+ redraw_mask = REDRAW_NONE;
}
if (redraw_mask & REDRAW_FIELD)
BackToFront();
}
+void FadeIn(int fade_delay)
+{
+ FadeScreen(NULL, FADE_MODE_FADE_IN, fade_delay, 0);
+
+ redraw_mask = REDRAW_NONE;
+}
+
+void FadeOut(int fade_delay, int post_delay)
+{
+ FadeScreen(NULL, FADE_MODE_FADE_OUT, fade_delay, post_delay);
+
+ redraw_mask = REDRAW_NONE;
+}
+
+void FadeCross(Bitmap *bitmap, int fade_delay)
+{
+ FadeScreen(bitmap, FADE_MODE_CROSSFADE, fade_delay, 0);
+
+ redraw_mask = REDRAW_NONE;
+}
+
void SetMainBackgroundImageIfDefined(int graphic)
{
if (graphic_info[graphic].bitmap)
door_2.height = VYSIZE;
if (door_state == DOOR_GET_STATE)
- return(door1 | door2);
+ return (door1 | door2);
if (door_state & DOOR_SET_STATE)
{
if (door_state & DOOR_ACTION_2)
door2 = door_state & DOOR_ACTION_2;
- return(door1 | door2);
+ return (door1 | door2);
}
- if (door1 == DOOR_OPEN_1 && door_state & DOOR_OPEN_1)
- door_state &= ~DOOR_OPEN_1;
- else if (door1 == DOOR_CLOSE_1 && door_state & DOOR_CLOSE_1)
- door_state &= ~DOOR_CLOSE_1;
- if (door2 == DOOR_OPEN_2 && door_state & DOOR_OPEN_2)
- door_state &= ~DOOR_OPEN_2;
- else if (door2 == DOOR_CLOSE_2 && door_state & DOOR_CLOSE_2)
- door_state &= ~DOOR_CLOSE_2;
+ if (!(door_state & DOOR_FORCE_REDRAW))
+ {
+ if (door1 == DOOR_OPEN_1 && door_state & DOOR_OPEN_1)
+ door_state &= ~DOOR_OPEN_1;
+ else if (door1 == DOOR_CLOSE_1 && door_state & DOOR_CLOSE_1)
+ door_state &= ~DOOR_CLOSE_1;
+ if (door2 == DOOR_OPEN_2 && door_state & DOOR_OPEN_2)
+ door_state &= ~DOOR_OPEN_2;
+ else if (door2 == DOOR_CLOSE_2 && door_state & DOOR_CLOSE_2)
+ door_state &= ~DOOR_CLOSE_2;
+ }
door_delay_value = (door_state & DOOR_ACTION_1 ? door_1.step_delay :
door_2.step_delay);
door_2_done = (a == VXSIZE);
}
- BackToFront();
+ if (!(door_state & DOOR_NO_DELAY))
+ {
+ BackToFront();
- if (game_status == GAME_MODE_MAIN)
- DoAnimation();
+ if (game_status == GAME_MODE_MAIN)
+ DoAnimation();
- if (!(door_state & DOOR_NO_DELAY))
WaitUntilDelayReached(&door_delay, door_delay_value);
+ }
}
}