rnd-20060407-1-src
[rocksndiamonds.git] / src / editor.c
index 4fccecf376ebf57048c8705ce05f6640b763f6fe..d628b8be7bb53fb3c7a2e643b05fd125163e098a 100644 (file)
@@ -1767,11 +1767,13 @@ static struct ValueTextInfo options_action_arg_number[] =
   { CA_ARG_NUMBER_LEVEL_GEMS,  "gems"                          },
   { CA_ARG_NUMBER_LEVEL_SCORE, "score"                         },
   { CA_ARG_UNDEFINED,          " "                             },
-  { CA_ARG_ELEMENT_CV_HEADLINE,        "[CE value"                     },
-  { CA_ARG_ELEMENT_CV_HEADLINE,        " of"                           },
-  { CA_ARG_ELEMENT_CV_HEADLINE,        " element]"                     },
+  { CA_ARG_ELEMENT_CV_HEADLINE,        "[CE value]"                    },
   { CA_ARG_ELEMENT_CV_TARGET,  "target"                        },
   { CA_ARG_ELEMENT_CV_TRIGGER, "trigger"                       },
+  { CA_ARG_UNDEFINED,          " "                             },
+  { CA_ARG_ELEMENT_CS_HEADLINE,        "[CE score]"                    },
+  { CA_ARG_ELEMENT_CS_TARGET,  "target"                        },
+  { CA_ARG_ELEMENT_CS_TRIGGER, "trigger"                       },
 
   { -1,                                NULL                            }
 };
@@ -1802,12 +1804,14 @@ static struct ValueTextInfo options_action_arg_value[] =
   { CA_ARG_NUMBER_LEVEL_GEMS,  "gems"                          },
   { CA_ARG_NUMBER_LEVEL_SCORE, "score"                         },
   { CA_ARG_UNDEFINED,          " "                             },
-  { CA_ARG_ELEMENT_CV_HEADLINE,        "[CE value"                     },
-  { CA_ARG_ELEMENT_CV_HEADLINE,        " of"                           },
-  { CA_ARG_ELEMENT_CV_HEADLINE,        " element]"                     },
+  { CA_ARG_ELEMENT_CV_HEADLINE,        "[CE value]"                    },
   { CA_ARG_ELEMENT_CV_TARGET,  "target"                        },
   { CA_ARG_ELEMENT_CV_TRIGGER, "trigger"                       },
   { CA_ARG_UNDEFINED,          " "                             },
+  { CA_ARG_ELEMENT_CS_HEADLINE,        "[CE score]"                    },
+  { CA_ARG_ELEMENT_CS_TARGET,  "target"                        },
+  { CA_ARG_ELEMENT_CS_TRIGGER, "trigger"                       },
+  { CA_ARG_UNDEFINED,          " "                             },
   { CA_ARG_ELEMENT_NR_HEADLINE,        "[element]"                     },
   { CA_ARG_ELEMENT_NR_TARGET,  "target"                        },
   { CA_ARG_ELEMENT_NR_TRIGGER, "trigger"                       },
@@ -3369,6 +3373,11 @@ static int editor_el_emerald_mine_club[] =
   EL_EM_DYNAMITE_ACTIVE,
   EL_EMPTY,
   EL_EMPTY,
+
+  EL_YAMYAM_LEFT,
+  EL_YAMYAM_RIGHT,
+  EL_YAMYAM_UP,
+  EL_YAMYAM_DOWN,
 };
 static int *editor_hl_emerald_mine_club_ptr = editor_hl_emerald_mine_club;
 static int *editor_el_emerald_mine_club_ptr = editor_el_emerald_mine_club;
@@ -4216,7 +4225,12 @@ static int editor_el_custom[] =
   EL_TRIGGER_PLAYER,
   EL_TRIGGER_ELEMENT,
   EL_TRIGGER_CE_VALUE,
-  EL_EMPTY
+  EL_TRIGGER_CE_SCORE,
+
+  EL_EMPTY,
+  EL_EMPTY,
+  EL_CURRENT_CE_VALUE,
+  EL_CURRENT_CE_SCORE
 };
 static int *editor_hl_custom_ptr = editor_hl_custom;
 static int *editor_el_custom_ptr = editor_el_custom;
@@ -7691,6 +7705,10 @@ static struct
   { EL_BD_FIREFLY_DOWN, &level.score[SC_SPACESHIP],    TEXT_SMASHING   },
   { EL_SP_SNIKSNAK,    &level.score[SC_SPACESHIP],     TEXT_SMASHING   },
   { EL_YAMYAM,         &level.score[SC_YAMYAM],        TEXT_SMASHING   },
+  { EL_YAMYAM_LEFT,    &level.score[SC_YAMYAM],        TEXT_SMASHING   },
+  { EL_YAMYAM_RIGHT,   &level.score[SC_YAMYAM],        TEXT_SMASHING   },
+  { EL_YAMYAM_UP,      &level.score[SC_YAMYAM],        TEXT_SMASHING   },
+  { EL_YAMYAM_DOWN,    &level.score[SC_YAMYAM],        TEXT_SMASHING   },
   { EL_DARK_YAMYAM,    &level.score[SC_YAMYAM],        TEXT_SMASHING   },
   { EL_ROBOT,          &level.score[SC_ROBOT],         TEXT_SMASHING   },
   { EL_PACMAN,         &level.score[SC_PACMAN],        TEXT_SMASHING   },
@@ -7841,7 +7859,11 @@ static void DrawPropertiesConfig()
 
     if (IS_AMOEBOID(properties_element))
       MapDrawingArea(ED_DRAWING_ID_AMOEBA_CONTENT);
-    else if (properties_element == EL_YAMYAM)
+    else if (properties_element == EL_YAMYAM ||
+            properties_element == EL_YAMYAM_LEFT ||
+            properties_element == EL_YAMYAM_RIGHT ||
+            properties_element == EL_YAMYAM_UP ||
+            properties_element == EL_YAMYAM_DOWN)
       DrawYamYamContentAreas();
     else if (properties_element == EL_EMC_MAGIC_BALL)
     {
@@ -9919,6 +9941,37 @@ void HandleLevelEditorKeyInput(Key key)
 
        break;
 
+      case KSYM_Insert:
+      case KSYM_Delete:
+       for (i = 0; i < num_editor_elements; i++)
+       {
+         int e = editor_elements[i];
+
+         if ((key == KSYM_Insert &&
+              (e == EL_INTERNAL_CASCADE_CE ||
+               e == EL_INTERNAL_CASCADE_CE_ACTIVE)) ||
+             (key == KSYM_Delete &&
+              (e == EL_INTERNAL_CASCADE_GE ||
+               e == EL_INTERNAL_CASCADE_GE_ACTIVE)))
+           break;
+       }
+
+       if (i < num_editor_elements)
+       {
+         element_shift = i;
+
+         if (element_shift > num_editor_elements - ED_NUM_ELEMENTLIST_BUTTONS)
+           element_shift = num_editor_elements - ED_NUM_ELEMENTLIST_BUTTONS;
+
+         ModifyGadget(level_editor_gadget[GADGET_ID_SCROLL_LIST_VERTICAL],
+                      GDI_SCROLLBAR_ITEM_POSITION,
+                      element_shift / ED_ELEMENTLIST_BUTTONS_HORIZ, GDI_END);
+
+         ModifyEditorElementList();
+       }
+
+       break;
+
       case KSYM_Escape:
         if (edit_mode == ED_MODE_DRAWING)
        {