X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=4fc58a407b3933a9d6cdd23f69ad54fdf7f06a09;hp=3b9438e6031316e9fec7ebb2fd295c038b5f05e9;hb=37a06df577bbfd00f4b361f92cacb0d97036ba93;hpb=ea6e4698905d7440a265e323d03cf13fc323c44b diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 3b9438e6..4fc58a40 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -938,13 +938,8 @@ void dumpTreeInfo(TreeInfo *node, int depth) for (i = 0; i < (depth + 1) * 3; i++) printf(" "); -#if 1 printf("subdir == '%s' ['%s', '%s'] [%d])\n", node->subdir, node->fullpath, node->basepath, node->in_user_dir); -#else - printf("subdir == '%s' (%s) [%s] (%d)\n", - node->subdir, node->name, node->identifier, node->sort_priority); -#endif if (node->node_group != NULL) dumpTreeInfo(node->node_group, depth + 1); @@ -1396,7 +1391,6 @@ char *removeHashEntry(SetupFileHash *hash, char *token) } #if 0 -#ifdef DEBUG static void printSetupFileHash(SetupFileHash *hash) { BEGIN_HASH_ITERATION(hash, itr) @@ -1407,7 +1401,6 @@ static void printSetupFileHash(SetupFileHash *hash) END_HASH_ITERATION(hash, itr) } #endif -#endif static void *loadSetupFileData(char *filename, boolean use_hash) { @@ -1698,7 +1691,6 @@ static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent) return; } -#if 1 /* copy all values from the parent structure */ ldi->type = parent->type; @@ -1751,47 +1743,6 @@ static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent) ldi->handicap = TRUE; ldi->skip_levels = FALSE; } - -#else - - /* first copy all values from the parent structure ... */ - *ldi = *parent; - - /* ... then set all fields to default that cannot be inherited from parent. - This is especially important for all those fields that can be set from - the 'levelinfo.conf' config file, because the function 'setSetupInfo()' - calls 'free()' for all already set token values which requires that no - other structure's pointer may point to them! - */ - - ldi->subdir = NULL; - ldi->fullpath = NULL; - ldi->basepath = NULL; - ldi->identifier = NULL; - ldi->name = getStringCopy(ANONYMOUS_NAME); - ldi->name_sorting = NULL; - ldi->author = getStringCopy(parent->author); - - ldi->imported_from = getStringCopy(parent->imported_from); - ldi->imported_by = getStringCopy(parent->imported_by); - ldi->class_desc = getStringCopy(parent->class_desc); - - ldi->graphics_set = NULL; - ldi->sounds_set = NULL; - ldi->music_set = NULL; - ldi->graphics_path = NULL; - ldi->sounds_path = NULL; - ldi->music_path = NULL; - - ldi->level_group = FALSE; - ldi->parent_link = FALSE; - - ldi->node_top = parent->node_top; - ldi->node_parent = parent; - ldi->node_group = NULL; - ldi->next = NULL; - -#endif } static void freeTreeInfo(TreeInfo *ldi) @@ -1915,7 +1866,6 @@ static void createParentTreeInfoNode(TreeInfo *node_parent) ti_new->node_parent = node_parent; ti_new->parent_link = TRUE; -#if 1 setString(&ti_new->identifier, node_parent->identifier); setString(&ti_new->name, ".. (parent directory)"); setString(&ti_new->name_sorting, ti_new->name); @@ -1927,19 +1877,6 @@ static void createParentTreeInfoNode(TreeInfo *node_parent) ti_new->latest_engine = node_parent->latest_engine; setString(&ti_new->class_desc, getLevelClassDescription(ti_new)); -#else - ti_new->identifier = getStringCopy(node_parent->identifier); - ti_new->name = ".. (parent directory)"; - ti_new->name_sorting = getStringCopy(ti_new->name); - - ti_new->subdir = ".."; - ti_new->fullpath = getStringCopy(node_parent->fullpath); - - ti_new->sort_priority = node_parent->sort_priority; - ti_new->latest_engine = node_parent->latest_engine; - - ti_new->class_desc = getLevelClassDescription(ti_new); -#endif pushTreeInfo(&node_parent->node_group, ti_new); } @@ -1997,16 +1934,8 @@ static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first, getHashEntry(setup_file_hash, levelinfo_tokens[i].text)); *leveldir_new = ldi; -#if 1 if (strcmp(leveldir_new->name, ANONYMOUS_NAME) == 0) 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->subdir); - } -#endif DrawInitText(leveldir_new->name, 150, FC_YELLOW); @@ -2027,21 +1956,17 @@ static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first, leveldir_new->fullpath = getPath2(node_parent->fullpath, directory_name); } +#if 0 if (leveldir_new->levels < 1) leveldir_new->levels = 1; +#endif leveldir_new->last_level = leveldir_new->first_level + leveldir_new->levels - 1; -#if 1 leveldir_new->in_user_dir = (strcmp(leveldir_new->basepath, options.level_directory) != 0); -#else - leveldir_new->in_user_dir = - (leveldir_new->basepath == options.level_directory ? FALSE : TRUE); -#endif -#if 1 /* adjust some settings if user's private level directory was detected */ if (leveldir_new->sort_priority == LEVELCLASS_UNDEFINED && leveldir_new->in_user_dir && @@ -2053,28 +1978,30 @@ static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first, leveldir_new->readonly = FALSE; } -#else - /* adjust sort priority if user's private level directory was detected */ - if (leveldir_new->sort_priority == LEVELCLASS_UNDEFINED && - leveldir_new->in_user_dir && - strcmp(leveldir_new->subdir, getLoginName()) == 0) - leveldir_new->sort_priority = LEVELCLASS_PRIVATE_START; -#endif - leveldir_new->user_defined = (leveldir_new->in_user_dir && IS_LEVELCLASS_PRIVATE(leveldir_new)); leveldir_new->color = LEVELCOLOR(leveldir_new); -#if 1 + setString(&leveldir_new->class_desc, getLevelClassDescription(leveldir_new)); -#else - leveldir_new->class_desc = getLevelClassDescription(leveldir_new); -#endif leveldir_new->handicap_level = /* set handicap to default value */ (leveldir_new->user_defined || !leveldir_new->handicap ? leveldir_new->last_level : leveldir_new->first_level); +#if 1 + if (leveldir_new->levels < 1 && !leveldir_new->level_group) + { + /* skip level sets without levels (which are probably artwork base sets) */ + + freeSetupFileHash(setup_file_hash); + free(directory_path); + free(filename); + + return FALSE; + } +#endif + pushTreeInfo(node_first, leveldir_new); freeSetupFileHash(setup_file_hash); @@ -2249,16 +2176,8 @@ static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first, getHashEntry(setup_file_hash, levelinfo_tokens[i].text)); *artwork_new = ldi; -#if 1 if (strcmp(artwork_new->name, ANONYMOUS_NAME) == 0) 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->subdir); - } -#endif #if 0 DrawInitText(artwork_new->name, 150, FC_YELLOW); @@ -2282,86 +2201,42 @@ static boolean LoadArtworkInfoFromArtworkConf(TreeInfo **node_first, artwork_new->fullpath = getPath2(node_parent->fullpath, directory_name); } -#if 1 artwork_new->in_user_dir = (strcmp(artwork_new->basepath, OPTIONS_ARTWORK_DIRECTORY(type)) != 0); -#else - artwork_new->in_user_dir = - (artwork_new->basepath == OPTIONS_ARTWORK_DIRECTORY(type) ? FALSE : TRUE); -#endif /* (may use ".sort_priority" from "setup_file_hash" above) */ artwork_new->color = ARTWORKCOLOR(artwork_new); -#if 1 + setString(&artwork_new->class_desc, getLevelClassDescription(artwork_new)); -#else - artwork_new->class_desc = getLevelClassDescription(artwork_new); -#endif if (setup_file_hash == NULL) /* (after determining ".user_defined") */ { -#if 0 - if (artwork_new->name != NULL) - { - free(artwork_new->name); - artwork_new->name = NULL; - } -#endif - -#if 0 - if (artwork_new->identifier != NULL) - { - free(artwork_new->identifier); - artwork_new->identifier = NULL; - } -#endif - if (strcmp(artwork_new->subdir, ".") == 0) { if (artwork_new->user_defined) { -#if 1 setString(&artwork_new->identifier, "private"); -#else - artwork_new->identifier = getStringCopy("private"); -#endif artwork_new->sort_priority = ARTWORKCLASS_PRIVATE; } else { -#if 1 setString(&artwork_new->identifier, "classic"); -#else - artwork_new->identifier = getStringCopy("classic"); -#endif artwork_new->sort_priority = ARTWORKCLASS_CLASSICS; } /* set to new values after changing ".sort_priority" */ artwork_new->color = ARTWORKCOLOR(artwork_new); -#if 1 + setString(&artwork_new->class_desc, getLevelClassDescription(artwork_new)); -#else - artwork_new->class_desc = getLevelClassDescription(artwork_new); -#endif } else { -#if 1 setString(&artwork_new->identifier, artwork_new->subdir); -#else - artwork_new->identifier = getStringCopy(artwork_new->subdir); -#endif } -#if 1 setString(&artwork_new->name, artwork_new->identifier); setString(&artwork_new->name_sorting, artwork_new->name); -#else - artwork_new->name = getStringCopy(artwork_new->identifier); - artwork_new->name_sorting = getStringCopy(artwork_new->name); -#endif } DrawInitText(artwork_new->name, 150, FC_YELLOW); @@ -2439,7 +2314,6 @@ static TreeInfo *getDummyArtworkInfo(int type) setTreeInfoToDefaults(artwork_new, type); -#if 1 setString(&artwork_new->subdir, UNDEFINED_FILENAME); setString(&artwork_new->fullpath, UNDEFINED_FILENAME); setString(&artwork_new->basepath, UNDEFINED_FILENAME); @@ -2447,17 +2321,6 @@ static TreeInfo *getDummyArtworkInfo(int type) setString(&artwork_new->identifier, UNDEFINED_FILENAME); setString(&artwork_new->name, UNDEFINED_FILENAME); setString(&artwork_new->name_sorting, UNDEFINED_FILENAME); -#else - artwork_new->subdir = getStringCopy(UNDEFINED_FILENAME); - artwork_new->fullpath = getStringCopy(UNDEFINED_FILENAME); - artwork_new->basepath = getStringCopy(UNDEFINED_FILENAME); - - checked_free(artwork_new->name); - - artwork_new->identifier = getStringCopy(UNDEFINED_FILENAME); - artwork_new->name = getStringCopy(UNDEFINED_FILENAME); - artwork_new->name_sorting = getStringCopy(UNDEFINED_FILENAME); -#endif return artwork_new; } @@ -2550,12 +2413,6 @@ void LoadArtworkInfoFromLevelInfo(ArtworkDirTree **artwork_node, char *path = getPath2(getLevelDirFromTreeInfo(level_node), ARTWORK_DIRECTORY((*artwork_node)->type)); -#if 0 - if (!level_node->parent_link) - printf("CHECKING '%s' ['%s', '%s'] ...\n", path, - level_node->subdir, level_node->name); -#endif - if (!level_node->parent_link) { TreeInfo *topnode_last = *artwork_node; @@ -2662,29 +2519,10 @@ static void SaveUserLevelInfo() /* always start with reliable default values */ setTreeInfoToDefaults(level_info, TREE_TYPE_LEVEL_DIR); -#if 1 setString(&level_info->name, getLoginName()); setString(&level_info->author, getRealName()); level_info->levels = 100; level_info->first_level = 1; -#if 0 - level_info->sort_priority = LEVELCLASS_PRIVATE_START; - level_info->readonly = FALSE; - setString(&level_info->graphics_set, GFX_CLASSIC_SUBDIR); - setString(&level_info->sounds_set, SND_CLASSIC_SUBDIR); - setString(&level_info->music_set, MUS_CLASSIC_SUBDIR); -#endif -#else - ldi.name = getStringCopy(getLoginName()); - ldi.author = getStringCopy(getRealName()); - ldi.levels = 100; - ldi.first_level = 1; - ldi.sort_priority = LEVELCLASS_PRIVATE_START; - ldi.readonly = FALSE; - ldi.graphics_set = getStringCopy(GFX_CLASSIC_SUBDIR); - ldi.sounds_set = getStringCopy(SND_CLASSIC_SUBDIR); - ldi.music_set = getStringCopy(MUS_CLASSIC_SUBDIR); -#endif token_value_position = TOKEN_VALUE_POSITION_SHORT; @@ -2694,7 +2532,6 @@ static void SaveUserLevelInfo() ldi = *level_info; for (i = 0; i < NUM_LEVELINFO_TOKENS; i++) { -#if 1 if (i == LEVELINFO_TOKEN_NAME || i == LEVELINFO_TOKEN_AUTHOR || i == LEVELINFO_TOKEN_LEVELS || @@ -2704,15 +2541,6 @@ static void SaveUserLevelInfo() /* just to make things nicer :) */ if (i == LEVELINFO_TOKEN_AUTHOR) fprintf(file, "\n"); -#else - if (i != LEVELINFO_TOKEN_IDENTIFIER && - i != LEVELINFO_TOKEN_NAME_SORTING && - i != LEVELINFO_TOKEN_IMPORTED_FROM && - i != LEVELINFO_TOKEN_IMPORTED_BY && - i != LEVELINFO_TOKEN_FILENAME && - i != LEVELINFO_TOKEN_FILETYPE) - fprintf(file, "%s\n", getSetupLine(levelinfo_tokens, "", i)); -#endif } token_value_position = TOKEN_VALUE_POSITION_DEFAULT;