rnd-20070113-1-src
[rocksndiamonds.git] / src / main.h
index 3c3a40fb5181bd3a297542b5e64c20d6138642c8..2e79faacf4eeae45fecc32e22bfc199f5ae19610 100644 (file)
@@ -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)
 #define EL_SIGN_STOP                   301
 #define EL_SIGN_WHEELCHAIR             302
 #define EL_SIGN_PARKING                        303
-#define EL_SIGN_ONEWAY                 304
-#define EL_SIGN_HEART                  305
-#define EL_SIGN_TRIANGLE               306
-#define EL_SIGN_ROUND                  307
-#define EL_SIGN_EXIT                   308
-#define EL_SIGN_YINYANG                        309
-#define EL_SIGN_OTHER                  310
+#define EL_SIGN_NO_ENTRY               304
+#define EL_SIGN_UNUSED_1               305
+#define EL_SIGN_GIVE_WAY               306
+#define EL_SIGN_ENTRY_FORBIDDEN                307
+#define EL_SIGN_EMERGENCY_EXIT         308
+#define EL_SIGN_YIN_YANG               309
+#define EL_SIGN_UNUSED_2               310
 #define EL_MOLE_LEFT                   311
 #define EL_MOLE_RIGHT                  312
 #define EL_MOLE_UP                     313
 #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 EL_SPERMS                      812
+#define EL_BULLET                      813
+#define EL_HEART                       814
+#define EL_CROSS                       815
+#define EL_FRANKIE                     816
+#define EL_SIGN_SPERMS                 817
+#define EL_SIGN_BULLET                 818
+#define EL_SIGN_HEART                  819
+#define EL_SIGN_CROSS                  820
+#define EL_SIGN_FRANKIE                        821
+
+#define EL_STEEL_EXIT_CLOSED           822
+#define EL_STEEL_EXIT_OPEN             823
+
+#define NUM_FILE_ELEMENTS              824
 
 
 /* "real" (and therefore drawable) runtime elements */
 #define EL_CONVEYOR_BELT_4_RIGHT_ACTIVE         (EL_FIRST_RUNTIME_REAL + 25)
 #define EL_EXIT_OPENING                        (EL_FIRST_RUNTIME_REAL + 26)
 #define EL_EXIT_CLOSING                        (EL_FIRST_RUNTIME_REAL + 27)
