fixed updating user level set fields (more generic approach)
authorHolger Schemel <info@artsoft.org>
Tue, 17 Oct 2017 16:43:57 +0000 (18:43 +0200)
committerHolger Schemel <info@artsoft.org>
Fri, 23 Mar 2018 22:21:14 +0000 (23:21 +0100)
src/libgame/setup.c

index 5784ac496183c72cf174fecd4649a923f3648908..ab8ecd37e01275ef5e08937df43f9b9be80b8509 100644 (file)
@@ -3525,24 +3525,20 @@ boolean UpdateUserLevelSet(char *level_subdir,
   FILE *file = NULL;
   FILE *file_tmp = NULL;
   char line[MAX_LINE_LEN];
-  boolean update_num_levels_only = FALSE;
   boolean success = FALSE;
 
-  if (level_name == NULL || level_author == NULL || first_level_nr == -1)
-    update_num_levels_only = TRUE;
-
   if ((file     = fopen(filename,     MODE_READ)) &&
       (file_tmp = fopen(filename_tmp, MODE_WRITE)))
   {
     while (fgets(line, MAX_LINE_LEN, file))
     {
-      if (strPrefix(line, "name:") && !update_num_levels_only)
+      if (strPrefix(line, "name:") && level_name != NULL)
        fprintf(file_tmp, "%-32s%s\n", "name:", level_name);
-      else if (strPrefix(line, "author:") && !update_num_levels_only)
+      else if (strPrefix(line, "author:") && level_author != NULL)
        fprintf(file_tmp, "%-32s%s\n", "author:", level_author);
-      else if (strPrefix(line, "levels:"))
+      else if (strPrefix(line, "levels:") && num_levels != -1)
        fprintf(file_tmp, "%-32s%d\n", "levels:", num_levels);
-      else if (strPrefix(line, "first_level:") && !update_num_levels_only)
+      else if (strPrefix(line, "first_level:") && first_level_nr != -1)
        fprintf(file_tmp, "%-32s%d\n", "first_level:", first_level_nr);
       else
        fputs(line, file_tmp);