X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=7ac0d1daff97860cf80639995122518b017abaae;hb=d965f76d694c19c4188ac3429cfa049200abdf54;hp=631a5756fa9584a3c4969fac84c8c39d82d03da1;hpb=9a3b7326f0a20338806bcdc48fe52eb7c2dcaa8e;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 631a5756..7ac0d1da 100644 --- a/src/editor.c +++ b/src/editor.c @@ -4536,6 +4536,32 @@ static char *getElementInfoText(int element) 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]; @@ -6891,11 +6917,24 @@ static void CopyElementPropertiesToGame(int element) 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); @@ -7420,32 +7459,6 @@ static void DrawEnvelopeTextArea(int envelope_nr) 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);