X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.c;h=373e01b3e5d28e04ee94d0cdde9b6ad6207578a6;hb=e30d93a8b07ef8ee577768b305909e80060a3342;hp=50846337d52f07e1c19e04769ff4eef12c436ea7;hpb=e2c85f7a96792c28d8e0d13ebd89ea183143c118;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index 50846337..373e01b3 100644 --- a/src/tools.c +++ b/src/tools.c @@ -1153,13 +1153,18 @@ void SetBackgroundImage(int graphic, int redraw_mask) if (graphic == IMG_UNDEFINED) g = &g_undefined; + // always use original size bitmap for backgrounds, if existing + Bitmap *bitmap = (g->bitmaps != NULL && + g->bitmaps[IMG_BITMAP_PTR_ORIGINAL] != NULL ? + g->bitmaps[IMG_BITMAP_PTR_ORIGINAL] : g->bitmap); + // remove every mask before setting mask for window, and // remove window area mask before setting mask for main or door area int remove_mask = (redraw_mask == REDRAW_ALL ? 0xffff : REDRAW_ALL); // (!!! TO BE FIXED: The whole REDRAW_* system really sucks! !!!) SetBackgroundBitmap(NULL, remove_mask, 0, 0, 0, 0); // !!! FIX THIS !!! - SetBackgroundBitmap(g->bitmap, redraw_mask, + SetBackgroundBitmap(bitmap, redraw_mask, g->src_x, g->src_y, g->width, g->height); }