+#define TREE_SORTING_DIR(ti) \
+ (((ti)->parent_link ? 0 : \
+ (ti)->in_user_dir ? 4 * 200 : \
+ (ti)->sort_priority >= LEVELCLASS_CLASSICS_START ? 3 * 200 + \
+ (ti)->sort_priority % 100 : \
+ (ti)->sort_priority >= LEVELCLASS_TUTORIAL_START ? 2 * 200 + \
+ (ti)->sort_priority % 100 : \
+ 1 * 200) + \
+ ((ti)->level_group ? 0 : 100))
+
+#define TREE_COLOR_DIR(ti, active) \
+ ((active) ? FC_YELLOW : \
+ TREE_SORTING(ti) / 200 == 4 ? FC_GREEN : \
+ TREE_SORTING(ti) / 200 == 2 ? FC_BLUE : \
+ FC_RED)
+
+#define TREE_SORTING(ti) \
+ (TREE_TYPE_IS_DIR((ti)->type) ? TREE_SORTING_DIR(ti) : \
+ (ti)->sort_priority)
+
+#define TREE_COLOR(ti, active) \
+ (TREE_TYPE_IS_DIR((ti)->type) ? TREE_COLOR_DIR(ti, active) : \
+ (ti)->color)
+
+
+char *getUserGraphicsDir(void);
+char *getUserSoundsDir(void);
+char *getUserMusicDir(void);