rnd-19990604-1-src
[rocksndiamonds.git] / src / files.c
index a7238908437ca22db1bd06af9266af1ce6b4e600..7e1ad30bc6dafa99c5a9478dc6929c6a34b41678 100644 (file)
@@ -827,15 +827,15 @@ void LoadScore(int level_nr)
     fscanf(file, "%d", &highscore[i].Score);
     fgets(line, MAX_LINE_LEN, file);
 
-    if (line[strlen(line)-1] == '\n')
-      line[strlen(line)-1] = '\0';
+    if (line[strlen(line) - 1] == '\n')
+      line[strlen(line) - 1] = '\0';
 
     for (line_ptr = line; *line_ptr; line_ptr++)
     {
       if (*line_ptr != ' ' && *line_ptr != '\t' && *line_ptr != '\0')
       {
-       strncpy(highscore[i].Name, line_ptr, MAX_NAMELEN - 1);
-       highscore[i].Name[MAX_NAMELEN - 1] = '\0';
+       strncpy(highscore[i].Name, line_ptr, MAX_PLAYER_NAME_LEN);
+       highscore[i].Name[MAX_PLAYER_NAME_LEN] = '\0';
        break;
       }
     }
@@ -975,6 +975,7 @@ static struct
 
   /* level directory info */
   { TYPE_STRING,  &ldi.name,           "name"                          },
+  { TYPE_STRING,  &ldi.name_short,     "name_short"                    },
   { TYPE_STRING,  &ldi.author,         "author"                        },
   { TYPE_INTEGER, &ldi.levels,         "levels"                        },
   { TYPE_INTEGER, &ldi.first_level,    "first_level"                   },
@@ -1240,6 +1241,7 @@ static void checkSetupFileListIdentifier(struct SetupFileList *setup_file_list,
 static void setLevelDirInfoToDefaults(struct LevelDirInfo *ldi)
 {
   ldi->name = getStringCopy(ANONYMOUS_NAME);
+  ldi->name_short = NULL;
   ldi->author = getStringCopy(ANONYMOUS_NAME);
   ldi->levels = 0;
   ldi->first_level = 0;
@@ -1462,6 +1464,10 @@ static int LoadLevelInfoFromLevelDir(char *level_directory, int start_entry)
        setSetupInfo(i, getTokenValue(setup_file_list, token_info[i].text));
       leveldir[current_entry] = ldi;
 
+      if (leveldir[current_entry].name_short == NULL)
+       leveldir[current_entry].name_short =
+         getStringCopy(leveldir[current_entry].name);
+
       leveldir[current_entry].filename = getStringCopy(dir_entry->d_name);
       leveldir[current_entry].last_level =
        leveldir[current_entry].first_level +
@@ -1532,6 +1538,7 @@ static void SaveUserLevelInfo()
   setLevelDirInfoToDefaults(&ldi);
 
   ldi.name = getLoginName();
+  ldi.name_short = getLoginName();
   ldi.author = getRealName();
   ldi.levels = 100;
   ldi.first_level = 1;
@@ -1572,11 +1579,11 @@ void LoadSetup()
     freeSetupFileList(setup_file_list);
 
     /* needed to work around problems with fixed length strings */
-    if (strlen(setup.player_name) >= MAX_NAMELEN)
-      setup.player_name[MAX_NAMELEN - 1] = '\0';
-    else if (strlen(setup.player_name) < MAX_NAMELEN - 1)
+    if (strlen(setup.player_name) > MAX_PLAYER_NAME_LEN)
+      setup.player_name[MAX_PLAYER_NAME_LEN] = '\0';
+    else if (strlen(setup.player_name) < MAX_PLAYER_NAME_LEN)
     {
-      char *new_name = checked_malloc(MAX_NAMELEN);
+      char *new_name = checked_malloc(MAX_PLAYER_NAME_LEN + 1);
 
       strcpy(new_name, setup.player_name);
       free(setup.player_name);