X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=d683b67c6b13b736166c362496cf3b1a1ef4645e;hb=4092afb639cd525d6d3edd4a287c1b506ba9c1d2;hp=ab8ecd37e01275ef5e08937df43f9b9be80b8509;hpb=b73d298732ea8fe62b79ff23b84e8f5c4e0cf7e6;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index ab8ecd37..d683b67c 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -3526,6 +3526,30 @@ boolean UpdateUserLevelSet(char *level_subdir, FILE *file_tmp = NULL; char line[MAX_LINE_LEN]; boolean success = FALSE; + LevelDirTree *leveldir = getTreeInfoFromIdentifier(leveldir_first, + level_subdir); + // update values in level directory tree + + if (level_name != NULL) + setString(&leveldir->name, level_name); + + if (level_author != NULL) + setString(&leveldir->author, level_author); + + if (num_levels != -1) + leveldir->levels = num_levels; + + if (first_level_nr != -1) + leveldir->first_level = first_level_nr; + + // update values that depend on other values + + setString(&leveldir->name_sorting, leveldir->name); + + leveldir->last_level = leveldir->first_level + leveldir->levels - 1; + + // sort order of level sets may have changed + sortTreeInfo(&leveldir_first); if ((file = fopen(filename, MODE_READ)) && (file_tmp = fopen(filename_tmp, MODE_WRITE))) @@ -3612,7 +3636,8 @@ boolean CreateUserLevelSet(char *level_subdir, fprintf(file, "%s\n", getSetupLine(levelinfo_tokens, "", i)); /* just to make things nicer :) */ - if (i == LEVELINFO_TOKEN_AUTHOR) + if (i == LEVELINFO_TOKEN_AUTHOR || + i == LEVELINFO_TOKEN_FIRST_LEVEL) fprintf(file, "\n"); }