{ CE_IMPACT, "impact (on something)" },
{ CE_SMASHED, "smashed (from above)" },
{ CE_VALUE_GETS_ZERO, "CE value gets 0" },
+ { CE_SCORE_GETS_ZERO, "CE score gets 0" },
{ -1, NULL }
};
{ CE_MOVE_OF_X, "move of" },
{ CE_CREATION_OF_X, "creation of" },
{ CE_VALUE_GETS_ZERO_OF_X, "CE value gets 0 of" },
+ { CE_SCORE_GETS_ZERO_OF_X, "CE score gets 0 of" },
{ -1, NULL }
};
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];
if (element >= NUM_FILE_ELEMENTS)
Error(ERR_WARN, "editor element %d is runtime element", element);
- if (strcmp(getElementInfoText(element), INFOTEXT_UNKNOWN_ELEMENT) == 0)
+ if (strEqual(getElementInfoText(element), INFOTEXT_UNKNOWN_ELEMENT))
Error(ERR_WARN, "no element description for element %d", element);
}
}
HAS_CHANGE_EVENT(element, CE_IMPACT) ? CE_IMPACT :
HAS_CHANGE_EVENT(element, CE_SMASHED) ? CE_SMASHED :
HAS_CHANGE_EVENT(element, CE_VALUE_GETS_ZERO) ? CE_VALUE_GETS_ZERO :
+ HAS_CHANGE_EVENT(element, CE_SCORE_GETS_ZERO) ? CE_SCORE_GETS_ZERO :
custom_element_change.direct_action);
/* set "change by other element action" selectbox help value */
HAS_CHANGE_EVENT(element, CE_MOVE_OF_X) ? CE_MOVE_OF_X :
HAS_CHANGE_EVENT(element, CE_CREATION_OF_X) ? CE_CREATION_OF_X :
HAS_CHANGE_EVENT(element, CE_VALUE_GETS_ZERO_OF_X) ? CE_VALUE_GETS_ZERO_OF_X :
+ HAS_CHANGE_EVENT(element, CE_SCORE_GETS_ZERO_OF_X) ? CE_SCORE_GETS_ZERO_OF_X :
custom_element_change.other_action);
}
custom_element_change_events[CE_IMPACT] = FALSE;
custom_element_change_events[CE_SMASHED] = FALSE;
custom_element_change_events[CE_VALUE_GETS_ZERO] = FALSE;
+ custom_element_change_events[CE_SCORE_GETS_ZERO] = FALSE;
custom_element_change_events[custom_element_change.direct_action] =
custom_element_change_events[CE_BY_DIRECT_ACTION];
custom_element_change_events[CE_MOVE_OF_X] = FALSE;
custom_element_change_events[CE_CREATION_OF_X] = FALSE;
custom_element_change_events[CE_VALUE_GETS_ZERO_OF_X] = FALSE;
+ custom_element_change_events[CE_SCORE_GETS_ZERO_OF_X] = FALSE;
custom_element_change_events[custom_element_change.other_action] =
custom_element_change_events[CE_BY_OTHER_ACTION];
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 */