rnd-20051228-2-src
[rocksndiamonds.git] / src / editor.c
index 8b736677d7e4ba234059be692a4c3be627f06a53..1fb196e4456dca06bbf6000fded528b698736083 100644 (file)
@@ -1023,7 +1023,7 @@ static struct
     GADGET_ID_LEVEL_TIMESCORE_DOWN,    GADGET_ID_LEVEL_TIMESCORE_UP,
     GADGET_ID_LEVEL_TIMESCORE_TEXT,    GADGET_ID_NONE,
     &level.score[SC_TIME_BONUS],
-    "score for each 10 sec/steps left:", NULL, NULL
+    "score for each second/step left:",        NULL, NULL
   },
   {
     ED_LEVEL_SETTINGS_XPOS(0),         ED_COUNTER2_YPOS(8),
@@ -1482,6 +1482,8 @@ static struct ValueTextInfo options_change_direct_action[] =
 {
   { CE_TOUCHED_BY_PLAYER,      "touched by player"             },
   { CE_PRESSED_BY_PLAYER,      "pressed by player"             },
+  { CE_SWITCHED_BY_PLAYER,     "switched by player"            },
+  { CE_SNAPPED_BY_PLAYER,      "snapped by player"             },
   { CE_PUSHED_BY_PLAYER,       "pushed by player"              },
   { CE_ENTERED_BY_PLAYER,      "entered by player"             },
   { CE_LEFT_BY_PLAYER,         "left by player"                },
@@ -1503,6 +1505,8 @@ static struct ValueTextInfo options_change_other_action[] =
 {
   { CE_PLAYER_TOUCHES_X,       "player touches"                },
   { CE_PLAYER_PRESSES_X,       "player presses"                },
+  { CE_PLAYER_SWITCHES_X,      "player switches"               },
+  { CE_PLAYER_SNAPS_X,         "player snaps"                  },
   { CE_PLAYER_PUSHES_X,                "player pushes"                 },
   { CE_PLAYER_ENTERS_X,                "player enters"                 },
   { CE_PLAYER_LEAVES_X,                "player leaves"                 },
@@ -1515,6 +1519,7 @@ static struct ValueTextInfo options_change_other_action[] =
   { CE_SWITCH_OF_X,            "switch of"                     },
   { CE_CHANGE_OF_X,            "change by page of"             },
   { CE_EXPLOSION_OF_X,         "explosion of"                  },
+  { CE_MOVE_OF_X,              "move of"                       },
   { CE_VALUE_GETS_ZERO_OF_X,   "CE value gets 0 of"            },
 
   { -1,                                NULL                            }
@@ -1700,6 +1705,10 @@ static struct ValueTextInfo options_action_arg_number[] =
   { CA_ARG_NUMBER_CE_SCORE,    "CE score"                      },
   { CA_ARG_NUMBER_CE_VALUE,    "CE value"                      },
   { CA_ARG_UNDEFINED,          " "                             },
+  { CA_ARG_NUMBER_LEVEL_TIME,  "time"                          },
+  { CA_ARG_NUMBER_LEVEL_GEMS,  "gems"                          },
+  { CA_ARG_NUMBER_LEVEL_SCORE, "score"                         },
+  { CA_ARG_UNDEFINED,          " "                             },
   { CA_ARG_ELEMENT_HEADLINE,   "[CE value"                     },
   { CA_ARG_ELEMENT_HEADLINE,   " of"                           },
   { CA_ARG_ELEMENT_HEADLINE,   " element]"                     },
@@ -1777,6 +1786,8 @@ static struct ValueTextInfo options_action_arg_artwork[] =
   { CA_ARG_ELEMENT_HEADLINE,   "[element]"                     },
   { CA_ARG_ELEMENT_TARGET,     "target"                        },
   { CA_ARG_ELEMENT_TRIGGER,    "trigger"                       },
+  { CA_ARG_UNDEFINED,          " "                             },
+  { CA_ARG_ELEMENT_RESET,      "reset"                         },
 
   { -1,                                NULL                            }
 };
@@ -2396,7 +2407,7 @@ static struct
     GADGET_ID_BLOCK_SNAP_FIELD,                GADGET_ID_NONE,
     &level.block_snap_field,
     NULL,
-    "block snap field when snapping",  "use snapping delay to show animation"
+    "block snapped field when snapping", "use snapping delay to show animation"
   },
   {
     ED_ELEMENT_SETTINGS_XPOS(0),       ED_ELEMENT_SETTINGS_YPOS(1),
@@ -5561,9 +5572,8 @@ static void MapControlButtons()
 
   /* map buttons to select level */
   counter_id = ED_COUNTER_ID_SELECT_LEVEL;
-  ModifyEditorCounterLimits(counter_id,
-                           leveldir_current->first_level,
-                           leveldir_current->last_level);
+  counterbutton_info[counter_id].min_value = leveldir_current->first_level;
+  counterbutton_info[counter_id].max_value = leveldir_current->last_level;
   MapCounterButtons(counter_id);
 }
 
@@ -6256,6 +6266,8 @@ static void CopyCustomElementPropertiesToEditor(int element)
   custom_element_change.direct_action =
     (HAS_CHANGE_EVENT(element, CE_TOUCHED_BY_PLAYER) ? CE_TOUCHED_BY_PLAYER :
      HAS_CHANGE_EVENT(element, CE_PRESSED_BY_PLAYER) ? CE_PRESSED_BY_PLAYER :
+     HAS_CHANGE_EVENT(element, CE_SWITCHED_BY_PLAYER) ? CE_SWITCHED_BY_PLAYER :
+     HAS_CHANGE_EVENT(element, CE_SNAPPED_BY_PLAYER) ? CE_SNAPPED_BY_PLAYER :
      HAS_CHANGE_EVENT(element, CE_PUSHED_BY_PLAYER) ? CE_PUSHED_BY_PLAYER :
      HAS_CHANGE_EVENT(element, CE_ENTERED_BY_PLAYER) ? CE_ENTERED_BY_PLAYER :
      HAS_CHANGE_EVENT(element, CE_LEFT_BY_PLAYER) ? CE_LEFT_BY_PLAYER :
@@ -6273,6 +6285,8 @@ static void CopyCustomElementPropertiesToEditor(int element)
   custom_element_change.other_action =
     (HAS_CHANGE_EVENT(element, CE_PLAYER_TOUCHES_X) ? CE_PLAYER_TOUCHES_X :
      HAS_CHANGE_EVENT(element, CE_PLAYER_PRESSES_X) ? CE_PLAYER_PRESSES_X :
+     HAS_CHANGE_EVENT(element, CE_PLAYER_SWITCHES_X) ? CE_PLAYER_SWITCHES_X :
+     HAS_CHANGE_EVENT(element, CE_PLAYER_SNAPS_X) ? CE_PLAYER_SNAPS_X :
      HAS_CHANGE_EVENT(element, CE_PLAYER_PUSHES_X) ? CE_PLAYER_PUSHES_X :
      HAS_CHANGE_EVENT(element, CE_PLAYER_ENTERS_X) ? CE_PLAYER_ENTERS_X :
      HAS_CHANGE_EVENT(element, CE_PLAYER_LEAVES_X) ? CE_PLAYER_LEAVES_X :
@@ -6285,6 +6299,7 @@ static void CopyCustomElementPropertiesToEditor(int element)
      HAS_CHANGE_EVENT(element, CE_SWITCH_OF_X) ? CE_SWITCH_OF_X :
      HAS_CHANGE_EVENT(element, CE_CHANGE_OF_X) ? CE_CHANGE_OF_X :
      HAS_CHANGE_EVENT(element, CE_EXPLOSION_OF_X) ? CE_EXPLOSION_OF_X :
+     HAS_CHANGE_EVENT(element, CE_MOVE_OF_X) ? CE_MOVE_OF_X :
      HAS_CHANGE_EVENT(element, CE_VALUE_GETS_ZERO_OF_X) ? CE_VALUE_GETS_ZERO_OF_X :
      custom_element_change.other_action);
 }
@@ -6390,6 +6405,8 @@ static void CopyCustomElementPropertiesToGame(int element)
   /* set player change event from checkbox and selectbox */
   custom_element_change_events[CE_TOUCHED_BY_PLAYER] = FALSE;
   custom_element_change_events[CE_PRESSED_BY_PLAYER] = FALSE;
+  custom_element_change_events[CE_SWITCHED_BY_PLAYER] = FALSE;
+  custom_element_change_events[CE_SNAPPED_BY_PLAYER] = FALSE;
   custom_element_change_events[CE_PUSHED_BY_PLAYER] = FALSE;
   custom_element_change_events[CE_ENTERED_BY_PLAYER] = FALSE;
   custom_element_change_events[CE_LEFT_BY_PLAYER] = FALSE;
@@ -6407,6 +6424,8 @@ static void CopyCustomElementPropertiesToGame(int element)
   /* set other element action change event from checkbox and selectbox */
   custom_element_change_events[CE_PLAYER_TOUCHES_X] = FALSE;
   custom_element_change_events[CE_PLAYER_PRESSES_X] = FALSE;
+  custom_element_change_events[CE_PLAYER_SWITCHES_X] = FALSE;
+  custom_element_change_events[CE_PLAYER_SNAPS_X] = FALSE;
   custom_element_change_events[CE_PLAYER_PUSHES_X] = FALSE;
   custom_element_change_events[CE_PLAYER_ENTERS_X] = FALSE;
   custom_element_change_events[CE_PLAYER_LEAVES_X] = FALSE;
@@ -6419,6 +6438,7 @@ static void CopyCustomElementPropertiesToGame(int element)
   custom_element_change_events[CE_SWITCH_OF_X] = FALSE;
   custom_element_change_events[CE_CHANGE_OF_X] = FALSE;
   custom_element_change_events[CE_EXPLOSION_OF_X] = FALSE;
+  custom_element_change_events[CE_MOVE_OF_X] = FALSE;
   custom_element_change_events[CE_VALUE_GETS_ZERO_OF_X] = FALSE;
   custom_element_change_events[custom_element_change.other_action] =
     custom_element_change_events[CE_BY_OTHER_ACTION];
@@ -6676,6 +6696,9 @@ static void ModifyEditorDrawingArea(int drawingarea_id, int xsize, int ysize)
   int gadget_id = drawingarea_info[drawingarea_id].gadget_id;
   struct GadgetInfo *gi = level_editor_gadget[gadget_id];
 
+  drawingarea_info[drawingarea_id].area_xsize = xsize;
+  drawingarea_info[drawingarea_id].area_ysize = ysize;
+
   ModifyGadget(gi, GDI_AREA_SIZE, xsize, ysize, GDI_END);
 }
 
@@ -7219,7 +7242,7 @@ static struct
   { EL_DYNABOMB_INCREASE_POWER,        &level.score[SC_DYNAMITE],TEXT_COLLECTING },
   { EL_SHIELD_NORMAL,  &level.score[SC_SHIELD],        TEXT_COLLECTING },
   { EL_SHIELD_DEADLY,  &level.score[SC_SHIELD],        TEXT_COLLECTING },
-  { EL_EXTRA_TIME,     &level.score[SC_TIME_BONUS],    TEXT_COLLECTING },
+  { EL_EXTRA_TIME,     &level.extra_time_score,        TEXT_COLLECTING },
   { EL_KEY_1,          &level.score[SC_KEY],           TEXT_COLLECTING },
   { EL_KEY_2,          &level.score[SC_KEY],           TEXT_COLLECTING },
   { EL_KEY_3,          &level.score[SC_KEY],           TEXT_COLLECTING },