rnd-20070316-1-src
[rocksndiamonds.git] / src / main.h
index ade881e0e392d1e4921efcb24c6b632b5189a1b1..29858c32dcef67d2f7b7d42f2ecd0e4efb874158 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_MAIN           3
-#define GFX_SPECIAL_ARG_LEVELS         4
-#define GFX_SPECIAL_ARG_SCORES         5
-#define GFX_SPECIAL_ARG_EDITOR         6
-#define GFX_SPECIAL_ARG_INFO           7
-#define GFX_SPECIAL_ARG_SETUP          8
-#define GFX_SPECIAL_ARG_PLAYING                9
-#define GFX_SPECIAL_ARG_DOOR           10
-#define GFX_SPECIAL_ARG_PREVIEW                11
-#define GFX_SPECIAL_ARG_CRUMBLED       12
-
-#define NUM_SPECIAL_GFX_ARGS           13
+#define GFX_SPECIAL_ARG_TITLE_INITIAL  1
+#define GFX_SPECIAL_ARG_TITLE          2
+#define GFX_SPECIAL_ARG_MESSAGE_INITIAL        3
+#define GFX_SPECIAL_ARG_MESSAGE                4
+#define GFX_SPECIAL_ARG_MAIN           5
+#define GFX_SPECIAL_ARG_LEVELS         6
+#define GFX_SPECIAL_ARG_SCORES         7
+#define GFX_SPECIAL_ARG_EDITOR         8
+#define GFX_SPECIAL_ARG_INFO           9
+#define GFX_SPECIAL_ARG_SETUP          10
+#define GFX_SPECIAL_ARG_PLAYING                11
+#define GFX_SPECIAL_ARG_DOOR           12
+#define GFX_SPECIAL_ARG_PREVIEW                13
+#define GFX_SPECIAL_ARG_CRUMBLED       14
+
+#define NUM_SPECIAL_GFX_ARGS           15
 
 /* these additional definitions are currently only used for draw offsets */
 #define GFX_SPECIAL_ARG_INFO_MAIN      0
 #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_MAIN                 3
-#define GAME_MODE_LEVELS               4
-#define GAME_MODE_SCORES               5
-#define GAME_MODE_EDITOR               6
-#define GAME_MODE_INFO                 7
-#define GAME_MODE_SETUP                        8
-#define GAME_MODE_PLAYING              9
-#define GAME_MODE_PSEUDO_DOOR          10
-#define GAME_MODE_PSEUDO_PREVIEW       11
-#define GAME_MODE_PSEUDO_CRUMBLED      12
+#define GAME_MODE_TITLE_INITIAL                1
+#define GAME_MODE_TITLE                        2
+#define GAME_MODE_MESSAGE_INITIAL      3
+#define GAME_MODE_MESSAGE              4
+#define GAME_MODE_MAIN                 5
+#define GAME_MODE_LEVELS               6
+#define GAME_MODE_SCORES               7
+#define GAME_MODE_EDITOR               8
+#define GAME_MODE_INFO                 9
+#define GAME_MODE_SETUP                        10
+#define GAME_MODE_PLAYING              11
+#define GAME_MODE_PSEUDO_DOOR          12
+#define GAME_MODE_PSEUDO_PREVIEW       13
+#define GAME_MODE_PSEUDO_CRUMBLED      14
 
 /* there are no special config file suffixes for these modes */
-#define GAME_MODE_PSEUDO_TYPENAME      13
-#define GAME_MODE_QUIT                 14
+#define GAME_MODE_PSEUDO_TYPENAME      15
+#define GAME_MODE_QUIT                 16
 
 /* special definitions currently only used for custom artwork configuration */
 #define MUSIC_PREFIX_BACKGROUND                0
@@ -1990,15 +1997,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,9 +2023,9 @@ 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;
@@ -2066,13 +2064,11 @@ 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;
@@ -2112,7 +2108,7 @@ struct DoorInfo
 struct PreviewInfo
 {
   int x, y;
-  int align;
+  int align, valign;
   int xsize, ysize;
   int xoffset, yoffset;
   int tile_size;
@@ -2528,7 +2524,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 */