static struct ValueTextInfo options_action_mode_none[] =
{
- { CA_ARG_UNDEFINED, " " },
+ { CA_MODE_UNDEFINED, " " },
{ -1, NULL }
};
EL_SWITCHGATE_OPEN,
EL_SWITCHGATE_CLOSED,
EL_SWITCHGATE_SWITCH_UP,
- EL_EMPTY,
+ EL_SWITCHGATE_SWITCH_DOWN,
EL_ENVELOPE_1,
EL_ENVELOPE_2,
return info_text;
}
+char *getElementDescriptionFilename(int element)
+{
+ char *docs_dir = options.docs_directory;
+ char *elements_subdir = "elements";
+ static char *filename = NULL;
+ char basename[MAX_FILENAME_LEN];
+
+ checked_free(filename);
+
+ /* 1st try: look for element description file for exactly this element */
+ sprintf(basename, "%s.txt", element_info[element].token_name);
+ filename = getPath3(docs_dir, elements_subdir, basename);
+ if (fileExists(filename))
+ return filename;
+
+ free(filename);
+
+ /* 2nd try: look for element description file for this element's class */
+ sprintf(basename, "%s.txt", element_info[element].class_name);
+ filename = getPath3(docs_dir, elements_subdir, basename);
+ if (fileExists(filename))
+ return filename;
+
+ return NULL;
+}
+
static void InitDynamicEditorElementList(int **elements, int *num_elements)
{
boolean element_found[NUM_FILE_ELEMENTS];
/* only change if corresponding selectbox has changed */
if (selectbox_info[ED_SELECTBOX_ID_ACTION_MODE].options !=
action_arg_modes[mode])
+#if 0
+ custom_element_change.action_mode =
+ (action_arg_modes[mode])[0].value;
+#else
custom_element_change.action_mode = -1;
+#endif
/* only change if corresponding selectbox has changed */
if (selectbox_info[ED_SELECTBOX_ID_ACTION_ARG].options !=
action_arg_options[i].options)
+#if 0
+ custom_element_change.action_arg =
+ action_arg_options[i].options[0].value;
+#else
custom_element_change.action_arg = -1;
+#endif
break;
}
CopyClassicElementPropertiesToGame(element);
}
+void CheckElementDescriptions()
+{
+ int i;
+
+ for (i = 0; i < NUM_FILE_ELEMENTS; i++)
+ if (getElementDescriptionFilename(i) == NULL && !IS_OBSOLETE(i))
+ Error(ERR_WARN, "no element description for element '%s'", EL_NAME(i));
+}
+
void DrawLevelEd()
{
CloseDoor(DOOR_CLOSE_ALL);
OpenDoor(DOOR_OPEN_2 | DOOR_NO_DELAY);
+#if DEBUG
+ CheckElementDescriptions();
+#endif
+
if (level_editor_test_game)
{
CopyPlayfield(level.field, Feld);
MapTextAreaGadget(ED_TEXTAREA_ID_ENVELOPE_INFO);
}
-char *getElementDescriptionFilename(int element)
-{
- char *docs_dir = options.docs_directory;
- char *elements_subdir = "elements";
- static char *filename = NULL;
- char basename[MAX_FILENAME_LEN];
-
- checked_free(filename);
-
- /* 1st try: look for element description file for exactly this element */
- sprintf(basename, "%s.txt", element_info[element].token_name);
- filename = getPath3(docs_dir, elements_subdir, basename);
- if (fileExists(filename))
- return filename;
-
- free(filename);
-
- /* 2nd try: look for element description file for this element's class */
- sprintf(basename, "%s.txt", element_info[element].class_name);
- filename = getPath3(docs_dir, elements_subdir, basename);
- if (fileExists(filename))
- return filename;
-
- return NULL;
-}
-
static boolean PrintInfoText(char *text, int font_nr, int start_line)
{
int font_height = getFontHeight(font_nr);
int screen_line = 0;
int i, x, y;
+#if 1
+ if (setup.editor.show_element_token)
+ {
+ DrawTextF(pad_x, pad_y + screen_line++ * font2_height, FONT_TEXT_3,
+ "[%s]", element_info[properties_element].token_name);
+ screen_line++;
+ }
+
+#else
+
#if DEBUG
if (IS_CUSTOM_ELEMENT(properties_element))
{
"[Group Element %d]", properties_element - EL_GROUP_START + 1);
screen_line++;
}
+#endif
#endif
/* ----- print number of elements / percentage of this element in level */
}
else if (button_status == MB_RELEASED)
{
- int i, id = GADGET_ID_NONE;
+ int id = GADGET_ID_NONE;
+ int new_element_shift = element_shift;
+ int i;
switch (key)
{
case KSYM_Insert:
case KSYM_Delete:
+#if 1
+ /* IS_EDITOR_CASCADE */
+ for (i = 0; i < num_editor_elements; i++)
+ {
+ if ((key == KSYM_Insert && i == element_shift) ||
+ (key == KSYM_Delete && new_element_shift > element_shift))
+ break;
+
+ if (IS_EDITOR_CASCADE(editor_elements[i]))
+ new_element_shift = i;
+ }
+
+ if (i < num_editor_elements)
+ element_shift = new_element_shift;
+
+ 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();
+
+#else
+
for (i = 0; i < num_editor_elements; i++)
{
int e = editor_elements[i];
ModifyEditorElementList();
}
+#endif
break;