projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20040524-1-src
[rocksndiamonds.git]
/
src
/
libgame
/
setup.c
diff --git
a/src/libgame/setup.c
b/src/libgame/setup.c
index 4106c32a72307a3f378d5a8cfa90073c4d0f02c8..1d5a35919715dc5d48f4341aeb182e7e89b047b9 100644
(file)
--- a/
src/libgame/setup.c
+++ b/
src/libgame/setup.c
@@
-357,7
+357,7
@@
char *getTapeFilename(int nr)
checked_free(filename);
sprintf(basename, "%03d.%s", nr, TAPEFILE_EXTENSION);
checked_free(filename);
sprintf(basename, "%03d.%s", nr, TAPEFILE_EXTENSION);
- filename = getPath2(getTapeDir(leveldir_current->
filename
), basename);
+ filename = getPath2(getTapeDir(leveldir_current->
subdir
), basename);
return filename;
}
return filename;
}
@@
-383,7
+383,7
@@
char *getScoreFilename(int nr)
checked_free(filename);
sprintf(basename, "%03d.%s", nr, SCOREFILE_EXTENSION);
checked_free(filename);
sprintf(basename, "%03d.%s", nr, SCOREFILE_EXTENSION);
- filename = getPath2(getScoreDir(leveldir_current->
filename
), basename);
+ filename = getPath2(getScoreDir(leveldir_current->
subdir
), basename);
return filename;
}
return filename;
}
@@
-928,11
+928,11
@@
void dumpTreeInfo(TreeInfo *node, int depth)
printf(" ");
#if 1
printf(" ");
#if 1
- printf("
filename
== '%s' ['%s', '%s'] [%d])\n",
- node->
filename
, node->fullpath, node->basepath, node->user_defined);
+ printf("
subdir
== '%s' ['%s', '%s'] [%d])\n",
+ node->
subdir
, node->fullpath, node->basepath, node->user_defined);
#else
#else
- printf("
filename
== '%s' (%s) [%s] (%d)\n",
- node->
filename
, node->name, node->identifier, node->sort_priority);
+ printf("
subdir
== '%s' (%s) [%s] (%d)\n",
+ node->
subdir
, node->name, node->identifier, node->sort_priority);
#endif
if (node->node_group != NULL)
#endif
if (node->node_group != NULL)
@@
-1582,8
+1582,11
@@
void checkSetupFileHashIdentifier(SetupFileHash *setup_file_hash,
#define LEVELINFO_TOKEN_GRAPHICS_SET 11
#define LEVELINFO_TOKEN_SOUNDS_SET 12
#define LEVELINFO_TOKEN_MUSIC_SET 13
#define LEVELINFO_TOKEN_GRAPHICS_SET 11
#define LEVELINFO_TOKEN_SOUNDS_SET 12
#define LEVELINFO_TOKEN_MUSIC_SET 13
+#define LEVELINFO_TOKEN_FILENAME 14
+#define LEVELINFO_TOKEN_FILETYPE 15
+#define LEVELINFO_TOKEN_HANDICAP 16
-#define NUM_LEVELINFO_TOKENS 1
4
+#define NUM_LEVELINFO_TOKENS 1
7
static LevelDirTree ldi;
static LevelDirTree ldi;
@@
-1603,7
+1606,10
@@
static struct TokenInfo levelinfo_tokens[] =
{ TYPE_BOOLEAN, &ldi.readonly, "readonly" },
{ TYPE_STRING, &ldi.graphics_set, "graphics_set" },
{ TYPE_STRING, &ldi.sounds_set, "sounds_set" },
{ TYPE_BOOLEAN, &ldi.readonly, "readonly" },
{ TYPE_STRING, &ldi.graphics_set, "graphics_set" },
{ TYPE_STRING, &ldi.sounds_set, "sounds_set" },
- { TYPE_STRING, &ldi.music_set, "music_set" }
+ { TYPE_STRING, &ldi.music_set, "music_set" },
+ { TYPE_STRING, &ldi.level_filename, "filename" },
+ { TYPE_STRING, &ldi.level_filetype, "filetype" },
+ { TYPE_STRING, &ldi.handicap, "handicap" }
};
static void setTreeInfoToDefaults(TreeInfo *ldi, int type)
};
static void setTreeInfoToDefaults(TreeInfo *ldi, int type)
@@
-1623,7
+1629,7
@@
static void setTreeInfoToDefaults(TreeInfo *ldi, int type)
ldi->cl_first = -1;
ldi->cl_cursor = -1;
ldi->cl_first = -1;
ldi->cl_cursor = -1;
- ldi->
filename
= NULL;
+ ldi->
subdir
= NULL;
ldi->fullpath = NULL;
ldi->basepath = NULL;
ldi->identifier = NULL;
ldi->fullpath = NULL;
ldi->basepath = NULL;
ldi->identifier = NULL;
@@
-1649,12
+1655,16
@@
static void setTreeInfoToDefaults(TreeInfo *ldi, int type)
ldi->sounds_path = getStringCopy(UNDEFINED_FILENAME);
ldi->music_path = getStringCopy(UNDEFINED_FILENAME);
ldi->sounds_path = getStringCopy(UNDEFINED_FILENAME);
ldi->music_path = getStringCopy(UNDEFINED_FILENAME);
+ ldi->level_filename = NULL;
+ ldi->level_filetype = NULL;
+
ldi->levels = 0;
ldi->first_level = 0;
ldi->last_level = 0;
ldi->level_group = FALSE;
ldi->handicap_level = 0;
ldi->readonly = TRUE;
ldi->levels = 0;
ldi->first_level = 0;
ldi->last_level = 0;
ldi->level_group = FALSE;
ldi->handicap_level = 0;
ldi->readonly = TRUE;
+ ldi->handicap = TRUE;
}
}
}
}
@@
-1682,7
+1692,7
@@
static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent)
ldi->cl_first = -1;
ldi->cl_cursor = -1;
ldi->cl_first = -1;
ldi->cl_cursor = -1;
- ldi->
filename
= NULL;
+ ldi->
subdir
= NULL;
ldi->fullpath = NULL;
ldi->basepath = NULL;
ldi->identifier = NULL;
ldi->fullpath = NULL;
ldi->basepath = NULL;
ldi->identifier = NULL;
@@
-1708,15
+1718,18
@@
static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent)
ldi->sounds_path = getStringCopy(UNDEFINED_FILENAME);
ldi->music_path = getStringCopy(UNDEFINED_FILENAME);
ldi->sounds_path = getStringCopy(UNDEFINED_FILENAME);
ldi->music_path = getStringCopy(UNDEFINED_FILENAME);
+ ldi->level_filename = NULL;
+ ldi->level_filetype = NULL;
+
ldi->levels = 0;
ldi->first_level = 0;
ldi->last_level = 0;
ldi->level_group = FALSE;
ldi->handicap_level = 0;
ldi->readonly = TRUE;
ldi->levels = 0;
ldi->first_level = 0;
ldi->last_level = 0;
ldi->level_group = FALSE;
ldi->handicap_level = 0;
ldi->readonly = TRUE;
+ ldi->handicap = TRUE;
}
}
-
#else
/* first copy all values from the parent structure ... */
#else
/* first copy all values from the parent structure ... */
@@
-1729,7
+1742,7
@@
static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent)
other structure's pointer may point to them!
*/
other structure's pointer may point to them!
*/
- ldi->
filename
= NULL;
+ ldi->
subdir
= NULL;
ldi->fullpath = NULL;
ldi->basepath = NULL;
ldi->identifier = NULL;
ldi->fullpath = NULL;
ldi->basepath = NULL;
ldi->identifier = NULL;
@@
-1760,7
+1773,7
@@
static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent)
static void freeTreeInfo(TreeInfo *ldi)
{
static void freeTreeInfo(TreeInfo *ldi)
{
- checked_free(ldi->
filename
);
+ checked_free(ldi->
subdir
);
checked_free(ldi->fullpath);
checked_free(ldi->basepath);
checked_free(ldi->identifier);
checked_free(ldi->fullpath);
checked_free(ldi->basepath);
checked_free(ldi->identifier);
@@
-1878,7
+1891,7
@@
static void createParentTreeInfoNode(TreeInfo *node_parent)
setString(&ti_new->name, ".. (parent directory)");
setString(&ti_new->name_sorting, ti_new->name);
setString(&ti_new->name, ".. (parent directory)");
setString(&ti_new->name_sorting, ti_new->name);
- setString(&ti_new->
filename
, "..");
+ setString(&ti_new->
subdir
, "..");
setString(&ti_new->fullpath, node_parent->fullpath);
ti_new->sort_priority = node_parent->sort_priority;
setString(&ti_new->fullpath, node_parent->fullpath);
ti_new->sort_priority = node_parent->sort_priority;
@@
-1890,7
+1903,7
@@
static void createParentTreeInfoNode(TreeInfo *node_parent)
ti_new->name = ".. (parent directory)";
ti_new->name_sorting = getStringCopy(ti_new->name);
ti_new->name = ".. (parent directory)";
ti_new->name_sorting = getStringCopy(ti_new->name);
- ti_new->
filename
= "..";
+ ti_new->
subdir
= "..";
ti_new->fullpath = getStringCopy(node_parent->fullpath);
ti_new->sort_priority = node_parent->sort_priority;
ti_new->fullpath = getStringCopy(node_parent->fullpath);
ti_new->sort_priority = node_parent->sort_priority;
@@
-1933,7
+1946,7
@@
static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first,
else
setTreeInfoToDefaults(leveldir_new, TREE_TYPE_LEVEL_DIR);
else
setTreeInfoToDefaults(leveldir_new, TREE_TYPE_LEVEL_DIR);
- leveldir_new->
filename
= getStringCopy(directory_name);
+ leveldir_new->
subdir
= getStringCopy(directory_name);
checkSetupFileHashIdentifier(setup_file_hash, getCookie("LEVELINFO"));
checkSetupFileHashIdentifier(setup_file_hash, getCookie("LEVELINFO"));
@@
-1946,19
+1959,19
@@
static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first,
#if 1
if (strcmp(leveldir_new->name, ANONYMOUS_NAME) == 0)
#if 1
if (strcmp(leveldir_new->name, ANONYMOUS_NAME) == 0)
- setString(&leveldir_new->name, leveldir_new->
filename
);
+ setString(&leveldir_new->name, leveldir_new->
subdir
);
#else
if (strcmp(leveldir_new->name, ANONYMOUS_NAME) == 0)
{
free(leveldir_new->name);
#else
if (strcmp(leveldir_new->name, ANONYMOUS_NAME) == 0)
{
free(leveldir_new->name);
- leveldir_new->name = getStringCopy(leveldir_new->
filename
);
+ leveldir_new->name = getStringCopy(leveldir_new->
subdir
);
}
#endif
DrawInitText(leveldir_new->name, 150, FC_YELLOW);
if (leveldir_new->identifier == NULL)
}
#endif
DrawInitText(leveldir_new->name, 150, FC_YELLOW);
if (leveldir_new->identifier == NULL)
- leveldir_new->identifier = getStringCopy(leveldir_new->
filename
);
+ leveldir_new->identifier = getStringCopy(leveldir_new->
subdir
);
if (leveldir_new->name_sorting == NULL)
leveldir_new->name_sorting = getStringCopy(leveldir_new->name);
if (leveldir_new->name_sorting == NULL)
leveldir_new->name_sorting = getStringCopy(leveldir_new->name);
@@
-1966,7
+1979,7
@@
static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first,
if (node_parent == NULL) /* top level group */
{
leveldir_new->basepath = getStringCopy(level_directory);
if (node_parent == NULL) /* top level group */
{
leveldir_new->basepath = getStringCopy(level_directory);
- leveldir_new->fullpath = getStringCopy(leveldir_new->
filename
);
+ leveldir_new->fullpath = getStringCopy(leveldir_new->
subdir
);
}
else /* sub level group */
{
}
else /* sub level group */
{
@@
-1996,9
+2009,8
@@
static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first,
#endif
leveldir_new->handicap_level = /* set handicap to default value */
#endif
leveldir_new->handicap_level = /* set handicap to default value */
- (leveldir_new->user_defined ?
- leveldir_new->last_level :
- leveldir_new->first_level);
+ (leveldir_new->user_defined || !leveldir_new->handicap ?
+ leveldir_new->last_level : leveldir_new->first_level);
pushTreeInfo(node_first, leveldir_new);
pushTreeInfo(node_first, leveldir_new);
@@
-2159,7
+2171,7
@@
static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first,
else
setTreeInfoToDefaults(artwork_new, type);
else
setTreeInfoToDefaults(artwork_new, type);
- artwork_new->
filename
= getStringCopy(directory_name);
+ artwork_new->
subdir
= getStringCopy(directory_name);
if (setup_file_hash) /* (before defining ".color" and ".class_desc") */
{
if (setup_file_hash) /* (before defining ".color" and ".class_desc") */
{
@@
-2176,12
+2188,12
@@
static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first,
#if 1
if (strcmp(artwork_new->name, ANONYMOUS_NAME) == 0)
#if 1
if (strcmp(artwork_new->name, ANONYMOUS_NAME) == 0)
- setString(&artwork_new->name, artwork_new->
filename
);
+ setString(&artwork_new->name, artwork_new->
subdir
);
#else
if (strcmp(artwork_new->name, ANONYMOUS_NAME) == 0)
{
free(artwork_new->name);
#else
if (strcmp(artwork_new->name, ANONYMOUS_NAME) == 0)
{
free(artwork_new->name);
- artwork_new->name = getStringCopy(artwork_new->
filename
);
+ artwork_new->name = getStringCopy(artwork_new->
subdir
);
}
#endif
}
#endif
@@
-2190,7
+2202,7
@@
static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first,
#endif
if (artwork_new->identifier == NULL)
#endif
if (artwork_new->identifier == NULL)
- artwork_new->identifier = getStringCopy(artwork_new->
filename
);
+ artwork_new->identifier = getStringCopy(artwork_new->
subdir
);
if (artwork_new->name_sorting == NULL)
artwork_new->name_sorting = getStringCopy(artwork_new->name);
if (artwork_new->name_sorting == NULL)
artwork_new->name_sorting = getStringCopy(artwork_new->name);
@@
-2199,7
+2211,7
@@
static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first,
if (node_parent == NULL) /* top level group */
{
artwork_new->basepath = getStringCopy(base_directory);
if (node_parent == NULL) /* top level group */
{
artwork_new->basepath = getStringCopy(base_directory);
- artwork_new->fullpath = getStringCopy(artwork_new->
filename
);
+ artwork_new->fullpath = getStringCopy(artwork_new->
subdir
);
}
else /* sub level group */
{
}
else /* sub level group */
{
@@
-2241,7
+2253,7
@@
static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first,
}
#endif
}
#endif
- if (strcmp(artwork_new->
filename
, ".") == 0)
+ if (strcmp(artwork_new->
subdir
, ".") == 0)
{
if (artwork_new->user_defined)
{
{
if (artwork_new->user_defined)
{
@@
-2274,9
+2286,9
@@
static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first,
else
{
#if 1
else
{
#if 1
- setString(&artwork_new->identifier, artwork_new->
filename
);
+ setString(&artwork_new->identifier, artwork_new->
subdir
);
#else
#else
- artwork_new->identifier = getStringCopy(artwork_new->
filename
);
+ artwork_new->identifier = getStringCopy(artwork_new->
subdir
);
#endif
}
#endif
}
@@
-2365,7
+2377,7
@@
static TreeInfo *getDummyArtworkInfo(int type)
setTreeInfoToDefaults(artwork_new, type);
#if 1
setTreeInfoToDefaults(artwork_new, type);
#if 1
- setString(&artwork_new->
filename,
UNDEFINED_FILENAME);
+ setString(&artwork_new->
subdir,
UNDEFINED_FILENAME);
setString(&artwork_new->fullpath, UNDEFINED_FILENAME);
setString(&artwork_new->basepath, UNDEFINED_FILENAME);
setString(&artwork_new->fullpath, UNDEFINED_FILENAME);
setString(&artwork_new->basepath, UNDEFINED_FILENAME);
@@
-2373,7
+2385,7
@@
static TreeInfo *getDummyArtworkInfo(int type)
setString(&artwork_new->name, UNDEFINED_FILENAME);
setString(&artwork_new->name_sorting, UNDEFINED_FILENAME);
#else
setString(&artwork_new->name, UNDEFINED_FILENAME);
setString(&artwork_new->name_sorting, UNDEFINED_FILENAME);
#else
- artwork_new->
filename
= getStringCopy(UNDEFINED_FILENAME);
+ artwork_new->
subdir
= getStringCopy(UNDEFINED_FILENAME);
artwork_new->fullpath = getStringCopy(UNDEFINED_FILENAME);
artwork_new->basepath = getStringCopy(UNDEFINED_FILENAME);
artwork_new->fullpath = getStringCopy(UNDEFINED_FILENAME);
artwork_new->basepath = getStringCopy(UNDEFINED_FILENAME);
@@
-2478,7
+2490,7
@@
void LoadArtworkInfoFromLevelInfo(ArtworkDirTree **artwork_node,
#if 0
if (!level_node->parent_link)
printf("CHECKING '%s' ['%s', '%s'] ...\n", path,
#if 0
if (!level_node->parent_link)
printf("CHECKING '%s' ['%s', '%s'] ...\n", path,
- level_node->
filename
, level_node->name);
+ level_node->
subdir
, level_node->name);
#endif
if (!level_node->parent_link)
#endif
if (!level_node->parent_link)
@@
-2494,7
+2506,7
@@
void LoadArtworkInfoFromLevelInfo(ArtworkDirTree **artwork_node,
free((*artwork_node)->name);
free((*artwork_node)->name_sorting);
free((*artwork_node)->name);
free((*artwork_node)->name_sorting);
- (*artwork_node)->identifier = getStringCopy(level_node->
filename
);
+ (*artwork_node)->identifier = getStringCopy(level_node->
subdir
);
(*artwork_node)->name = getStringCopy(level_node->name);
(*artwork_node)->name_sorting = getStringCopy(level_node->name);
(*artwork_node)->name = getStringCopy(level_node->name);
(*artwork_node)->name_sorting = getStringCopy(level_node->name);
@@
-2749,7
+2761,7
@@
void SaveLevelSetup_LastSeries()
/* ----------------------------------------------------------------------- */
char *filename = getPath2(getSetupDir(), LEVELSETUP_FILENAME);
/* ----------------------------------------------------------------------- */
char *filename = getPath2(getSetupDir(), LEVELSETUP_FILENAME);
- char *level_subdir = leveldir_current->
filename
;
+ char *level_subdir = leveldir_current->
subdir
;
FILE *file;
InitUserDataDirectory();
FILE *file;
InitUserDataDirectory();
@@
-2828,7
+2840,7
@@
void LoadLevelSetup_SeriesInfo()
{
char *filename;
SetupFileHash *level_setup_hash = NULL;
{
char *filename;
SetupFileHash *level_setup_hash = NULL;
- char *level_subdir = leveldir_current->
filename
;
+ char *level_subdir = leveldir_current->
subdir
;
/* always start with reliable default values */
level_nr = leveldir_current->first_level;
/* always start with reliable default values */
level_nr = leveldir_current->first_level;
@@
-2839,7
+2851,7
@@
void LoadLevelSetup_SeriesInfo()
/* ~/.<program>/levelsetup/<level series>/levelsetup.conf */
/* ----------------------------------------------------------------------- */
/* ~/.<program>/levelsetup/<level series>/levelsetup.conf */
/* ----------------------------------------------------------------------- */
- level_subdir = leveldir_current->
filename
;
+ level_subdir = leveldir_current->
subdir
;
filename = getPath2(getLevelSetupDir(level_subdir), LEVELSETUP_FILENAME);
filename = getPath2(getLevelSetupDir(level_subdir), LEVELSETUP_FILENAME);
@@
-2870,7
+2882,7
@@
void LoadLevelSetup_SeriesInfo()
if (level_nr > leveldir_current->last_level + 1)
level_nr = leveldir_current->last_level;
if (level_nr > leveldir_current->last_level + 1)
level_nr = leveldir_current->last_level;
- if (leveldir_current->user_defined)
+ if (leveldir_current->user_defined
|| !leveldir_current->handicap
)
level_nr = leveldir_current->last_level;
leveldir_current->handicap_level = level_nr;
level_nr = leveldir_current->last_level;
leveldir_current->handicap_level = level_nr;
@@
-2889,7
+2901,7
@@
void LoadLevelSetup_SeriesInfo()
void SaveLevelSetup_SeriesInfo()
{
char *filename;
void SaveLevelSetup_SeriesInfo()
{
char *filename;
- char *level_subdir = leveldir_current->
filename
;
+ char *level_subdir = leveldir_current->
subdir
;
char *level_nr_str = int2str(level_nr, 0);
char *handicap_level_str = int2str(leveldir_current->handicap_level, 0);
FILE *file;
char *level_nr_str = int2str(level_nr, 0);
char *handicap_level_str = int2str(leveldir_current->handicap_level, 0);
FILE *file;