X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=461983324ba2ff78873f0d0a4e9343acb9c35dcc;hb=e300f91a9ee9f6160aff68d3bc50a21b797d9941;hp=c77317238fbba2d8905978f5fc872105acf524ac;hpb=ca40038f7fbffd28bd6a106715a573d2029b5a04;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index c7731723..46198332 100644 --- a/src/main.h +++ b/src/main.h @@ -34,6 +34,7 @@ #define IMG_SP_EMPTY IMG_SP_EMPTY_SPACE #define IMG_EXPLOSION IMG_DEFAULT_EXPLODING #define IMG_CHAR_START IMG_CHAR_SPACE +#define IMG_STEELCHAR_START IMG_STEELCHAR_SPACE #define IMG_CUSTOM_START IMG_CUSTOM_1 #define SND_UNDEFINED (-1) @@ -1322,7 +1323,18 @@ #define EL_NEXT_CE_8 730 #define EL_ANY_ELEMENT 731 -#define NUM_FILE_ELEMENTS 732 +#define EL_STEELCHAR_START 732 +#define EL_STEELCHAR_ASCII0 (EL_STEELCHAR_START - 32) +#define EL_STEELCHAR_ASCII0_START (EL_STEELCHAR_ASCII0 + 32) + +/* (auto-generated data structure definitions included with normal chars) */ + +#define EL_STEELCHAR_ASCII0_END (EL_STEELCHAR_ASCII0 + 111) +#define EL_STEELCHAR_END (EL_STEELCHAR_START + 79) + +#define EL_STEELCHAR(c) (EL_STEELCHAR_ASCII0 +MAP_FONT_ASCII(c)) + +#define NUM_FILE_ELEMENTS 812 /* "real" (and therefore drawable) runtime elements */ @@ -1471,23 +1483,25 @@ #define EL_INTERNAL_CASCADE_DX_ACTIVE (EL_FIRST_INTERNAL + 19) #define EL_INTERNAL_CASCADE_CHARS (EL_FIRST_INTERNAL + 20) #define EL_INTERNAL_CASCADE_CHARS_ACTIVE (EL_FIRST_INTERNAL + 21) -#define EL_INTERNAL_CASCADE_CE (EL_FIRST_INTERNAL + 22) -#define EL_INTERNAL_CASCADE_CE_ACTIVE (EL_FIRST_INTERNAL + 23) -#define EL_INTERNAL_CASCADE_GE (EL_FIRST_INTERNAL + 24) -#define EL_INTERNAL_CASCADE_GE_ACTIVE (EL_FIRST_INTERNAL + 25) -#define EL_INTERNAL_CASCADE_REF (EL_FIRST_INTERNAL + 26) -#define EL_INTERNAL_CASCADE_REF_ACTIVE (EL_FIRST_INTERNAL + 27) -#define EL_INTERNAL_CASCADE_USER (EL_FIRST_INTERNAL + 28) -#define EL_INTERNAL_CASCADE_USER_ACTIVE (EL_FIRST_INTERNAL + 29) -#define EL_INTERNAL_CASCADE_DYNAMIC (EL_FIRST_INTERNAL + 30) -#define EL_INTERNAL_CASCADE_DYNAMIC_ACTIVE (EL_FIRST_INTERNAL + 31) +#define EL_INTERNAL_CASCADE_STEELCHARS (EL_FIRST_INTERNAL + 22) +#define EL_INTERNAL_CASCADE_STEELCHARS_ACTIVE (EL_FIRST_INTERNAL + 23) +#define EL_INTERNAL_CASCADE_CE (EL_FIRST_INTERNAL + 24) +#define EL_INTERNAL_CASCADE_CE_ACTIVE (EL_FIRST_INTERNAL + 25) +#define EL_INTERNAL_CASCADE_GE (EL_FIRST_INTERNAL + 26) +#define EL_INTERNAL_CASCADE_GE_ACTIVE (EL_FIRST_INTERNAL + 27) +#define EL_INTERNAL_CASCADE_REF (EL_FIRST_INTERNAL + 28) +#define EL_INTERNAL_CASCADE_REF_ACTIVE (EL_FIRST_INTERNAL + 29) +#define EL_INTERNAL_CASCADE_USER (EL_FIRST_INTERNAL + 30) +#define EL_INTERNAL_CASCADE_USER_ACTIVE (EL_FIRST_INTERNAL + 31) +#define EL_INTERNAL_CASCADE_DYNAMIC (EL_FIRST_INTERNAL + 32) +#define EL_INTERNAL_CASCADE_DYNAMIC_ACTIVE (EL_FIRST_INTERNAL + 33) #define EL_INTERNAL_CLIPBOARD_START (EL_FIRST_INTERNAL + 0) #define EL_INTERNAL_CLIPBOARD_END (EL_FIRST_INTERNAL + 2) #define EL_INTERNAL_START (EL_FIRST_INTERNAL + 0) -#define EL_INTERNAL_END (EL_FIRST_INTERNAL + 31) +#define EL_INTERNAL_END (EL_FIRST_INTERNAL + 33) -#define MAX_NUM_ELEMENTS (EL_FIRST_INTERNAL + 32) +#define MAX_NUM_ELEMENTS (EL_FIRST_INTERNAL + 34) /* values for graphics/sounds action types */ @@ -1586,18 +1600,19 @@ /* 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_MAIN 2 -#define GFX_SPECIAL_ARG_LEVELS 3 -#define GFX_SPECIAL_ARG_SCORES 4 -#define GFX_SPECIAL_ARG_EDITOR 5 -#define GFX_SPECIAL_ARG_INFO 6 -#define GFX_SPECIAL_ARG_SETUP 7 -#define GFX_SPECIAL_ARG_PLAYING 8 -#define GFX_SPECIAL_ARG_DOOR 9 -#define GFX_SPECIAL_ARG_PREVIEW 10 -#define GFX_SPECIAL_ARG_CRUMBLED 11 - -#define NUM_SPECIAL_GFX_ARGS 12 +#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 /* these additional definitions are currently only used for draw offsets */ #define GFX_SPECIAL_ARG_INFO_MAIN 0 @@ -1651,8 +1666,11 @@ #define GFX_ARG_NAME 36 #define GFX_ARG_SCALE_UP_FACTOR 37 #define GFX_ARG_CLONE_FROM 38 +#define GFX_ARG_FADE_DELAY 39 +#define GFX_ARG_POST_DELAY 40 +#define GFX_ARG_AUTO_DELAY 41 -#define NUM_GFX_ARGS 39 +#define NUM_GFX_ARGS 42 /* values for sound configuration suffixes */ @@ -1725,20 +1743,21 @@ /* values for game_status (must match special image configuration suffixes) */ #define GAME_MODE_DEFAULT 0 #define GAME_MODE_TITLE 1 -#define GAME_MODE_MAIN 2 -#define GAME_MODE_LEVELS 3 -#define GAME_MODE_SCORES 4 -#define GAME_MODE_EDITOR 5 -#define GAME_MODE_INFO 6 -#define GAME_MODE_SETUP 7 -#define GAME_MODE_PLAYING 8 -#define GAME_MODE_PSEUDO_DOOR 9 -#define GAME_MODE_PSEUDO_PREVIEW 10 -#define GAME_MODE_PSEUDO_CRUMBLED 11 +#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 /* there are no special config file suffixes for these modes */ -#define GAME_MODE_PSEUDO_TYPENAME 12 -#define GAME_MODE_QUIT 13 +#define GAME_MODE_PSEUDO_TYPENAME 13 +#define GAME_MODE_QUIT 14 /* special definitions currently only used for custom artwork configuration */ #define MUSIC_PREFIX_BACKGROUND 0 @@ -1753,7 +1772,7 @@ /* program information and versioning definitions */ #define PROGRAM_VERSION_MAJOR 3 #define PROGRAM_VERSION_MINOR 2 -#define PROGRAM_VERSION_PATCH 3 +#define PROGRAM_VERSION_PATCH 4 #define PROGRAM_VERSION_BUILD 0 #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" @@ -1902,6 +1921,17 @@ struct MenuMainInfo struct MenuMainInputInfo input; }; +struct TitleInfo +{ + int fade_delay; + int post_delay; + int auto_delay; + + int fade_delay_final; + int post_delay_final; + int auto_delay_final; +}; + struct MenuInfo { int draw_xoffset[NUM_SPECIAL_GFX_ARGS]; @@ -2345,6 +2375,12 @@ struct GraphicInfo int draw_masked; /* optional setting for drawing envelope gfx */ + 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 */ + + boolean use_image_size; /* use image size as default width and height */ + #if defined(TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND) Pixmap clip_mask; /* single-graphic-only clip mask for X11 */ GC clip_gc; /* single-graphic-only clip gc for X11 */ @@ -2459,6 +2495,7 @@ extern short ChangeEvent[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short WasJustMoving[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short WasJustFalling[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short CheckCollision[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short CheckImpact[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short AmoebaCnt[MAX_NUM_AMOEBA]; extern short AmoebaCnt2[MAX_NUM_AMOEBA]; @@ -2503,6 +2540,7 @@ extern struct HiScore highscore[]; extern struct TapeInfo tape; extern struct GlobalInfo global; extern struct BorderInfo border; +extern struct TitleInfo title; extern struct MenuInfo menu; extern struct DoorInfo door_1, door_2; extern struct PreviewInfo preview;