X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fgadgets.c;h=cba655f874a89a29d9c31d0001c5a75506ef9088;hb=a21695563e089926d8e859e1ee0f3b077c8a7ed0;hp=668641bd30be64133832e37550cbc06eccedd803;hpb=77a02ebe9793a8e12f8b53821aa4d47cdfbb371a;p=rocksndiamonds.git diff --git a/src/libgame/gadgets.c b/src/libgame/gadgets.c index 668641bd..cba655f8 100644 --- a/src/libgame/gadgets.c +++ b/src/libgame/gadgets.c @@ -782,6 +782,10 @@ static void HandleGadgetTags(struct GadgetInfo *gi, int first_tag, va_list ap) { switch(tag) { + case GDI_IMAGE_ID: + gi->image_id = va_arg(ap, int); + break; + case GDI_CUSTOM_ID: gi->custom_id = va_arg(ap, int); break; @@ -1281,6 +1285,7 @@ struct GadgetInfo *CreateGadget(int first_tag, ...) /* always start with reliable default values */ new_gadget->id = getNewGadgetID(); + new_gadget->image_id = -1; new_gadget->callback_info = default_callback_info; new_gadget->callback_action = default_callback_action; new_gadget->active = TRUE; @@ -1481,7 +1486,7 @@ static boolean insideSelectboxArea(struct GadgetInfo *gi, int mx, int my) void ClickOnGadget(struct GadgetInfo *gi, int button) { - if (!gi->mapped) + if (gi == NULL || gi->deactivated || !gi->mapped) return; /* simulate releasing mouse button over last gadget, if still pressed */