rnd-20080126-1-src
[rocksndiamonds.git] / src / editor.c
index 084a2d587d8a9e003e13b64a76325ce97dca17b1..bcb76d4f96acfa6089f6b04445fcd0bf9a8f5fc1 100644 (file)
@@ -1515,6 +1515,7 @@ static struct ValueTextInfo options_deadliness[] =
 {
   { EP_DONT_RUN_INTO,          "running into"                  },
   { EP_DONT_COLLIDE_WITH,      "colliding with"                },
+  { EP_DONT_GET_HIT_BY,                "getting hit by"                },
   { EP_DONT_TOUCH,             "touching"                      },
 
   { -1,                                NULL                            }
@@ -4988,14 +4989,16 @@ static void DrawDrawingArea(int id)
 
 static void ScrollMiniLevel(int from_x, int from_y, int scroll)
 {
-#if 1
+#if 0
+  /* (directly solved in BlitBitmap() now) */
   static Bitmap *tmp_backbuffer = NULL;
 #endif
   int x, y;
   int dx = (scroll == ED_SCROLL_LEFT ? -1 : scroll == ED_SCROLL_RIGHT ? 1 : 0);
   int dy = (scroll == ED_SCROLL_UP   ? -1 : scroll == ED_SCROLL_DOWN  ? 1 : 0);
 
-#if 1
+#if 0
+  /* (directly solved in BlitBitmap() now) */
   if (tmp_backbuffer == NULL)
     tmp_backbuffer = CreateBitmap(WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH);
 
@@ -5027,8 +5030,6 @@ static void ScrollMiniLevel(int from_x, int from_y, int scroll)
             SY + (dy == +1 ? MINI_TILEY : 0));
 #endif
 
-  printf("::: ScrollMiniLevel: A.1\n");
-
   if (dx)
   {
     x = (dx == 1 ? 0 : ed_fieldx - 1);
@@ -5042,8 +5043,6 @@ static void ScrollMiniLevel(int from_x, int from_y, int scroll)
       DrawMiniElementOrWall(x, y, from_x, from_y);
   }
 
-  printf("::: ScrollMiniLevel: Z\n");
-
   redraw_mask |= REDRAW_FIELD;
   BackToFront();
 }
@@ -6771,11 +6770,13 @@ static void CopyCustomElementPropertiesToEditor(int element)
   /* set deadliness selectbox help value */
   custom_element.deadliness =
     (DONT_TOUCH(element) ? EP_DONT_TOUCH :
+     DONT_GET_HIT_BY(element) ? EP_DONT_GET_HIT_BY :
      DONT_COLLIDE_WITH(element) ? EP_DONT_COLLIDE_WITH :
      DONT_RUN_INTO(element) ? EP_DONT_RUN_INTO :
      custom_element.deadliness);
   custom_element_properties[EP_DEADLY] =
     (DONT_TOUCH(element) ||
+     DONT_GET_HIT_BY(element) ||
      DONT_COLLIDE_WITH(element) ||
      DONT_RUN_INTO(element));
 
@@ -6923,6 +6924,7 @@ static void CopyCustomElementPropertiesToGame(int element)
   /* set deadliness property from checkbox and selectbox */
   custom_element_properties[EP_DONT_RUN_INTO] = FALSE;
   custom_element_properties[EP_DONT_COLLIDE_WITH] = FALSE;
+  custom_element_properties[EP_DONT_GET_HIT_BY] = FALSE;
   custom_element_properties[EP_DONT_TOUCH] = FALSE;
   custom_element_properties[custom_element.deadliness] =
     custom_element_properties[EP_DEADLY];
@@ -7714,6 +7716,7 @@ static void DrawPropertiesInfo()
 
     { EP_DONT_RUN_INTO,                "- deadly when running into"            },
     { EP_DONT_COLLIDE_WITH,    "- deadly when colliding with"          },
+    { EP_DONT_GET_HIT_BY,      "- deadly when getting hit by"          },
     { EP_DONT_TOUCH,           "- deadly when touching"                },
 
     { EP_INDESTRUCTIBLE,       "- indestructible"                      },
@@ -7887,6 +7890,7 @@ static struct
   { EL_EMC_KEY_6,      &level.score[SC_KEY],           TEXT_COLLECTING },
   { EL_EMC_KEY_7,      &level.score[SC_KEY],           TEXT_COLLECTING },
   { EL_EMC_KEY_8,      &level.score[SC_KEY],           TEXT_COLLECTING },
+  { EL_DC_KEY_WHITE,   &level.score[SC_KEY],           TEXT_COLLECTING },
   { EL_AMOEBA_WET,     &level.amoeba_speed,            TEXT_AMOEBA_SPEED },
   { EL_AMOEBA_DRY,     &level.amoeba_speed,            TEXT_AMOEBA_SPEED },
   { EL_AMOEBA_FULL,    &level.amoeba_speed,            TEXT_AMOEBA_SPEED },