static void SaveUserLevelInfo(); /* for 'InitUserLevelDir()' */
static char *getSetupLine(char *, int); /* for 'SaveUserLevelInfo()' */
-static char *getGlobalDataDir()
-{
- return GAME_DIR;
-}
-
char *getUserDataDir()
{
static char *userdata_dir = NULL;
static char *getScoreDir(char *level_subdir)
{
static char *score_dir = NULL;
- char *data_dir = getGlobalDataDir();
+ char *data_dir = options.rw_base_directory;
char *score_subdir = SCORES_DIRECTORY;
if (score_dir)
Error(ERR_WARN, "using high speed movement for player");
level.double_speed = TRUE;
}
+
+ /* determine border element for this level */
+ SetBorderElement();
}
void SaveLevel(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;
}
}
/* 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" },
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;
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 +
setLevelDirInfoToDefaults(&ldi);
ldi.name = getLoginName();
+ ldi.name_short = getLoginName();
ldi.author = getRealName();
ldi.levels = 100;
ldi.first_level = 1;
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);