X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=4fc58a407b3933a9d6cdd23f69ad54fdf7f06a09;hb=37a06df577bbfd00f4b361f92cacb0d97036ba93;hp=d78e3c70f6b2addf7174478c7a8dda4859bb779f;hpb=ee749a764df3dfa944c1f9de740ccbeb1cfdef40;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index d78e3c70..4fc58a40 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -1956,8 +1956,10 @@ 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; @@ -1965,11 +1967,16 @@ static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first, leveldir_new->in_user_dir = (strcmp(leveldir_new->basepath, options.level_directory) != 0); - /* adjust sort priority if user's private level directory was detected */ + /* adjust some settings 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) + (strcmp(leveldir_new->subdir, getLoginName()) == 0 || + strcmp(leveldir_new->name, getLoginName()) == 0 || + strcmp(leveldir_new->author, getRealName()) == 0)) + { leveldir_new->sort_priority = LEVELCLASS_PRIVATE_START; + leveldir_new->readonly = FALSE; + } leveldir_new->user_defined = (leveldir_new->in_user_dir && IS_LEVELCLASS_PRIVATE(leveldir_new)); @@ -1982,6 +1989,19 @@ static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first, (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);