-#define EL_SP_EXIT_OPENING             (EL_FIRST_RUNTIME_REAL + 28)
-#define EL_SP_EXIT_CLOSING             (EL_FIRST_RUNTIME_REAL + 29)
-#define EL_SP_EXIT_OPEN                        (EL_FIRST_RUNTIME_REAL + 30)
-#define EL_SP_TERMINAL_ACTIVE          (EL_FIRST_RUNTIME_REAL + 31)
-#define EL_SP_BUGGY_BASE_ACTIVATING    (EL_FIRST_RUNTIME_REAL + 32)
-#define EL_SP_BUGGY_BASE_ACTIVE                (EL_FIRST_RUNTIME_REAL + 33)
-#define EL_SP_MURPHY_CLONE             (EL_FIRST_RUNTIME_REAL + 34)
-#define EL_AMOEBA_DROPPING             (EL_FIRST_RUNTIME_REAL + 35)
-#define EL_QUICKSAND_EMPTYING          (EL_FIRST_RUNTIME_REAL + 36)
-#define EL_MAGIC_WALL_ACTIVE           (EL_FIRST_RUNTIME_REAL + 37)
-#define EL_BD_MAGIC_WALL_ACTIVE                (EL_FIRST_RUNTIME_REAL + 38)
-#define EL_MAGIC_WALL_FULL             (EL_FIRST_RUNTIME_REAL + 39)
-#define EL_BD_MAGIC_WALL_FULL          (EL_FIRST_RUNTIME_REAL + 40)
-#define EL_MAGIC_WALL_EMPTYING         (EL_FIRST_RUNTIME_REAL + 41)
-#define EL_BD_MAGIC_WALL_EMPTYING      (EL_FIRST_RUNTIME_REAL + 42)
-#define EL_MAGIC_WALL_DEAD             (EL_FIRST_RUNTIME_REAL + 43)
-#define EL_BD_MAGIC_WALL_DEAD          (EL_FIRST_RUNTIME_REAL + 44)
-#define EL_EMC_FAKE_GRASS_ACTIVE       (EL_FIRST_RUNTIME_REAL + 45)
-#define EL_GATE_1_GRAY_ACTIVE          (EL_FIRST_RUNTIME_REAL + 46)
-#define EL_GATE_2_GRAY_ACTIVE          (EL_FIRST_RUNTIME_REAL + 47)
-#define EL_GATE_3_GRAY_ACTIVE          (EL_FIRST_RUNTIME_REAL + 48)
-#define EL_GATE_4_GRAY_ACTIVE          (EL_FIRST_RUNTIME_REAL + 49)
-#define EL_EM_GATE_1_GRAY_ACTIVE       (EL_FIRST_RUNTIME_REAL + 50)
-#define EL_EM_GATE_2_GRAY_ACTIVE       (EL_FIRST_RUNTIME_REAL + 51)
-#define EL_EM_GATE_3_GRAY_ACTIVE       (EL_FIRST_RUNTIME_REAL + 52)
-#define EL_EM_GATE_4_GRAY_ACTIVE       (EL_FIRST_RUNTIME_REAL + 53)
-#define EL_EMC_GATE_5_GRAY_ACTIVE      (EL_FIRST_RUNTIME_REAL + 54)
-#define EL_EMC_GATE_6_GRAY_ACTIVE      (EL_FIRST_RUNTIME_REAL + 55)
-#define EL_EMC_GATE_7_GRAY_ACTIVE      (EL_FIRST_RUNTIME_REAL + 56)
-#define EL_EMC_GATE_8_GRAY_ACTIVE      (EL_FIRST_RUNTIME_REAL + 57)
-#define EL_EMC_DRIPPER_ACTIVE          (EL_FIRST_RUNTIME_REAL + 58)
-#define EL_EMC_SPRING_BUMPER_ACTIVE    (EL_FIRST_RUNTIME_REAL + 59)
+#define EL_STEEL_EXIT_OPENING          (EL_FIRST_RUNTIME_REAL + 28)
+#define EL_STEEL_EXIT_CLOSING          (EL_FIRST_RUNTIME_REAL + 29)
+#define EL_SP_EXIT_OPENING             (EL_FIRST_RUNTIME_REAL + 30)
+#define EL_SP_EXIT_CLOSING             (EL_FIRST_RUNTIME_REAL + 31)
+#define EL_SP_EXIT_OPEN                        (EL_FIRST_RUNTIME_REAL + 32)
+#define EL_SP_TERMINAL_ACTIVE          (EL_FIRST_RUNTIME_REAL + 33)
+#define EL_SP_BUGGY_BASE_ACTIVATING    (EL_FIRST_RUNTIME_REAL + 34)
+#define EL_SP_BUGGY_BASE_ACTIVE                (EL_FIRST_RUNTIME_REAL + 35)
+#define EL_SP_MURPHY_CLONE             (EL_FIRST_RUNTIME_REAL + 36)
+#define EL_AMOEBA_DROPPING             (EL_FIRST_RUNTIME_REAL + 37)
+#define EL_QUICKSAND_EMPTYING          (EL_FIRST_RUNTIME_REAL + 38)
+#define EL_MAGIC_WALL_ACTIVE           (EL_FIRST_RUNTIME_REAL + 39)
+#define EL_BD_MAGIC_WALL_ACTIVE                (EL_FIRST_RUNTIME_REAL + 40)
+#define EL_MAGIC_WALL_FULL             (EL_FIRST_RUNTIME_REAL + 41)
+#define EL_BD_MAGIC_WALL_FULL          (EL_FIRST_RUNTIME_REAL + 42)
+#define EL_MAGIC_WALL_EMPTYING         (EL_FIRST_RUNTIME_REAL + 43)
+#define EL_BD_MAGIC_WALL_EMPTYING      (EL_FIRST_RUNTIME_REAL + 44)
+#define EL_MAGIC_WALL_DEAD             (EL_FIRST_RUNTIME_REAL + 45)
+#define EL_BD_MAGIC_WALL_DEAD          (EL_FIRST_RUNTIME_REAL + 46)
+#define EL_EMC_FAKE_GRASS_ACTIVE       (EL_FIRST_RUNTIME_REAL + 47)
+#define EL_GATE_1_GRAY_ACTIVE          (EL_FIRST_RUNTIME_REAL + 48)
+#define EL_GATE_2_GRAY_ACTIVE          (EL_FIRST_RUNTIME_REAL + 49)
+#define EL_GATE_3_GRAY_ACTIVE          (EL_FIRST_RUNTIME_REAL + 50)
+#define EL_GATE_4_GRAY_ACTIVE          (EL_FIRST_RUNTIME_REAL + 51)
+#define EL_EM_GATE_1_GRAY_ACTIVE       (EL_FIRST_RUNTIME_REAL + 52)
+#define EL_EM_GATE_2_GRAY_ACTIVE       (EL_FIRST_RUNTIME_REAL + 53)
+#define EL_EM_GATE_3_GRAY_ACTIVE       (EL_FIRST_RUNTIME_REAL + 54)
+#define EL_EM_GATE_4_GRAY_ACTIVE       (EL_FIRST_RUNTIME_REAL + 55)
+#define EL_EMC_GATE_5_GRAY_ACTIVE      (EL_FIRST_RUNTIME_REAL + 56)
+#define EL_EMC_GATE_6_GRAY_ACTIVE      (EL_FIRST_RUNTIME_REAL + 57)
+#define EL_EMC_GATE_7_GRAY_ACTIVE      (EL_FIRST_RUNTIME_REAL + 58)
+#define EL_EMC_GATE_8_GRAY_ACTIVE      (EL_FIRST_RUNTIME_REAL + 59)
+#define EL_EMC_DRIPPER_ACTIVE          (EL_FIRST_RUNTIME_REAL + 60)
+#define EL_EMC_SPRING_BUMPER_ACTIVE    (EL_FIRST_RUNTIME_REAL + 61)
 
 /* "unreal" (and therefore not drawable) runtime elements */
