#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
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;
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;
struct MenuMainInputInfo
{
- struct MenuPosInfo name;
+ struct TextPosInfo name;
};
struct MenuMainInfo
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;
struct PreviewInfo
{
int x, y;
- int align;
+ int align, valign;
int xsize, ysize;
int xoffset, yoffset;
int tile_size;
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 */