- if (leveldir[current_entry].name_short == NULL)
- leveldir[current_entry].name_short =
- getStringCopy(leveldir[current_entry].name);
-
- if (leveldir[current_entry].name_sorting == NULL)
- leveldir[current_entry].name_sorting =
- getStringCopy(leveldir[current_entry].name);
-
- leveldir[current_entry].filename = getStringCopy(dir_entry->d_name);
- leveldir[current_entry].last_level =
- leveldir[current_entry].first_level +
- leveldir[current_entry].levels - 1;
- leveldir[current_entry].user_defined =
- (level_directory == options.level_directory ? FALSE : TRUE);
- leveldir[current_entry].color = LEVELCOLOR(&leveldir[current_entry]);
- leveldir[current_entry].class_desc =
- getLevelClassDescription(&leveldir[current_entry]);
-#if 0
- leveldir[current_entry].handicap_level =
- leveldir[current_entry].first_level; /* default value */
-#else
- leveldir[current_entry].handicap_level =
- (leveldir[current_entry].user_defined ?
- leveldir[current_entry].last_level :
- leveldir[current_entry].first_level);
-#endif
+ if (leveldir_new->name_short == NULL)
+ leveldir_new->name_short = getStringCopy(leveldir_new->name);
+
+ if (leveldir_new->name_sorting == NULL)
+ leveldir_new->name_sorting = getStringCopy(leveldir_new->name);
+
+ leveldir_new->filename = getStringCopy(directory_name);
+
+ if (node_parent == NULL) /* top level group */
+ {
+ leveldir_new->basepath = level_directory;
+ leveldir_new->fullpath = leveldir_new->filename;
+ }
+ else /* sub level group */
+ {
+ leveldir_new->basepath = node_parent->basepath;
+ leveldir_new->fullpath = getPath2(node_parent->fullpath,
+ directory_name);
+ }
+
+ if (leveldir_new->levels < 1)
+ leveldir_new->levels = 1;
+
+ leveldir_new->last_level =
+ leveldir_new->first_level + leveldir_new->levels - 1;
+
+ leveldir_new->user_defined =
+ (leveldir_new->basepath == options.level_directory ? FALSE : TRUE);
+
+ leveldir_new->color = LEVELCOLOR(leveldir_new);
+ leveldir_new->class_desc = getLevelClassDescription(leveldir_new);
+
+ leveldir_new->handicap_level = /* set handicap to default value */
+ (leveldir_new->user_defined ?
+ leveldir_new->last_level :
+ leveldir_new->first_level);
+
+ pushLevelDirInfo(node_first, leveldir_new);