X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsetup.c;h=a99c7a83fa80178fbcb3638091dbc8eea39d431a;hb=931f541075d35124138ddcd63e8aab0d8b0d05bc;hp=51c6f646616827e29fe59134b4405355a167a0d2;hpb=2c4f8dc7bc7d04f5e23a6ad9f3e7594bf902ba56;p=rocksndiamonds.git diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 51c6f646..a99c7a83 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -1497,12 +1497,14 @@ static void setTreeInfoToDefaults(TreeInfo *ldi, int type) if (ldi->type == TREE_TYPE_LEVEL_DIR) { ldi->imported_from = NULL; + ldi->graphics_set = NULL; ldi->sounds_set = NULL; ldi->music_set = NULL; ldi->graphics_path = getStringCopy(UNDEFINED_FILENAME); ldi->sounds_path = getStringCopy(UNDEFINED_FILENAME); ldi->music_path = getStringCopy(UNDEFINED_FILENAME); + ldi->levels = 0; ldi->first_level = 0; ldi->last_level = 0; @@ -1523,6 +1525,55 @@ static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent) return; } +#if 1 + /* copy all values from the parent structure */ + + ldi->type = parent->type; + + ldi->node_top = parent->node_top; + ldi->node_parent = parent; + ldi->node_group = NULL; + ldi->next = NULL; + + ldi->cl_first = -1; + ldi->cl_cursor = -1; + + ldi->filename = 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->sort_priority = parent->sort_priority; + ldi->parent_link = FALSE; + ldi->user_defined = parent->user_defined; + ldi->color = parent->color; + ldi->class_desc = getStringCopy(parent->class_desc); + + if (ldi->type == TREE_TYPE_LEVEL_DIR) + { + ldi->imported_from = getStringCopy(parent->imported_from); + + ldi->graphics_set = NULL; + ldi->sounds_set = NULL; + ldi->music_set = NULL; + ldi->graphics_path = getStringCopy(UNDEFINED_FILENAME); + ldi->sounds_path = getStringCopy(UNDEFINED_FILENAME); + ldi->music_path = getStringCopy(UNDEFINED_FILENAME); + + ldi->levels = 0; + ldi->first_level = 0; + ldi->last_level = 0; + ldi->level_group = FALSE; + ldi->handicap_level = 0; + ldi->readonly = TRUE; + } + + +#else + /* first copy all values from the parent structure ... */ *ldi = *parent; @@ -1540,7 +1591,16 @@ static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent) ldi->name = getStringCopy(ANONYMOUS_NAME); ldi->name_sorting = NULL; ldi->author = getStringCopy(parent->author); + ldi->imported_from = getStringCopy(parent->imported_from); + 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; @@ -1549,6 +1609,8 @@ static void setTreeInfoToDefaultsFromParent(TreeInfo *ldi, TreeInfo *parent) ldi->node_parent = parent; ldi->node_group = NULL; ldi->next = NULL; + +#endif } void setSetupInfo(struct TokenInfo *token_info, @@ -2264,6 +2326,18 @@ static void SaveUserLevelInfo() /* always start with reliable default values */ setTreeInfoToDefaults(&ldi, TREE_TYPE_LEVEL_DIR); +#if 0 + /* !!! FIX ME !!! */ + setString(&ldi.name, getLoginName()); + setString(&ldi.author, getRealName()); + ldi.levels = 100; + ldi.first_level = 1; + ldi.sort_priority = LEVELCLASS_USER_START; + ldi.readonly = FALSE; + setString(&ldi.graphics_set, GRAPHICS_SUBDIR); + setString(&ldi.sounds_set, SOUNDS_SUBDIR); + setString(&ldi.music_set, MUSIC_SUBDIR); +#else ldi.name = getStringCopy(getLoginName()); ldi.author = getStringCopy(getRealName()); ldi.levels = 100; @@ -2273,6 +2347,7 @@ static void SaveUserLevelInfo() ldi.graphics_set = getStringCopy(GRAPHICS_SUBDIR); ldi.sounds_set = getStringCopy(SOUNDS_SUBDIR); ldi.music_set = getStringCopy(MUSIC_SUBDIR); +#endif fprintf(file, "%s\n\n", getFormattedSetupEntry(TOKEN_STR_FILE_IDENTIFIER, getCookie("LEVELINFO")));