added removing existing McDuffin when drawing new one in level editor
[rocksndiamonds.git] / src / tools.c
index 373e01b3e5d28e04ee94d0cdde9b6ad6207578a6..45447912c488dfba517c9b5718fc342d2567fe97 100644 (file)
@@ -3008,19 +3008,6 @@ void ShowEnvelope(int envelope_nr)
   BackToFront();
 }
 
-void ShowEnvelope_MM(int envelope_nr)
-{
-  BlitBitmap(backbuffer, bitmap_db_field, REAL_SX, REAL_SY,
-            FULL_SXSIZE, FULL_SYSIZE, REAL_SX, REAL_SY);
-
-  ShowEnvelope(envelope_nr);
-
-  SetDrawtoField(DRAW_TO_BACKBUFFER);
-
-  BlitBitmap(bitmap_db_field, backbuffer, REAL_SX, REAL_SY,
-            FULL_SXSIZE, FULL_SYSIZE, REAL_SX, REAL_SY);
-}
-
 static void PrepareEnvelopeRequestToScreen(Bitmap *bitmap, int sx, int sy,
                                           int xsize, int ysize)
 {
@@ -3327,14 +3314,15 @@ static void ShowEnvelopeRequest(char *text, unsigned int req_state, int action)
   if (game_status == GAME_MODE_PLAYING)
     BlitScreenToBitmap(backbuffer);
 
+  if (game_status == GAME_MODE_PLAYING || action == ACTION_OPENING)
+    BlitBitmap(backbuffer, bitmap_db_store_1, 0, 0, WIN_XSIZE, WIN_YSIZE, 0, 0);
+
   SetDrawtoField(DRAW_TO_BACKBUFFER);
 
   // SetDrawBackgroundMask(REDRAW_NONE);
 
   if (action == ACTION_OPENING)
   {
-    BlitBitmap(backbuffer, bitmap_db_store_1, 0, 0, WIN_XSIZE, WIN_YSIZE, 0, 0);
-
     if (req_state & REQ_ASK)
     {
       MapGadget(tool_gadget[TOOL_CTRL_ID_YES]);
@@ -3947,6 +3935,18 @@ void DrawFixedGraphicAnimationExt(DrawBuffer *dst_bitmap, int x, int y,
     DrawFixedGraphicExt(dst_bitmap, x, y, graphic, frame);
 }
 
+void DrawSizedGraphicAnimationExt(DrawBuffer *dst_bitmap, int x, int y,
+                                 int graphic, int sync_frame, int tilesize,
+                                 int mask_mode)
+{
+  int frame = getGraphicAnimationFrame(graphic, sync_frame);
+
+  if (mask_mode == USE_MASKING)
+    DrawSizedGraphicThruMaskExt(dst_bitmap, x, y, graphic, frame, tilesize);
+  else
+    DrawSizedGraphicExt(dst_bitmap, x, y, graphic, frame, tilesize);
+}
+
 static void DrawGraphicAnimation(int x, int y, int graphic)
 {
   int lx = LEVELX(x), ly = LEVELY(y);