-#define EL_FIRST_RUNTIME_UNREAL                (EL_FIRST_RUNTIME_REAL + 60)
+#define EL_FIRST_RUNTIME_UNREAL                (EL_FIRST_RUNTIME_REAL + 62)
 
 #define EL_BLOCKED                     (EL_FIRST_RUNTIME_UNREAL + 0)
 #define EL_EXPLOSION                   (EL_FIRST_RUNTIME_UNREAL + 1)
 #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
+#define GFX_SPECIAL_ARG_INFO_TITLE     1
+#define GFX_SPECIAL_ARG_INFO_ELEMENTS  2
+#define GFX_SPECIAL_ARG_INFO_MUSIC     3
+#define GFX_SPECIAL_ARG_INFO_CREDITS   4
+#define GFX_SPECIAL_ARG_INFO_PROGRAM   5
+#define GFX_SPECIAL_ARG_INFO_LEVELSET  6
+
+#define NUM_SPECIAL_GFX_INFO_ARGS      7
 
 
 /* values for image configuration suffixes */
 #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 */
 /* 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"
 #define PROGRAM_COPYRIGHT_STRING       "Copyright ©1995-2006 by Holger Schemel"
 #define PROGRAM_EMAIL_STRING           "info@artsoft.org"
 #define PROGRAM_WEBSITE_STRING         "http://www.artsoft.org/"
+#define PROGRAM_GAME_BY_STRING         "A Game by Artsoft Entertainment"
 
 #define ICON_TITLE_STRING              PROGRAM_TITLE_STRING
 #define COOKIE_PREFIX                  "ROCKSNDIAMONDS"
@@ -1835,42 +1882,52 @@ struct BorderInfo
   int draw_masked[NUM_SPECIAL_GFX_ARGS];
 };
 
+struct MenuPosInfo
+{
+  int x, y;
+  int width, height;
+  int align;
+};
+
 struct MenuMainButtonInfo
 {
-  struct Rect name;
-  struct Rect levels;
-  struct Rect scores;
-  struct Rect editor;
-  struct Rect info;
-  struct Rect game;
-  struct Rect setup;
-  struct Rect quit;
-
-  struct Rect prev_level;
-  struct Rect next_level;
+  struct MenuPosInfo name;
+  struct MenuPosInfo levels;
+  struct MenuPosInfo scores;
+  struct MenuPosInfo editor;
+  struct MenuPosInfo info;
+  struct MenuPosInfo game;
+  struct MenuPosInfo setup;
+  struct MenuPosInfo quit;
+
+  struct MenuPosInfo prev_level;
+  struct MenuPosInfo next_level;
 };
 
 struct MenuMainTextInfo
 {
-  struct Rect name;
-  struct Rect levels;
-  struct Rect scores;
-  struct Rect editor;
-  struct Rect info;
-  struct Rect game;
-  struct Rect setup;
-  struct Rect quit;
-
-  struct Rect current_level;
-  struct Rect first_level;
-  struct Rect last_level;
-  struct Rect levelset_info;
-  struct Rect level_info;
+  struct MenuPosInfo name;
+  struct MenuPosInfo levels;
+  struct MenuPosInfo scores;
+  struct MenuPosInfo editor;
+  struct MenuPosInfo info;
+  struct MenuPosInfo game;
+  struct MenuPosInfo setup;
+  struct MenuPosInfo quit;
+
+  struct MenuPosInfo current_level;
+  struct MenuPosInfo first_level;
+  struct MenuPosInfo last_level;
+  struct MenuPosInfo level_info_1;
+  struct MenuPosInfo level_info_2;
+  struct MenuPosInfo title_1;
+  struct MenuPosInfo title_2;
+  struct MenuPosInfo title_3;
 };
 
 struct MenuMainInputInfo
 {
-  struct Rect name;
+  struct MenuPosInfo name;
 };
 
 struct MenuMainInfo
@@ -1880,10 +1937,23 @@ 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];
   int draw_yoffset[NUM_SPECIAL_GFX_ARGS];
+  int draw_xoffset_info[NUM_SPECIAL_GFX_INFO_ARGS];
+  int draw_yoffset_info[NUM_SPECIAL_GFX_INFO_ARGS];
 
   int scrollbar_xoffset;
 
@@ -1891,6 +1961,7 @@ struct MenuInfo
 
   int fade_delay;
   int post_delay;
+  int auto_delay;
 
   int sound[NUM_SPECIAL_GFX_ARGS];
   int music[NUM_SPECIAL_GFX_ARGS];
@@ -1910,10 +1981,13 @@ struct DoorInfo
 struct PreviewInfo
 {
   int x, y;
+  int align;
   int xsize, ysize;
+  int xoffset, yoffset;
   int tile_size;
   int step_offset;
   int step_delay;
+  int anim_mode;
 };
 
 struct HiScore
@@ -2317,6 +2391,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 */
@@ -2431,6 +2511,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];
@@ -2475,6 +2556,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;