rnd-20040118-1-src
[rocksndiamonds.git] / src / editor.c
index 4877a8bcae69d56bdae6eb0a5c68518bfc001d0f..bdff29f01e88097583051181d39f2334911fcfcb 100644 (file)
 #define GADGET_ID_CUSTOM_MOVE_PATTERN  (GADGET_ID_SELECTBOX_FIRST + 3)
 #define GADGET_ID_CUSTOM_MOVE_DIRECTION        (GADGET_ID_SELECTBOX_FIRST + 4)
 #define GADGET_ID_CUSTOM_MOVE_STEPSIZE (GADGET_ID_SELECTBOX_FIRST + 5)
-#define GADGET_ID_CUSTOM_SMASH_TARGETS (GADGET_ID_SELECTBOX_FIRST + 6)
-#define GADGET_ID_CUSTOM_SLIPPERY_TYPE (GADGET_ID_SELECTBOX_FIRST + 7)
-#define GADGET_ID_CUSTOM_ACCESS_TYPE   (GADGET_ID_SELECTBOX_FIRST + 8)
-#define GADGET_ID_CUSTOM_ACCESS_LAYER  (GADGET_ID_SELECTBOX_FIRST + 9)
-#define GADGET_ID_CHANGE_TIME_UNITS    (GADGET_ID_SELECTBOX_FIRST + 10)
-#define GADGET_ID_CHANGE_DIRECT_ACTION (GADGET_ID_SELECTBOX_FIRST + 11)
-#define GADGET_ID_CHANGE_OTHER_ACTION  (GADGET_ID_SELECTBOX_FIRST + 12)
-#define GADGET_ID_CHANGE_SIDES         (GADGET_ID_SELECTBOX_FIRST + 13)
-#define GADGET_ID_CHANGE_POWER         (GADGET_ID_SELECTBOX_FIRST + 14)
-#define GADGET_ID_SELECT_CHANGE_PAGE   (GADGET_ID_SELECTBOX_FIRST + 15)
+#define GADGET_ID_CUSTOM_MOVE_LEAVE_TYPE (GADGET_ID_SELECTBOX_FIRST + 6)
+#define GADGET_ID_CUSTOM_SMASH_TARGETS (GADGET_ID_SELECTBOX_FIRST + 7)
+#define GADGET_ID_CUSTOM_SLIPPERY_TYPE (GADGET_ID_SELECTBOX_FIRST + 8)
+#define GADGET_ID_CUSTOM_ACCESS_TYPE   (GADGET_ID_SELECTBOX_FIRST + 9)
+#define GADGET_ID_CUSTOM_ACCESS_LAYER  (GADGET_ID_SELECTBOX_FIRST + 10)
+#define GADGET_ID_CHANGE_TIME_UNITS    (GADGET_ID_SELECTBOX_FIRST + 11)
+#define GADGET_ID_CHANGE_DIRECT_ACTION (GADGET_ID_SELECTBOX_FIRST + 12)
+#define GADGET_ID_CHANGE_OTHER_ACTION  (GADGET_ID_SELECTBOX_FIRST + 13)
+#define GADGET_ID_CHANGE_SIDES         (GADGET_ID_SELECTBOX_FIRST + 14)
+#define GADGET_ID_CHANGE_POWER         (GADGET_ID_SELECTBOX_FIRST + 15)
+#define GADGET_ID_SELECT_CHANGE_PAGE   (GADGET_ID_SELECTBOX_FIRST + 16)
 
 /* textbutton identifiers */
-#define GADGET_ID_TEXTBUTTON_FIRST     (GADGET_ID_SELECTBOX_FIRST + 16)
+#define GADGET_ID_TEXTBUTTON_FIRST     (GADGET_ID_SELECTBOX_FIRST + 17)
 
 #define GADGET_ID_PROPERTIES_INFO      (GADGET_ID_TEXTBUTTON_FIRST + 0)
 #define GADGET_ID_PROPERTIES_CONFIG    (GADGET_ID_TEXTBUTTON_FIRST + 1)
 #define ED_SELECTBOX_ID_CUSTOM_MOVE_PATTERN    3
 #define ED_SELECTBOX_ID_CUSTOM_MOVE_DIRECTION  4
 #define ED_SELECTBOX_ID_CUSTOM_MOVE_STEPSIZE   5
