rnd-19990214-3
[rocksndiamonds.git] / src / editor.c
index b178476d195e7ebd05e7a537c5ac3bcc311bfc62..a74d702c58d2c19539b79bcdac92ecd1380f415f 100644 (file)
 #define GADGET_ID_RANDOM_QUANTITY      107
 #define GADGET_ID_RANDOM_RESTRICTED    108
 #define GADGET_ID_DOUBLE_SPEED         109
-#define GADGET_ID_STICK_ELEMENT                110
+#define GADGET_ID_GRAVITY              110
+#define GADGET_ID_STICK_ELEMENT                111
 
 /* another drawing area for random placement */
-#define GADGET_ID_RANDOM_BACKGROUND    111
+#define GADGET_ID_RANDOM_BACKGROUND    112
 
-#define NUM_EDITOR_GADGETS             112
+#define NUM_EDITOR_GADGETS             113
 
 /* radio button numbers */
 #define RADIO_NR_NONE                  0
 
 /* values for checkbutton gadgets */
 #define ED_CHECKBUTTON_ID_DOUBLE_SPEED         0
-#define ED_CHECKBUTTON_ID_RANDOM_RESTRICTED    1
-#define ED_CHECKBUTTON_ID_STICK_ELEMENT                2
+#define ED_CHECKBUTTON_ID_GRAVITY              1
+#define ED_CHECKBUTTON_ID_RANDOM_RESTRICTED    2
+#define ED_CHECKBUTTON_ID_STICK_ELEMENT                3
 
-#define ED_NUM_CHECKBUTTONS                    3
+#define ED_NUM_CHECKBUTTONS                    4
 
 #define ED_CHECKBUTTON_ID_LEVEL_FIRST  ED_CHECKBUTTON_ID_DOUBLE_SPEED
 #define ED_CHECKBUTTON_ID_LEVEL_LAST   ED_CHECKBUTTON_ID_RANDOM_RESTRICTED
@@ -594,6 +596,12 @@ static struct
     &level.double_speed,
     "double speed movement",           "set movement speed of player"
   },
+  {
+    ED_SETTINGS_XPOS + 340,            ED_COUNTER_YPOS(6) - MINI_TILEY,
+    GADGET_ID_GRAVITY,
+    &level.gravity,
+    "gravity",                         "set level gravity"
+  },
   {
     ED_SETTINGS_XPOS,                  ED_COUNTER2_YPOS(9) - MINI_TILEY,
     GADGET_ID_RANDOM_RESTRICTED,
@@ -776,10 +784,10 @@ int editor_element[] =
   EL_AMOEBE_NASS,
   EL_AMOEBE_NORM,
 
-  EL_SCHLUESSEL1,
-  EL_SCHLUESSEL2,
-  EL_SCHLUESSEL3,
-  EL_SCHLUESSEL4,
+  EL_EM_KEY_1_FILE,
+  EL_EM_KEY_2_FILE,
+  EL_EM_KEY_3_FILE,
+  EL_EM_KEY_4_FILE,
 
   EL_EM_GATE_1,
   EL_EM_GATE_2,
@@ -796,6 +804,11 @@ int editor_element[] =
   EL_CHAR('R'),
   EL_CHAR('E'),
 
+  EL_SCHLUESSEL1,
+  EL_SCHLUESSEL2,
+  EL_SCHLUESSEL3,
+  EL_SCHLUESSEL4,
+
   EL_PFORTE1,
   EL_PFORTE2,
   EL_PFORTE3,
@@ -2328,6 +2341,10 @@ static void DrawPropertiesWindow()
     { EL_SCHLUESSEL2,  &level.score[9],        TEXT_COLLECTING },
     { EL_SCHLUESSEL3,  &level.score[9],        TEXT_COLLECTING },
     { EL_SCHLUESSEL4,  &level.score[9],        TEXT_COLLECTING },
+    { EL_EM_KEY_1_FILE,        &level.score[9],        TEXT_COLLECTING },
+    { EL_EM_KEY_2_FILE,        &level.score[9],        TEXT_COLLECTING },
+    { EL_EM_KEY_3_FILE,        &level.score[9],        TEXT_COLLECTING },
+    { EL_EM_KEY_4_FILE,        &level.score[9],        TEXT_COLLECTING },
     { EL_AMOEBE_NASS,  &level.tempo_amoebe,    TEXT_SPEED },
     { EL_AMOEBE_NORM,  &level.tempo_amoebe,    TEXT_SPEED },
     { EL_AMOEBE_VOLL,  &level.tempo_amoebe,    TEXT_SPEED },
@@ -3805,6 +3822,10 @@ static void HandleControlButtons(struct GadgetInfo *gi)
       *checkbutton_info[ED_CHECKBUTTON_ID_DOUBLE_SPEED].value ^= TRUE;
       break;
 
+    case GADGET_ID_GRAVITY:
+      *checkbutton_info[ED_CHECKBUTTON_ID_GRAVITY].value ^= TRUE;
+      break;
+
     case GADGET_ID_STICK_ELEMENT:
       *checkbutton_info[ED_CHECKBUTTON_ID_STICK_ELEMENT].value ^= TRUE;
       break;