X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=1d5a35919715dc5d48f4341aeb182e7e89b047b9;hb=98cdb3fce945485772ccc49741fa29051338ce0d;hp=8fa4317c3beab9502bfa62ad100d629b6a42469d;hpb=a5e9fc02d650da0520fc4994ba5780c27e4f3569;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 8fa4317c..1d5a3591 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -1584,8 +1584,9 @@ void checkSetupFileHashIdentifier(SetupFileHash *setup_file_hash, #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 16 +#define NUM_LEVELINFO_TOKENS 17 static LevelDirTree ldi; @@ -1607,7 +1608,8 @@ static struct TokenInfo levelinfo_tokens[] = { TYPE_STRING, &ldi.sounds_set, "sounds_set" }, { TYPE_STRING, &ldi.music_set, "music_set" }, { TYPE_STRING, &ldi.level_filename, "filename" }, - { TYPE_STRING, &ldi.level_filetype, "filetype" } + { TYPE_STRING, &ldi.level_filetype, "filetype" }, + { TYPE_STRING, &ldi.handicap, "handicap" } }; static void setTreeInfoToDefaults(TreeInfo *ldi, int type) @@ -1662,6 +1664,7 @@ static void setTreeInfoToDefaults(TreeInfo *ldi, int type) ldi->level_group = FALSE; ldi->handicap_level = 0; ldi->readonly = TRUE; + ldi->handicap = TRUE; } } @@ -1724,9 +1727,9 @@ static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent) ldi->level_group = FALSE; ldi->handicap_level = 0; ldi->readonly = TRUE; + ldi->handicap = TRUE; } - #else /* first copy all values from the parent structure ... */ @@ -2006,9 +2009,8 @@ static boolean LoadLevelInfoFromLevelConf(TreeInfo **node_first, #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); @@ -2880,7 +2882,7 @@ void LoadLevelSetup_SeriesInfo() 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;