static void InitTapeDirectory(char *level_subdir)
{
+ createDirectory(getUserDataDir(), "user data");
createDirectory(getTapeDir(""), "main tape");
createDirectory(getTapeDir(level_subdir), "level tape");
}
{
if (access(getUserLevelDir(level_subdir), F_OK) != 0)
{
+ createDirectory(getUserDataDir(), "user data");
createDirectory(getUserLevelDir(""), "main user level");
createDirectory(getUserLevelDir(level_subdir), "user level");
InitTapeDirectory(leveldir[leveldir_nr].filename);
/* if a tape still exists, ask to overwrite it */
- if ((file = fopen(filename, "r")))
+ if (access(filename, F_OK) == 0)
{
new_tape = FALSE;
- fclose(file);
-
if (!Request("Replace old tape ?", REQ_ASK))
return;
}
if (!(file = fopen(filename, "r")))
{
- Error(ERR_WARN, "cannot open setup/info file '%s'", filename);
+ Error(ERR_WARN, "cannot open configuration file '%s'", filename);
return NULL;
}
freeSetupFileList(setup_file_list);
if (first_valid_list_entry == NULL)
- Error(ERR_WARN, "setup/info file '%s' is empty", filename);
+ Error(ERR_WARN, "configuration file '%s' is empty", filename);
return first_valid_list_entry;
}
{
if (strcmp(setup_file_list->value, identifier) != 0)
{
- Error(ERR_WARN, "setup/info file has wrong version");
+ Error(ERR_WARN, "configuration file has wrong version");
return;
}
else
checkSetupFileListIdentifier(setup_file_list->next, identifier);
else
{
- Error(ERR_WARN, "setup/info file has no version information");
+ Error(ERR_WARN, "configuration file has no version information");
return;
}
}
int i, current_entry = start_entry;
if ((dir = opendir(level_directory)) == NULL)
- Error(ERR_EXIT, "cannot read level directory '%s'", level_directory);
+ {
+ Error(ERR_WARN, "cannot read level directory '%s'", level_directory);
+ return current_entry;
+ }
while (current_entry < MAX_LEVDIR_ENTRIES)
{
closedir(dir);
- if (current_entry == start_entry && start_entry != -1)
- Error(ERR_EXIT, "cannot find any valid level series in directory '%s'",
+ if (current_entry == start_entry)
+ Error(ERR_WARN, "cannot find any valid level series in directory '%s'",
level_directory);
return current_entry;
num_leveldirs);
num_leveldirs = LoadLevelInfoFromLevelDir(getUserLevelDir(""),
num_leveldirs);
+
+ if (num_leveldirs == 0)
+ Error(ERR_EXIT, "cannot find any valid level series in any directory");
+
if (num_leveldirs > 1)
qsort(leveldir, num_leveldirs, sizeof(struct LevelDirInfo),
compareLevelDirInfoEntries);