#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)
#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 */
#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 */
/* 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
/* 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
/* 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"
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];