rnd-20070318-3-src
[rocksndiamonds.git] / src / main.h
index 3137db7999b67044e95c47e4a548742f1c463202..ea9c3345d4a6fc49389aeb17024fd0e3b79cc54a 100644 (file)
 
 #define IS_LOOP_SOUND(s)       (sound_info[s].loop)
 
+#define IS_SPECIAL_GFX_ARG(a)  ((a) >= 0 && (a) < NUM_SPECIAL_GFX_ARGS)
+
 #define EL_CASCADE_ACTIVE(e)   (IS_EDITOR_CASCADE_INACTIVE(e) ? (e) + 1 : (e))
 #define EL_CASCADE_INACTIVE(e) (IS_EDITOR_CASCADE_ACTIVE(e)   ? (e) - 1 : (e))
 #define EL_CASCADE_TOGGLE(e)   (IS_EDITOR_CASCADE_INACTIVE(e) ? (e) + 1 :    \
 
 /* values for special image configuration suffixes (must match game mode) */
 #define GFX_SPECIAL_ARG_DEFAULT                0
-#define GFX_SPECIAL_ARG_TITLE          1
-#define GFX_SPECIAL_ARG_MESSAGE                2
+#define GFX_SPECIAL_ARG_TITLE_INITIAL  1
+#define GFX_SPECIAL_ARG_TITLE          2
 #define GFX_SPECIAL_ARG_MAIN           3
 #define GFX_SPECIAL_ARG_LEVELS         4
 #define GFX_SPECIAL_ARG_SCORES         5
 #define GFX_ARG_POST_DELAY             40
 #define GFX_ARG_AUTO_DELAY             41
 #define GFX_ARG_ALIGN                  42
-#define GFX_ARG_SORT_PRIORITY          43
+#define GFX_ARG_VALIGN                 43
+#define GFX_ARG_SORT_PRIORITY          44
 
-#define NUM_GFX_ARGS                   44
+#define NUM_GFX_ARGS                   45
 
 
 /* values for sound configuration suffixes */
 
 /* values for game_status (must match special image configuration suffixes) */
 #define GAME_MODE_DEFAULT              0
-#define GAME_MODE_TITLE                        1
-#define GAME_MODE_MESSAGE              2
+#define GAME_MODE_TITLE_INITIAL                1
+#define GAME_MODE_TITLE                        2
 #define GAME_MODE_MAIN                 3
 #define GAME_MODE_LEVELS               4
 #define GAME_MODE_SCORES               5
@@ -1990,15 +1993,6 @@ struct BorderInfo
   boolean draw_masked[NUM_SPECIAL_GFX_ARGS];
 };
 
-#if 0
-struct MenuPosInfo
-{
-  int x, y;
-  int width, height;
-  int align;
-};
-#endif
-
 struct MenuMainButtonInfo
 {
   struct MenuPosInfo name;
@@ -2025,11 +2019,17 @@ struct MenuMainTextInfo
   struct TextPosInfo setup;
   struct TextPosInfo quit;
 
-  struct TextPosInfo current_level;
   struct TextPosInfo first_level;
   struct TextPosInfo last_level;
+  struct TextPosInfo level_number;
   struct TextPosInfo level_info_1;
   struct TextPosInfo level_info_2;
+  struct TextPosInfo level_name;
+  struct TextPosInfo level_author;
+  struct TextPosInfo level_year;
+  struct TextPosInfo level_imported_from;
+  struct TextPosInfo level_imported_by;
+  struct TextPosInfo level_tested_by;
   struct TextPosInfo title_1;
   struct TextPosInfo title_2;
   struct TextPosInfo title_3;
@@ -2037,7 +2037,7 @@ struct MenuMainTextInfo
 
 struct MenuMainInputInfo
 {
-  struct MenuPosInfo name;
+  struct TextPosInfo name;
 };
 
 struct MenuMainInfo
@@ -2060,16 +2060,14 @@ struct TitleInfo
 
 struct TitleMessageInfo
 {
-  int x;
-  int y;
-  int width;
-  int height;
-  int chars;
-  int lines;
-  int align;
+  int x, y;
+  int width, height;
+  int chars, lines;
+  int align, valign;
+  int font;
   boolean autowrap;
   boolean centered;
-  boolean skip_comments;
+  boolean parse_comments;
   int sort_priority;
 };
 
@@ -2106,7 +2104,7 @@ struct DoorInfo
 struct PreviewInfo
 {
   int x, y;
-  int align;
+  int align, valign;
   int xsize, ysize;
   int xoffset, yoffset;
   int tile_size;
@@ -2522,7 +2520,7 @@ struct GraphicInfo
   int fade_delay;              /* optional setting for drawing title screens */
   int post_delay;              /* optional setting for drawing title screens */
   int auto_delay;              /* optional setting for drawing title screens */
-  int align;                   /* optional setting for drawing title screens */
+  int align, valign;           /* optional setting for drawing title screens */
   int sort_priority;           /* optional setting for drawing title screens */
 
   boolean use_image_size;      /* use image size as default width and height */
@@ -2687,7 +2685,9 @@ extern struct TapeInfo            tape;
 extern struct GlobalInfo       global;
 extern struct BorderInfo       border;
 extern struct TitleInfo                title;
+extern struct TitleMessageInfo titlemessage_initial_default;
 extern struct TitleMessageInfo titlemessage_initial[];
+extern struct TitleMessageInfo titlemessage_default;
 extern struct TitleMessageInfo titlemessage[];
 extern struct TitleMessageInfo readme;
 extern struct MenuInfo         menu;