rnd-20030707-1-src
[rocksndiamonds.git] / src / editor.c
index 969aad79e6f72a4688bcdea75d87b3e7bc96a212..bfea8ee4ecf41ee3fd9e44f09d0a9a3989e269f6 100644 (file)
 #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_ACCESS_TYPE   (GADGET_ID_SELECTBOX_FIRST + 7)
-#define GADGET_ID_CUSTOM_ACCESS_LAYER  (GADGET_ID_SELECTBOX_FIRST + 8)
-#define GADGET_ID_CHANGE_TIME_UNITS    (GADGET_ID_SELECTBOX_FIRST + 9)
-#define GADGET_ID_CHANGE_PLAYER_ACTION (GADGET_ID_SELECTBOX_FIRST + 10)
-#define GADGET_ID_CHANGE_COLLIDE_ACTION        (GADGET_ID_SELECTBOX_FIRST + 11)
-#define GADGET_ID_CHANGE_OTHER_ACTION  (GADGET_ID_SELECTBOX_FIRST + 12)
-#define GADGET_ID_CHANGE_POWER         (GADGET_ID_SELECTBOX_FIRST + 13)
+#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_PLAYER_ACTION (GADGET_ID_SELECTBOX_FIRST + 11)
+#define GADGET_ID_CHANGE_COLLIDE_ACTION        (GADGET_ID_SELECTBOX_FIRST + 12)
+#define GADGET_ID_CHANGE_OTHER_ACTION  (GADGET_ID_SELECTBOX_FIRST + 13)
+#define GADGET_ID_CHANGE_POWER         (GADGET_ID_SELECTBOX_FIRST + 14)
 
 /* textbutton identifiers */
-#define GADGET_ID_TEXTBUTTON_FIRST     (GADGET_ID_SELECTBOX_FIRST + 14)
+#define GADGET_ID_TEXTBUTTON_FIRST     (GADGET_ID_SELECTBOX_FIRST + 15)
 
 #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_DIRECTION  4
 #define ED_SELECTBOX_ID_CUSTOM_MOVE_STEPSIZE   5
 #define ED_SELECTBOX_ID_CUSTOM_SMASH_TARGETS   6
-#define ED_SELECTBOX_ID_CUSTOM_ACCESS_TYPE     7
-#define ED_SELECTBOX_ID_CUSTOM_ACCESS_LAYER    8
-#define ED_SELECTBOX_ID_CHANGE_TIME_UNITS      9
-#define ED_SELECTBOX_ID_CHANGE_PLAYER_ACTION   10
-#define ED_SELECTBOX_ID_CHANGE_COLLIDE_ACTION  11
-#define ED_SELECTBOX_ID_CHANGE_OTHER_ACTION    12
-#define ED_SELECTBOX_ID_CHANGE_POWER           13
+#define ED_SELECTBOX_ID_CUSTOM_SLIPPERY_TYPE   7
+#define ED_SELECTBOX_ID_CUSTOM_ACCESS_TYPE     8
+#define ED_SELECTBOX_ID_CUSTOM_ACCESS_LAYER    9
+#define ED_SELECTBOX_ID_CHANGE_TIME_UNITS      10
+#define ED_SELECTBOX_ID_CHANGE_PLAYER_ACTION   11
+#define ED_SELECTBOX_ID_CHANGE_COLLIDE_ACTION  12
+#define ED_SELECTBOX_ID_CHANGE_OTHER_ACTION    13
+#define ED_SELECTBOX_ID_CHANGE_POWER           14
 
-#define ED_NUM_SELECTBOX                       14
+#define ED_NUM_SELECTBOX                       15
 
 #define ED_SELECTBOX_ID_CUSTOM_FIRST   ED_SELECTBOX_ID_CUSTOM_WALK_TO_ACTION
 #define ED_SELECTBOX_ID_CUSTOM_LAST    ED_SELECTBOX_ID_CUSTOM_ACCESS_LAYER
@@ -962,6 +964,16 @@ static struct ValueTextInfo options_smash_targets[] =
   { -1,                                NULL                            }
 };
 
+static struct ValueTextInfo options_slippery_type[] =
+{
+  { SLIPPERY_ANY_RANDOM,       "random"                        },
+  { SLIPPERY_ANY_LEFT_RIGHT,   "left, right"                   },
+  { SLIPPERY_ANY_RIGHT_LEFT,   "right, left"                   },
+  { SLIPPERY_ONLY_LEFT,                "only left"                     },
+  { SLIPPERY_ONLY_RIGHT,       "only right"                    },
+  { -1,                                NULL                            }
+};
+
 static struct ValueTextInfo options_deadliness[] =
 {
   { EP_DONT_RUN_INTO,          "running into"                  },
@@ -1088,6 +1100,14 @@ static struct
     &custom_element.smash_targets,
     "can smash", NULL, "elements that can be smashed"
   },
+  {
+    ED_SETTINGS_XPOS(1),               ED_SETTINGS_YPOS(10),
+    GADGET_ID_CUSTOM_SLIPPERY_TYPE,
+    -1,
+    options_slippery_type,
+    &custom_element.slippery_type,
+    "slippery", NULL, "where other elements fall down"
+  },
   {
     ED_SETTINGS_XPOS(1),               ED_SETTINGS_YPOS(11),
     GADGET_ID_CUSTOM_DEADLINESS,
@@ -1367,7 +1387,7 @@ static struct
     ED_SETTINGS_XPOS(0),               ED_SETTINGS_YPOS(10),
     GADGET_ID_CUSTOM_SLIPPERY,
     &custom_element_properties[EP_SLIPPERY],
-    "slippery",                                "other elements can fall down from it"
+    NULL,                              "other elements can fall down from it"
   },
   {
     ED_SETTINGS_XPOS(0),               ED_SETTINGS_YPOS(11),