X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Ftools.c;h=8d0fe8deab0d5524716148911957e9aa00005232;hp=9d376086cd29cc8ef196eac683f91a2aba8ffafd;hb=f7704e2d22e9499efe6380e0c916c2bd4918e4be;hpb=06234ebe7668425f2bc05b3323fae921ac3fecff diff --git a/src/tools.c b/src/tools.c index 9d376086..8d0fe8de 100644 --- a/src/tools.c +++ b/src/tools.c @@ -423,7 +423,8 @@ void FadeIn(int fade_delay) return; } - FadeScreen(NULL, FADE_MODE_FADE_IN, fade_delay, 0); + FadeRectangle(NULL, 0, 0, WIN_XSIZE, WIN_YSIZE, + FADE_MODE_FADE_IN, fade_delay, 0); redraw_mask = REDRAW_NONE; } @@ -438,7 +439,8 @@ void FadeOut(int fade_delay, int post_delay) return; } - FadeScreen(NULL, FADE_MODE_FADE_OUT, fade_delay, post_delay); + FadeRectangle(NULL, 0, 0, WIN_XSIZE, WIN_YSIZE, + FADE_MODE_FADE_OUT, fade_delay, post_delay); redraw_mask = REDRAW_NONE; } @@ -453,11 +455,60 @@ void FadeCross(int fade_delay) return; } - FadeScreen(bitmap_db_title, FADE_MODE_CROSSFADE, fade_delay, 0); + FadeRectangle(bitmap_db_title, 0, 0, WIN_XSIZE, WIN_YSIZE, + FADE_MODE_CROSSFADE, fade_delay, 0); redraw_mask = REDRAW_NONE; } +void FadeInField(int fade_delay) +{ + if (fade_delay == 0) + { + BackToFront(); + + return; + } + + FadeRectangle(NULL, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE, + FADE_MODE_FADE_IN, fade_delay, 0); + + redraw_mask &= ~REDRAW_FIELD; +} + +void FadeOutField(int fade_delay, int post_delay) +{ + if (fade_delay == 0) + { + ClearRectangle(backbuffer, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE); + BackToFront(); + + return; + } + + FadeRectangle(NULL, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE, + FADE_MODE_FADE_OUT, fade_delay, post_delay); + + redraw_mask &= ~REDRAW_FIELD; +} + +void FadeCrossField(int fade_delay) +{ + if (fade_delay == 0) + { + BlitBitmap(bitmap_db_title, backbuffer, REAL_SX, REAL_SY, + FULL_SXSIZE, FULL_SYSIZE, REAL_SX, REAL_SY); + BackToFront(); + + return; + } + + FadeRectangle(bitmap_db_title, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE, + FADE_MODE_CROSSFADE, fade_delay, 0); + + redraw_mask &= ~REDRAW_FIELD; +} + void SetMainBackgroundImageIfDefined(int graphic) { if (graphic_info[graphic].bitmap) @@ -490,7 +541,11 @@ void SetPanelBackground() void DrawBackground(int dst_x, int dst_y, int width, int height) { +#if 1 + ClearRectangleOnBackground(drawto, dst_x, dst_y, width, height); +#else ClearRectangleOnBackground(backbuffer, dst_x, dst_y, width, height); +#endif redraw_mask |= REDRAW_FIELD; }