added support for setup menu as top tree node
[rocksndiamonds.git] / src / libgame / system.h
index ce239f1d3a5c2ead14c370d2c3edd8546ed3b462..f5b2967e5ffc5345b042c15a29fe5ac7e713422c 100644 (file)
                                         JOY_BUTTON_2 :                  \
                                         JOY_NO_ACTION)
 
+// maximum number of level sets in the level set history
+#define MAX_LEVELDIR_HISTORY   12
+
 // default name for empty highscore entry
 #define EMPTY_PLAYER_NAME      "no name"
 
 #define INFOTEXT_LEVEL_NR      "Levels"
 #define INFOTEXT_PLAYER_NAME   "Players & Teams"
 
+#define BACKLINK_TEXT_MAIN     ".. (main menu)"
+#define BACKLINK_TEXT_SETUP    ".. (setup menu)"
+#define BACKLINK_TEXT_PARENT   ".. (parent directory)"
+
 #define TREE_INFOTEXT(t)       ((t) == TREE_TYPE_PLAYER_NAME ?         \
                                 INFOTEXT_PLAYER_NAME :                 \
                                 (t) == TREE_TYPE_LEVEL_NR ?            \
                                 INFOTEXT_MUSIC_DIR :                   \
                                 INFOTEXT_UNDEFINED)
 
+#define TREE_BACKLINK_TEXT(t)  ((t) == TREE_TYPE_LEVEL_DIR ?           \
+                                BACKLINK_TEXT_MAIN :                   \
+                                BACKLINK_TEXT_SETUP)
+
 #define TREE_USERDIR(t)                ((t) == TREE_TYPE_LEVEL_DIR ?           \
                                 getUserLevelDir(NULL) :                \
                                 (t) == TREE_TYPE_GRAPHICS_DIR ?        \
@@ -1284,6 +1295,8 @@ struct SetupEditorInfo
 
   boolean show_element_token;
 
+  boolean show_read_only_warning;
+
   boolean use_template_for_new_levels;
 };
 
@@ -1292,6 +1305,11 @@ struct SetupAutoSetupInfo
   int editor_zoom_tilesize;
 };
 
+struct SetupLevelSetupInfo
+{
+  char *last_level_series[MAX_LEVELDIR_HISTORY + 1];
+};
+
 struct SetupEditorCascadeInfo
 {
   boolean el_bd;
@@ -1425,7 +1443,8 @@ struct SetupInfo
   boolean skip_levels;
   boolean increment_levels;
   boolean auto_play_next_level;
-  boolean skip_scores_after_game;
+  boolean count_score_after_game;
+  boolean show_scores_after_game;
   boolean time_limit;
   boolean fullscreen;
   int window_scaling_percent;
@@ -1462,6 +1481,8 @@ struct SetupInfo
   char *network_server_hostname;
 
   struct SetupAutoSetupInfo auto_setup;
+  struct SetupLevelSetupInfo level_setup;
+
   struct SetupEditorInfo editor;
   struct SetupEditorCascadeInfo editor_cascade;
   struct SetupShortcutInfo shortcut;