+ Key left;
+ Key right;
+ Key up;
+ Key down;
+ Key snap;
+ Key bomb;
+};
+
+struct SetupInputInfo
+{
+ boolean use_joystick;
+ struct SetupJoystickInfo joy;
+ struct SetupKeyboardInfo key;
+};
+
+struct SetupShortcutInfo
+{
+ Key save_game;
+ Key load_game;
+};
+
+struct SetupInfo
+{
+ char *player_name;
+
+ boolean sound;
+ boolean sound_loops;
+ boolean sound_music;
+ boolean sound_simple;
+ boolean toons;
+ boolean double_buffering;
+ boolean direct_draw; /* !double_buffering (redundant!) */
+ boolean scroll_delay;
+ boolean soft_scrolling;
+ boolean fading;
+ boolean autorecord;
+ boolean quick_doors;
+ boolean team_mode;
+ boolean handicap;
+ boolean time_limit;
+ boolean fullscreen;
+ boolean ask_on_escape;
+
+ struct SetupShortcutInfo shortcut;
+ struct SetupInputInfo input[MAX_PLAYERS];
+};
+
+#define TREE_TYPE_GENERIC 0
+#define TREE_TYPE_LEVEL_DIR 1
+#define TREE_TYPE_GRAPHICS_DIR 2
+#define TREE_TYPE_SOUNDS_DIR 3
+#define TREE_TYPE_MUSIC_DIR 4
+
+struct TreeInfo
+{
+ struct TreeInfo **node_top; /* topmost node in tree */
+ struct TreeInfo *node_parent; /* parent level directory info */
+ struct TreeInfo *node_group; /* level group sub-directory info */
+ struct TreeInfo *next; /* next level series structure node */
+
+ int cl_first; /* internal control field for setup screen */
+ int cl_cursor; /* internal control field for setup screen */
+
+ int type; /* type of tree content */
+
+ /* fields for "type == TREE_TYPE_LEVEL_DIR" */
+