X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=8fa4317c3beab9502bfa62ad100d629b6a42469d;hb=5dd3c868d9df906623a5fc0ff2124655a14e3715;hp=4106c32a72307a3f378d5a8cfa90073c4d0f02c8;hpb=9c285b0e8e4d81c5559815c5f7142685ce865206;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 4106c32a..8fa4317c 100644 --- 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); - filename = getPath2(getTapeDir(leveldir_current->filename), basename); + filename = getPath2(getTapeDir(leveldir_current->subdir), basename); return filename; } @@ -383,7 +383,7 @@ char *getScoreFilename(int nr) 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; } @@ -928,11 +928,11 @@ void dumpTreeInfo(TreeInfo *node, int depth) 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 - 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) @@ -1582,8 +1582,10 @@ 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_FILENAME 14 +#define LEVELINFO_TOKEN_FILETYPE 15 -#define NUM_LEVELINFO_TOKENS 14 +#define NUM_LEVELINFO_TOKENS 16 static LevelDirTree ldi; @@ -1603,7 +1605,9 @@ 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_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" } }; static void setTreeInfoToDefaults(TreeInfo *ldi, int type) @@ -1623,7 +1627,7 @@ static void setTreeInfoToDefaults(TreeInfo *ldi, int type) ldi->cl_first = -1; ldi->cl_cursor = -1; - ldi->filename = NULL; + ldi->subdir = NULL; ldi->fullpath = NULL; ldi->basepath = NULL; ldi->identifier = NULL; @@ -1649,6 +1653,9 @@ static void setTreeInfoToDefaults(TreeInfo *ldi, int type) 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; @@ -1682,7 +1689,7 @@ static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent) ldi->cl_first = -1; ldi->cl_cursor = -1; - ldi->filename = NULL; + ldi->subdir = NULL; ldi->fullpath = NULL; ldi->basepath = NULL; ldi->identifier = NULL; @@ -1708,6 +1715,9 @@ static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent) 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; @@ -1729,7 +1739,7 @@ static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent) other structure's pointer may point to them! */ - ldi->filename = NULL; + ldi->subdir = NULL; ldi->fullpath = NULL; ldi->basepath = NULL; ldi->identifier = NULL; @@ -1760,7 +1770,7 @@ static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent) 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); @@ -1878,7 +1888,7 @@ static void createParentTreeInfoNode(TreeInfo *node_parent) 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; @@ -1890,7 +1900,7 @@ static void createParentTreeInfoNode(TreeInfo *node_parent) 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; @@ -1933,7 +1943,7 @@ static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first, 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")); @@ -1946,19 +1956,19 @@ static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first, #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); - 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) - 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); @@ -1966,7 +1976,7 @@ static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first, 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 */ { @@ -2159,7 +2169,7 @@ static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first, 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") */ { @@ -2176,12 +2186,12 @@ static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first, #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); - artwork_new->name = getStringCopy(artwork_new->filename); + artwork_new->name = getStringCopy(artwork_new->subdir); } #endif @@ -2190,7 +2200,7 @@ static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first, #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); @@ -2199,7 +2209,7 @@ static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first, 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 */ { @@ -2241,7 +2251,7 @@ static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first, } #endif - if (strcmp(artwork_new->filename, ".") == 0) + if (strcmp(artwork_new->subdir, ".") == 0) { if (artwork_new->user_defined) { @@ -2274,9 +2284,9 @@ static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first, else { #if 1 - setString(&artwork_new->identifier, artwork_new->filename); + setString(&artwork_new->identifier, artwork_new->subdir); #else - artwork_new->identifier = getStringCopy(artwork_new->filename); + artwork_new->identifier = getStringCopy(artwork_new->subdir); #endif } @@ -2365,7 +2375,7 @@ static TreeInfo *getDummyArtworkInfo(int type) 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); @@ -2373,7 +2383,7 @@ static TreeInfo *getDummyArtworkInfo(int type) 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); @@ -2478,7 +2488,7 @@ void LoadArtworkInfoFromLevelInfo(ArtworkDirTree **artwork_node, #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) @@ -2494,7 +2504,7 @@ void LoadArtworkInfoFromLevelInfo(ArtworkDirTree **artwork_node, 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); @@ -2749,7 +2759,7 @@ void SaveLevelSetup_LastSeries() /* ----------------------------------------------------------------------- */ char *filename = getPath2(getSetupDir(), LEVELSETUP_FILENAME); - char *level_subdir = leveldir_current->filename; + char *level_subdir = leveldir_current->subdir; FILE *file; InitUserDataDirectory(); @@ -2828,7 +2838,7 @@ void LoadLevelSetup_SeriesInfo() { 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; @@ -2839,7 +2849,7 @@ void LoadLevelSetup_SeriesInfo() /* ~/./levelsetup//levelsetup.conf */ /* ----------------------------------------------------------------------- */ - level_subdir = leveldir_current->filename; + level_subdir = leveldir_current->subdir; filename = getPath2(getLevelSetupDir(level_subdir), LEVELSETUP_FILENAME); @@ -2889,7 +2899,7 @@ void LoadLevelSetup_SeriesInfo() 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;