X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fgadgets.c;h=daa045eb4892dd4ea28b98d9def164ad143bf12d;hp=b21ecdca09607e9afb25eb4dec7f1fb8ad302e19;hb=3b6f0ed7443f58031823df29c1a7bd89d7d63a8d;hpb=cb586ba720ddae3c6d05ba1723b5bd4d58bc98bd diff --git a/src/libgame/gadgets.c b/src/libgame/gadgets.c index b21ecdca..daa045eb 100644 --- a/src/libgame/gadgets.c +++ b/src/libgame/gadgets.c @@ -244,9 +244,16 @@ static void DrawGadget(struct GadgetInfo *gi, boolean pressed, boolean direct) int deco_width = MIN(gi->deco.width, gi->width - deco_x); int deco_height = MIN(gi->deco.height, gi->height - deco_y); - BlitBitmap(gi->deco.design.bitmap, drawto, - gi->deco.design.x, gi->deco.design.y, - deco_width, deco_height, gi->x + deco_x, gi->y + deco_y); + if (gi->deco.masked) + BlitBitmapMasked(gi->deco.design.bitmap, drawto, + gi->deco.design.x, gi->deco.design.y, + deco_width, deco_height, + gi->x + deco_x, gi->y + deco_y); + else + BlitBitmap(gi->deco.design.bitmap, drawto, + gi->deco.design.x, gi->deco.design.y, + deco_width, deco_height, + gi->x + deco_x, gi->y + deco_y); } break; @@ -994,6 +1001,10 @@ static void HandleGadgetTags(struct GadgetInfo *gi, int first_tag, va_list ap) gi->deco.yshift = va_arg(ap, int); break; + case GDI_DECORATION_MASKED: + gi->deco.masked = (boolean)va_arg(ap, int); + break; + case GDI_EVENT_MASK: gi->event_mask = va_arg(ap, unsigned int); break;