X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=d63bc561997645c6416b1c9746202a55dce411b8;hb=002c075b9935dc5dc055d3a8f35b2774796fa1c4;hp=1d5a35919715dc5d48f4341aeb182e7e89b047b9;hpb=98cdb3fce945485772ccc49741fa29051338ce0d;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 1d5a3591..d63bc561 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -404,7 +404,12 @@ char *getEditorSetupFilename() static char *filename = NULL; checked_free(filename); + filename = getPath2(getCurrentLevelDir(), EDITORSETUP_FILENAME); + if (fileExists(filename)) + return filename; + + checked_free(filename); filename = getPath2(getSetupDir(), EDITORSETUP_FILENAME); return filename; @@ -438,8 +443,8 @@ char *getLevelSetInfoFilename() char *basenames[] = { "README", - "README.txt", "README.TXT", + "README.txt", "Readme", "Readme.txt", "readme", @@ -452,8 +457,8 @@ char *getLevelSetInfoFilename() for (i = 0; basenames[i] != NULL; i++) { checked_free(filename); - filename = getPath2(getCurrentLevelDir(), basenames[i]); + if (fileExists(filename)) return filename; } @@ -1593,23 +1598,23 @@ static LevelDirTree ldi; static struct TokenInfo levelinfo_tokens[] = { /* level directory info */ - { TYPE_STRING, &ldi.identifier, "identifier" }, - { TYPE_STRING, &ldi.name, "name" }, - { TYPE_STRING, &ldi.name_sorting, "name_sorting" }, - { TYPE_STRING, &ldi.author, "author" }, - { TYPE_STRING, &ldi.imported_from, "imported_from" }, - { TYPE_INTEGER, &ldi.levels, "levels" }, - { TYPE_INTEGER, &ldi.first_level, "first_level" }, - { TYPE_INTEGER, &ldi.sort_priority, "sort_priority" }, - { TYPE_BOOLEAN, &ldi.latest_engine, "latest_engine" }, - { TYPE_BOOLEAN, &ldi.level_group, "level_group" }, - { TYPE_BOOLEAN, &ldi.readonly, "readonly" }, - { TYPE_STRING, &ldi.graphics_set, "graphics_set" }, - { TYPE_STRING, &ldi.sounds_set, "sounds_set" }, - { TYPE_STRING, &ldi.music_set, "music_set" }, - { TYPE_STRING, &ldi.level_filename, "filename" }, - { TYPE_STRING, &ldi.level_filetype, "filetype" }, - { TYPE_STRING, &ldi.handicap, "handicap" } + { TYPE_STRING, &ldi.identifier, "identifier" }, + { TYPE_STRING, &ldi.name, "name" }, + { TYPE_STRING, &ldi.name_sorting, "name_sorting" }, + { TYPE_STRING, &ldi.author, "author" }, + { TYPE_STRING, &ldi.imported_from, "imported_from" }, + { TYPE_INTEGER, &ldi.levels, "levels" }, + { TYPE_INTEGER, &ldi.first_level, "first_level" }, + { TYPE_INTEGER, &ldi.sort_priority, "sort_priority" }, + { TYPE_BOOLEAN, &ldi.latest_engine, "latest_engine" }, + { TYPE_BOOLEAN, &ldi.level_group, "level_group" }, + { TYPE_BOOLEAN, &ldi.readonly, "readonly" }, + { TYPE_STRING, &ldi.graphics_set, "graphics_set" }, + { TYPE_STRING, &ldi.sounds_set, "sounds_set" }, + { TYPE_STRING, &ldi.music_set, "music_set" }, + { TYPE_STRING, &ldi.level_filename, "filename" }, + { TYPE_STRING, &ldi.level_filetype, "filetype" }, + { TYPE_BOOLEAN, &ldi.handicap, "handicap" } }; static void setTreeInfoToDefaults(TreeInfo *ldi, int type) @@ -1786,6 +1791,8 @@ static void freeTreeInfo(TreeInfo *ldi) if (ldi->type == TREE_TYPE_LEVEL_DIR) { + checked_free(ldi->imported_from); + checked_free(ldi->graphics_set); checked_free(ldi->sounds_set); checked_free(ldi->music_set); @@ -1793,6 +1800,9 @@ static void freeTreeInfo(TreeInfo *ldi) checked_free(ldi->graphics_path); checked_free(ldi->sounds_path); checked_free(ldi->music_path); + + checked_free(ldi->level_filename); + checked_free(ldi->level_filetype); } } @@ -2628,7 +2638,9 @@ static void SaveUserLevelInfo() for (i = 0; i < NUM_LEVELINFO_TOKENS; i++) if (i != LEVELINFO_TOKEN_IDENTIFIER && i != LEVELINFO_TOKEN_NAME_SORTING && - i != LEVELINFO_TOKEN_IMPORTED_FROM) + i != LEVELINFO_TOKEN_IMPORTED_FROM && + i != LEVELINFO_TOKEN_FILENAME && + i != LEVELINFO_TOKEN_FILETYPE) fprintf(file, "%s\n", getSetupLine(levelinfo_tokens, "", i)); fclose(file);