added optional button to restart game (door, panel and touch variants)
[rocksndiamonds.git] / src / tools.c
index 9a82f34625db6adc01bf345b869bf18514d1ffe8..4083e77ea1ba9733746632ceeb8bc2c1182dea0c 100644 (file)
@@ -1517,6 +1517,11 @@ void SetRandomAnimationValue(int x, int y)
   gfx.anim_random_frame = GfxRandom[x][y];
 }
 
+void SetAnimationFirstLevel(int first_level)
+{
+  gfx.anim_first_level = first_level;
+}
+
 int getGraphicAnimationFrame(int graphic, int sync_frame)
 {
   // animation synchronized with global frame counter, not move position
@@ -3071,7 +3076,11 @@ void DrawEnvelopeRequestToScreen(int drawing_target)
       game.request_active &&
       drawing_target == DRAW_TO_SCREEN)
   {
-    if (graphic_info[IMG_BACKGROUND_REQUEST].draw_masked)
+    struct GraphicInfo *g = &graphic_info[IMG_BACKGROUND_REQUEST];
+
+    SetBitmapAlphaNextBlit(request.bitmap, g->alpha);
+
+    if (g->draw_masked)
       BlitToScreenMasked(request.bitmap, 0, 0, request.xsize, request.ysize,
                         request.sx, request.sy);
     else
@@ -4604,11 +4613,12 @@ static int RequestHandleEvents(unsigned int req_state, int draw_buffer_game)
                break;
 
              default:
-               // only check clickable animations if no request gadget clicked
-               HandleGlobalAnimClicks(mx, my, button_status, FALSE);
                break;
            }
 
+           // only needed to handle clickable pointer animations here
+           HandleGlobalAnimClicks(mx, my, button_status, FALSE);
+
            break;
          }