projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-19981123-5
[rocksndiamonds.git]
/
src
/
files.c
diff --git
a/src/files.c
b/src/files.c
index b3a37e6100dec8d9a7c15248834fbdab4551a5f2..d28c1f48279502d5dcfa181d4f271e802c212ef0 100644
(file)
--- a/
src/files.c
+++ b/
src/files.c
@@
-212,6
+212,7
@@
static void InitUserDataDirectory()
static void InitTapeDirectory(char *level_subdir)
{
static void InitTapeDirectory(char *level_subdir)
{
+ createDirectory(getUserDataDir(), "user data");
createDirectory(getTapeDir(""), "main tape");
createDirectory(getTapeDir(level_subdir), "level tape");
}
createDirectory(getTapeDir(""), "main tape");
createDirectory(getTapeDir(level_subdir), "level tape");
}
@@
-226,6
+227,7
@@
static void InitUserLevelDirectory(char *level_subdir)
{
if (access(getUserLevelDir(level_subdir), F_OK) != 0)
{
{
if (access(getUserLevelDir(level_subdir), F_OK) != 0)
{
+ createDirectory(getUserDataDir(), "user data");
createDirectory(getUserLevelDir(""), "main user level");
createDirectory(getUserLevelDir(level_subdir), "user level");
createDirectory(getUserLevelDir(""), "main user level");
createDirectory(getUserLevelDir(level_subdir), "user level");
@@
-599,11
+601,9
@@
void SaveTape(int level_nr)
InitTapeDirectory(leveldir[leveldir_nr].filename);
/* if a tape still exists, ask to overwrite it */
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;
{
new_tape = FALSE;
- fclose(file);
-
if (!Request("Replace old tape ?", REQ_ASK))
return;
}
if (!Request("Replace old tape ?", REQ_ASK))
return;
}
@@
-1029,7
+1029,7
@@
static struct SetupFileList *loadSetupFileList(char *filename)
if (!(file = fopen(filename, "r")))
{
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;
}
return NULL;
}
@@
-1098,7
+1098,7
@@
static struct SetupFileList *loadSetupFileList(char *filename)
freeSetupFileList(setup_file_list);
if (first_valid_list_entry == 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;
}
return first_valid_list_entry;
}
@@
-1113,7
+1113,7
@@
static void checkSetupFileListIdentifier(struct SetupFileList *setup_file_list,
{
if (strcmp(setup_file_list->value, identifier) != 0)
{
{
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
return;
}
else
@@
-1124,7
+1124,7
@@
static void checkSetupFileListIdentifier(struct SetupFileList *setup_file_list,
checkSetupFileListIdentifier(setup_file_list->next, identifier);
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;
}
}
return;
}
}
@@
-1317,7
+1317,10
@@
static int LoadLevelInfoFromLevelDir(char *level_directory, int start_entry)
int i, current_entry = start_entry;
if ((dir = opendir(level_directory)) == NULL)
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)
{
while (current_entry < MAX_LEVDIR_ENTRIES)
{
@@
-1371,8
+1374,8
@@
static int LoadLevelInfoFromLevelDir(char *level_directory, int start_entry)
closedir(dir);
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;
level_directory);
return current_entry;
@@
-1389,6
+1392,10
@@
void LoadLevelInfo()
num_leveldirs);
num_leveldirs = LoadLevelInfoFromLevelDir(getUserLevelDir(""),
num_leveldirs);
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);
if (num_leveldirs > 1)
qsort(leveldir, num_leveldirs, sizeof(struct LevelDirInfo),
compareLevelDirInfoEntries);