X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=00168642fb95fb9665f46805699c6194a560f7ea;hb=891c39ca37c4fea5f6cc4ca40f913a56c68ef495;hp=3ba6745deb17c313c1d55f640b9f2d8bdd7e4571;hpb=d292f0ad61b32968ca4a6750b93ac7e5b99ff00d;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 3ba6745d..00168642 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -417,6 +417,18 @@ char *getEditorSetupFilename() return filename; } +char *getElementInfoFilename() +{ + static char *filename = NULL; + + if (filename != NULL) + free(filename); + + filename = getPath2(getCurrentLevelDir(), ELEMENTINFO_FILENAME); + + return filename; +} + static char *getCorrectedArtworkBasename(char *basename) { char *basename_corrected = basename; @@ -1222,6 +1234,17 @@ SetupFileList *setListEntry(SetupFileList *list, char *token, char *value) return setListEntry(list->next, token, value); } +SetupFileList *addListEntry(SetupFileList *list, char *token, char *value) +{ + if (list == NULL) + return NULL; + + if (list->next == NULL) + return (list->next = newSetupFileList(token, value)); + else + return addListEntry(list->next, token, value); +} + #ifdef DEBUG static void printSetupFileList(SetupFileList *list) { @@ -1418,7 +1441,7 @@ static void *loadSetupFileData(char *filename, boolean use_hash) if (use_hash) setHashEntry((SetupFileHash *)setup_file_data, token, value); else - insert_ptr = setListEntry((SetupFileList *)insert_ptr, token, value); + insert_ptr = addListEntry((SetupFileList *)insert_ptr, token, value); } }