-#define ED_SELECTBOX_ID_CUSTOM_SMASH_TARGETS   6
-#define ED_SELECTBOX_ID_CUSTOM_SLIPPERY_TYPE   7
-#define ED_SELECTBOX_ID_CUSTOM_DEADLINESS      8
-#define ED_SELECTBOX_ID_CUSTOM_CONSISTENCY     9
-#define ED_SELECTBOX_ID_CHANGE_TIME_UNITS      10
-#define ED_SELECTBOX_ID_CHANGE_DIRECT_ACTION   11
-#define ED_SELECTBOX_ID_CHANGE_OTHER_ACTION    12
-#define ED_SELECTBOX_ID_CHANGE_SIDES           13
-#define ED_SELECTBOX_ID_CHANGE_POWER           14
-#define ED_SELECTBOX_ID_SELECT_CHANGE_PAGE     15
-
-#define ED_NUM_SELECTBOX                       16
+#define ED_SELECTBOX_ID_CUSTOM_MOVE_LEAVE_TYPE 6
+#define ED_SELECTBOX_ID_CUSTOM_SMASH_TARGETS   7
+#define ED_SELECTBOX_ID_CUSTOM_SLIPPERY_TYPE   8
+#define ED_SELECTBOX_ID_CUSTOM_DEADLINESS      9
+#define ED_SELECTBOX_ID_CUSTOM_CONSISTENCY     10
+#define ED_SELECTBOX_ID_CHANGE_TIME_UNITS      11
+#define ED_SELECTBOX_ID_CHANGE_DIRECT_ACTION   12
+#define ED_SELECTBOX_ID_CHANGE_OTHER_ACTION    13
+#define ED_SELECTBOX_ID_CHANGE_SIDES           14
+#define ED_SELECTBOX_ID_CHANGE_POWER           15
+#define ED_SELECTBOX_ID_SELECT_CHANGE_PAGE     16
+
+#define ED_NUM_SELECTBOX                       17
 
 #define ED_SELECTBOX_ID_CUSTOM_FIRST   ED_SELECTBOX_ID_CUSTOM_ACCESS_TYPE
 #define ED_SELECTBOX_ID_CUSTOM_LAST    ED_SELECTBOX_ID_CUSTOM_CONSISTENCY
@@ -1136,6 +1138,13 @@ static struct ValueTextInfo options_move_stepsize[] =
   { -1,                                NULL                            }
 };
 
+static struct ValueTextInfo options_move_leave_type[] =
+{
+  { LEAVE_TYPE_UNLIMITED,      "leave behind"                  },
+  { LEAVE_TYPE_LIMITED,                "change to"                     },
+  { -1,                                NULL                            }
+};
+
 static struct ValueTextInfo options_smash_targets[] =
 {
   { EP_CAN_SMASH_PLAYER,       "player"                        },
@@ -1308,6 +1317,14 @@ static struct
     &custom_element.move_stepsize,
     "move/fall speed", NULL,           "speed of element movement"
   },
+  {
+    ED_SETTINGS_XPOS(1),               ED_SETTINGS_YPOS(7),
+    GADGET_ID_CUSTOM_MOVE_LEAVE_TYPE,  GADGET_ID_NONE,
+    -1,
+    options_move_leave_type,
+    &custom_element.move_leave_type,
+    "can dig:    can", ":",            "leave behind or change element"
+  },
   {
     -1,                                        ED_SETTINGS_YPOS(10),
     GADGET_ID_CUSTOM_SMASH_TARGETS,    GADGET_ID_CUSTOM_CAN_SMASH,
@@ -1861,12 +1878,11 @@ static struct
     GADGET_ID_CUSTOM_MOVE_ENTER,       GADGET_ID_NONE,
     "can dig:", " ",                   NULL
   },
-
   {
     -1,                                        ED_AREA_ELEM_CONTENT4b_YPOS,
     1, 1,
-    GADGET_ID_CUSTOM_MOVE_LEAVE,       GADGET_ID_CUSTOM_MOVE_ENTER,
-    "can leave behind:", NULL,         NULL
+    GADGET_ID_CUSTOM_MOVE_LEAVE,       GADGET_ID_CUSTOM_MOVE_LEAVE_TYPE,
+    NULL, NULL,                                NULL
   },
 
   /* ---------- custom change target --------------------------------------- */