fixed playfield redraw bug when closing envelope after asking to play again
[rocksndiamonds.git] / src / tools.c
index fde8811da0c225e52a1d88bfb932d3a2a00ae6ea..c1605b4397cac8c50d59d692dbe3f23eaf0e2ad2 100644 (file)
@@ -3314,15 +3314,14 @@ 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]);
@@ -8228,6 +8227,10 @@ int map_element_RND_to_MM(int element_rnd)
          element_rnd <= EL_MM_END_2 ?
          EL_MM_START_2_NATIVE + element_rnd - EL_MM_START_2 :
 
+         element_rnd >= EL_MM_START_3 &&
+         element_rnd <= EL_MM_END_3 ?
+         EL_MM_START_3_NATIVE + element_rnd - EL_MM_START_3 :
+
          element_rnd >= EL_CHAR_START &&
          element_rnd <= EL_CHAR_END ?
          EL_MM_CHAR_START_NATIVE + element_rnd - EL_CHAR_START :
@@ -8253,6 +8256,10 @@ int map_element_MM_to_RND(int element_mm)
          element_mm <= EL_MM_END_2_NATIVE ?
          EL_MM_START_2 + element_mm - EL_MM_START_2_NATIVE :
 
+         element_mm >= EL_MM_START_3_NATIVE &&
+         element_mm <= EL_MM_END_3_NATIVE ?
+         EL_MM_START_3 + element_mm - EL_MM_START_3_NATIVE :
+
          element_mm >= EL_MM_CHAR_START_NATIVE &&
          element_mm <= EL_MM_CHAR_END_NATIVE ?
          EL_CHAR_START + element_mm - EL_MM_CHAR_START_NATIVE :