rnd-19981227-1
[rocksndiamonds.git] / src / main.h
index 47bc20fa879c22e7d2fbe4926bcbb7c3738f5d4c..3c77e192ba7186cd04fbf620ebdfc818871b62c9 100644 (file)
@@ -17,9 +17,9 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <errno.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <errno.h>
 
 #ifndef MSDOS
 #define XK_MISCELLANY
@@ -48,8 +48,8 @@ typedef unsigned char boolean;
 typedef unsigned char byte;
 
 #ifndef FALSE
-#define FALSE 0
-#define TRUE (!FALSE)
+#define FALSE          0
+#define TRUE           (!FALSE)
 #endif
 
 #define WIN_XSIZE      672
@@ -96,32 +96,34 @@ typedef unsigned char byte;
 #define IN_SCR_FIELD(x,y) ((x)>=BX1 && (x)<=BX2 && (y)>=BY1 &&(y)<=BY2)
 #define IN_LEV_FIELD(x,y) ((x)>=0 && (x)<lev_fieldx && (y)>=0 &&(y)<lev_fieldy)
 
-#define EP_BIT_AMOEBALIVE      (1<<0)
-#define EP_BIT_AMOEBOID                (1<<1)
-#define EP_BIT_SCHLUESSEL      (1<<2)
-#define EP_BIT_PFORTE          (1<<3)
-#define EP_BIT_SOLID           (1<<4)
-#define EP_BIT_MASSIV          (1<<5)
-#define EP_BIT_SLIPPERY                (1<<6)
-#define EP_BIT_ENEMY           (1<<7)
-#define EP_BIT_MAUER           (1<<8)
-#define EP_BIT_CAN_FALL                (1<<9)
-#define EP_BIT_CAN_SMASH       (1<<10)
-#define EP_BIT_CAN_CHANGE      (1<<11)
-#define EP_BIT_CAN_MOVE                (1<<12)
-#define EP_BIT_COULD_MOVE      (1<<13)
-#define EP_BIT_DONT_TOUCH      (1<<14)
-#define EP_BIT_DONT_GO_TO      (1<<15)
-#define EP_BIT_MAMPF2          (1<<16)
-#define EP_BIT_CHAR            (1<<17)
-#define EP_BIT_BD_ELEMENT      (1<<18)
-#define EP_BIT_SB_ELEMENT      (1<<19)
-#define EP_BIT_GEM             (1<<20)
-#define EP_BIT_INACTIVE                (1<<21)
-#define EP_BIT_EXPLOSIVE       (1<<22)
-#define EP_BIT_MAMPF3          (1<<23)
-#define EP_BIT_PUSHABLE                (1<<24)
-#define EP_BIT_PLAYER          (1<<25)
+#define EP_BIT_AMOEBALIVE      (1 << 0)
+#define EP_BIT_AMOEBOID                (1 << 1)
+#define EP_BIT_SCHLUESSEL      (1 << 2)
+#define EP_BIT_PFORTE          (1 << 3)
+#define EP_BIT_SOLID           (1 << 4)
+#define EP_BIT_MASSIV          (1 << 5)
+#define EP_BIT_SLIPPERY                (1 << 6)
+#define EP_BIT_ENEMY           (1 << 7)
+#define EP_BIT_MAUER           (1 << 8)
+#define EP_BIT_CAN_FALL                (1 << 9)
+#define EP_BIT_CAN_SMASH       (1 << 10)
+#define EP_BIT_CAN_CHANGE      (1 << 11)
+#define EP_BIT_CAN_MOVE                (1 << 12)
+#define EP_BIT_COULD_MOVE      (1 << 13)
+#define EP_BIT_DONT_TOUCH      (1 << 14)
+#define EP_BIT_DONT_GO_TO      (1 << 15)
+#define EP_BIT_MAMPF2          (1 << 16)
+#define EP_BIT_CHAR            (1 << 17)
+#define EP_BIT_BD_ELEMENT      (1 << 18)
+#define EP_BIT_SB_ELEMENT      (1 << 19)
+#define EP_BIT_GEM             (1 << 20)
+#define EP_BIT_INACTIVE                (1 << 21)
+#define EP_BIT_EXPLOSIVE       (1 << 22)
+#define EP_BIT_MAMPF3          (1 << 23)
+#define EP_BIT_PUSHABLE                (1 << 24)
+#define EP_BIT_PLAYER          (1 << 25)
+#define EP_BIT_HAS_CONTENT     (1 << 26)
+#define EP_BIT_EATABLE         (1 << 27)
 
 #define IS_AMOEBALIVE(e)       (Elementeigenschaften[e] & EP_BIT_AMOEBALIVE)
 #define IS_AMOEBOID(e)         (Elementeigenschaften[e] & EP_BIT_AMOEBOID)
@@ -149,6 +151,8 @@ typedef unsigned char byte;
 #define IS_MAMPF3(e)           (Elementeigenschaften[e] & EP_BIT_MAMPF3)
 #define IS_PUSHABLE(e)         (Elementeigenschaften[e] & EP_BIT_PUSHABLE)
 #define ELEM_IS_PLAYER(e)      (Elementeigenschaften[e] & EP_BIT_PLAYER)
+#define HAS_CONTENT(e)         (Elementeigenschaften[e] & EP_BIT_HAS_CONTENT)
+#define IS_EATABLE(e)          (Elementeigenschaften[e] & EP_BIT_EATABLE)
 
 #define IS_PLAYER(x,y)         (ELEM_IS_PLAYER(StorePlayer[x][y]))
 
@@ -179,15 +183,16 @@ typedef unsigned char byte;
 #define PIX_DOOR               1
 #define PIX_HEROES             2
 #define PIX_TOONS              3
-#define        PIX_BIGFONT             4
-#define PIX_SMALLFONT          5
+#define PIX_MORE               4
+#define        PIX_BIGFONT             5
+#define PIX_SMALLFONT          6
 /* Pixmaps without them */
-#define PIX_DB_BACK            6
-#define PIX_DB_DOOR            7
-#define PIX_DB_FIELD           8
+#define PIX_DB_BACK            7
+#define PIX_DB_DOOR            8
+#define PIX_DB_FIELD           9
 
-#define NUM_PICTURES           6
-#define NUM_PIXMAPS            9
+#define NUM_PICTURES           7
+#define NUM_PIXMAPS            10
 
 /* boundaries of arrays etc. */
 #define MAX_NAMELEN            (10+1)
@@ -204,6 +209,7 @@ typedef unsigned char byte;
 #define GAME_FRAME_DELAY       20      /* frame delay in milliseconds */
 #define FFWD_FRAME_DELAY       10      /* 200% speed for fast forward */
 #define FRAMES_PER_SECOND      (1000 / GAME_FRAME_DELAY)
+#define GADGET_FRAME_DELAY     150     /* delay between gadget actions */
 
 struct HiScore
 {
@@ -300,15 +306,15 @@ struct PlayerInfo
   boolean gone, LevelSolved, GameOver;
   boolean snapped;
 
-  long move_delay;
+  unsigned long move_delay;
   int last_move_dir;
 
-  long push_delay;
-  int push_delay_value;
+  unsigned long push_delay;
+  unsigned long push_delay_value;
 
   int frame_reset_delay;
 
-  long actual_frame_counter;
+  unsigned long actual_frame_counter;
 
   int score;
   int gems_still_needed;
@@ -328,7 +334,7 @@ struct LevelInfo
   int edelsteine;
   char name[MAX_LEVNAMLEN];
   int score[LEVEL_SCORE_ELEMENTS];
-  int mampfer_inhalt[4][3][3];
+  int mampfer_inhalt[8][3][3];
   int tempo_amoebe;
   int dauer_sieb;
   int dauer_ablenk;
@@ -390,6 +396,7 @@ extern char        *joystick_device_name[];
 extern char           *program_name;
 
 extern int             game_status;
+extern boolean         level_editor_test_game;
 extern boolean         network_playing;
 extern int             button_status;
 extern boolean         motion_status;
@@ -430,10 +437,9 @@ extern int         BX1,BY1, BX2,BY2;
 extern int             ZX,ZY, ExitX,ExitY;
 extern int             AllPlayersGone;
 extern int             FrameCounter, TimeFrames, TimeLeft;
-extern int             MampferNr, SiebAktiv;
+extern int             MampferMax, MampferNr, SiebAktiv;
 
 extern boolean         network_player_action_received;
-extern int             TestPlayer;
 
 extern struct LevelDirInfo     leveldir[];
 extern struct LevelInfo                level;
@@ -461,6 +467,8 @@ extern int          num_bg_loops;
 #define DY                     60
 #define VX                     DX
 #define VY                     400
+#define EX                     DX
+#define EY                     (VY - 44)
 #define TILEX                  32
 #define TILEY                  32
 #define MINI_TILEX             (TILEX/2)
@@ -477,6 +485,8 @@ extern int          num_bg_loops;
 #define DYSIZE                 280
 #define VXSIZE                 DXSIZE
 #define VYSIZE                 100
+#define EXSIZE                 DXSIZE
+#define EYSIZE                 (VXSIZE + 44)
 #define FULL_SXSIZE            (2+SXSIZE+2)
 #define FULL_SYSIZE            (2+SYSIZE+2)
 #define MICROLEV_XPOS          (SX+4*32+16)
@@ -503,6 +513,13 @@ extern int         num_bg_loops;
 #define MINI_GFX_PER_LINE      32
 #define MICRO_GFX_PER_LINE     128
 #define HEROES_PER_LINE                16
+#define MINI_MORE_STARTX       0
+#define MINI_MORE_STARTY       160
+#define MICRO_MORE_STARTX      0
+#define MICRO_MORE_STARTY      208
+#define MORE_PER_LINE          8
+#define MINI_MORE_PER_LINE     16
+#define MICRO_MORE_PER_LINE    16
 #define FONT_CHARS_PER_LINE    16
 #define FONT_LINES_PER_FONT    4
 
@@ -676,8 +693,62 @@ extern int         num_bg_loops;
 #define EL_MAUER_Y             201
 #define EL_MAUER_XY            202
 
-#define EL_UNUSED_200          203
-/* ... */
+#define EL_UNUSED_203          203
+#define EL_UNUSED_204          204
+#define EL_UNUSED_205          205
+#define EL_UNUSED_206          206
+#define EL_UNUSED_207          207
+#define EL_UNUSED_208          208
+#define EL_UNUSED_209          209
+
+#define EL_SP_START            210
+#define EL_SP_EMPTY            (EL_SP_START + 0)
+#define EL_SP_ZONK             (EL_SP_START + 1)
+#define EL_SP_BASE             (EL_SP_START + 2)
+#define EL_SP_MURPHY           (EL_SP_START + 3)
+#define EL_SP_INFOTRON         (EL_SP_START + 4)
+#define EL_SP_CHIP_SINGLE      (EL_SP_START + 5)
+#define EL_SP_HARD_GRAY                (EL_SP_START + 6)
+#define EL_SP_EXIT             (EL_SP_START + 7)
+#define EL_SP_DISK_ORANGE      (EL_SP_START + 8)
+#define EL_SP_PORT1_RIGHT      (EL_SP_START + 9)
+#define EL_SP_PORT1_DOWN       (EL_SP_START + 10)
+#define EL_SP_PORT1_LEFT       (EL_SP_START + 11)
+#define EL_SP_PORT1_UP         (EL_SP_START + 12)
+#define EL_SP_PORT2_RIGHT      (EL_SP_START + 13)
+#define EL_SP_PORT2_DOWN       (EL_SP_START + 14)
+#define EL_SP_PORT2_LEFT       (EL_SP_START + 15)
+#define EL_SP_PORT2_UP         (EL_SP_START + 16)
+#define EL_SP_SNIKSNAK         (EL_SP_START + 17)
+#define EL_SP_DISK_YELLOW      (EL_SP_START + 18)
+#define EL_SP_TERMINAL         (EL_SP_START + 19)
+#define EL_SP_DISK_RED         (EL_SP_START + 20)
+#define EL_SP_PORT_Y           (EL_SP_START + 21)
+#define EL_SP_PORT_X           (EL_SP_START + 22)
+#define EL_SP_PORT_XY          (EL_SP_START + 23)
+#define EL_SP_ELECTRON         (EL_SP_START + 24)
+#define EL_SP_BUG              (EL_SP_START + 25)
+#define EL_SP_CHIP_LEFT                (EL_SP_START + 26)
+#define EL_SP_CHIP_RIGHT       (EL_SP_START + 27)
+#define EL_SP_HARD_BASE1       (EL_SP_START + 28)
+#define EL_SP_HARD_GREEN       (EL_SP_START + 29)
+#define EL_SP_HARD_BLUE                (EL_SP_START + 30)
+#define EL_SP_HARD_RED         (EL_SP_START + 31)
+#define EL_SP_HARD_YELLOW      (EL_SP_START + 32)
+#define EL_SP_HARD_BASE2       (EL_SP_START + 33)
+#define EL_SP_HARD_BASE3       (EL_SP_START + 34)
+#define EL_SP_HARD_BASE4       (EL_SP_START + 35)
+#define EL_SP_HARD_BASE5       (EL_SP_START + 36)
+#define EL_SP_HARD_BASE6       (EL_SP_START + 37)
+#define EL_SP_CHIP_UPPER       (EL_SP_START + 38)
+#define EL_SP_CHIP_LOWER       (EL_SP_START + 39)
+#define EL_SP_END              (EL_SP_START + 39)
+
+#define EL_UNUSED_250          250
+#define EL_UNUSED_251          251
+#define EL_UNUSED_252          252
+#define EL_UNUSED_253          253
+#define EL_UNUSED_254          254
 #define EL_UNUSED_255          255
 
 /* "unreal" runtime elements */
@@ -692,13 +763,16 @@ extern int                num_bg_loops;
 #define EL_PLAYER_IS_LEAVING   308
 
 /* game graphics:
-**       0 - 255: graphics from "RocksScreen"
+**       0 - 209: graphics from "RocksScreen"
+**     210 - 255: graphics from "RocksMore"
 **     256 - 511: graphics from "RocksFont"
 **     512 - 767: graphics from "RocksHeroes"
 */
 
 #define GFX_START_ROCKSSCREEN  0
-#define GFX_END_ROCKSSCREEN    255
+#define GFX_END_ROCKSSCREEN    209
+#define GFX_START_ROCKSMORE    210
+#define GFX_END_ROCKSMORE      255
 #define GFX_START_ROCKSFONT    256
 #define GFX_END_ROCKSFONT      511
 #define GFX_START_ROCKSHEROES  512
@@ -862,9 +936,7 @@ extern int          num_bg_loops;
 #define GFX_SCHLUESSEL         GFX_SCHLUESSEL1
 #define GFX_SPIELFIGUR         GFX_SPIELER1
 
-
 /* graphics from "RocksHeroes" */
-
 #define GFX_SPIELER1_DOWN      (GFX_START_ROCKSHEROES + 0*HEROES_PER_LINE + 0)
 #define GFX_SPIELER1_UP                (GFX_START_ROCKSHEROES + 0*HEROES_PER_LINE + 4)
 #define GFX_SPIELER1_LEFT      (GFX_START_ROCKSHEROES + 1*HEROES_PER_LINE + 0)
@@ -918,6 +990,48 @@ extern int         num_bg_loops;
 #define GFX_FLAMMEN_UP         (GFX_START_ROCKSHEROES +14*HEROES_PER_LINE + 8)
 #define GFX_FLAMMEN_DOWN       (GFX_START_ROCKSHEROES +15*HEROES_PER_LINE + 8)
 
+/* graphics from "RocksMore" */
+#define GFX_SP_EMPTY           (GFX_START_ROCKSMORE +  0 * MORE_PRE_LINE + 0)
+#define GFX_SP_ZONK            (GFX_START_ROCKSMORE +  0 * MORE_PRE_LINE + 1)
+#define GFX_SP_BASE            (GFX_START_ROCKSMORE +  0 * MORE_PRE_LINE + 2)
+#define GFX_SP_MURPHY          (GFX_START_ROCKSMORE +  0 * MORE_PRE_LINE + 3)
+#define GFX_SP_INFOTRON                (GFX_START_ROCKSMORE +  0 * MORE_PRE_LINE + 4)
+#define GFX_SP_CHIP_SINGLE     (GFX_START_ROCKSMORE +  0 * MORE_PRE_LINE + 5)
+#define GFX_SP_HARD_GRAY       (GFX_START_ROCKSMORE +  0 * MORE_PRE_LINE + 6)
+#define GFX_SP_EXIT            (GFX_START_ROCKSMORE +  0 * MORE_PRE_LINE + 7)
+#define GFX_SP_DISK_ORANGE     (GFX_START_ROCKSMORE +  1 * MORE_PRE_LINE + 0)
+#define GFX_SP_PORT1_RIGHT     (GFX_START_ROCKSMORE +  1 * MORE_PRE_LINE + 1)
+#define GFX_SP_PORT1_DOWN      (GFX_START_ROCKSMORE +  1 * MORE_PRE_LINE + 2)
+#define GFX_SP_PORT1_LEFT      (GFX_START_ROCKSMORE +  1 * MORE_PRE_LINE + 3)
+#define GFX_SP_PORT1_UP                (GFX_START_ROCKSMORE +  1 * MORE_PRE_LINE + 4)
+#define GFX_SP_PORT2_RIGHT     (GFX_START_ROCKSMORE +  1 * MORE_PRE_LINE + 5)
+#define GFX_SP_PORT2_DOWN      (GFX_START_ROCKSMORE +  1 * MORE_PRE_LINE + 6)
+#define GFX_SP_PORT2_LEFT      (GFX_START_ROCKSMORE +  1 * MORE_PRE_LINE + 7)
+#define GFX_SP_PORT2_UP                (GFX_START_ROCKSMORE +  2 * MORE_PRE_LINE + 0)
+#define GFX_SP_SNIKSNAK                (GFX_START_ROCKSMORE +  2 * MORE_PRE_LINE + 1)
+#define GFX_SP_DISK_YELLOW     (GFX_START_ROCKSMORE +  2 * MORE_PRE_LINE + 2)
+#define GFX_SP_TERMINAL                (GFX_START_ROCKSMORE +  2 * MORE_PRE_LINE + 3)
+#define GFX_SP_DISK_RED                (GFX_START_ROCKSMORE +  2 * MORE_PRE_LINE + 4)
+#define GFX_SP_PORT_Y          (GFX_START_ROCKSMORE +  2 * MORE_PRE_LINE + 5)
+#define GFX_SP_PORT_X          (GFX_START_ROCKSMORE +  2 * MORE_PRE_LINE + 6)
+#define GFX_SP_PORT_XY         (GFX_START_ROCKSMORE +  2 * MORE_PRE_LINE + 7)
+#define GFX_SP_ELECTRON                (GFX_START_ROCKSMORE +  3 * MORE_PRE_LINE + 0)
+#define GFX_SP_BUG             (GFX_START_ROCKSMORE +  3 * MORE_PRE_LINE + 1)
+#define GFX_SP_CHIP_LEFT       (GFX_START_ROCKSMORE +  3 * MORE_PRE_LINE + 2)
+#define GFX_SP_CHIP_RIGHT      (GFX_START_ROCKSMORE +  3 * MORE_PRE_LINE + 3)
+#define GFX_SP_HARD_BASE1      (GFX_START_ROCKSMORE +  3 * MORE_PRE_LINE + 4)
+#define GFX_SP_HARD_GREEN      (GFX_START_ROCKSMORE +  3 * MORE_PRE_LINE + 5)
+#define GFX_SP_HARD_BLUE       (GFX_START_ROCKSMORE +  3 * MORE_PRE_LINE + 6)
+#define GFX_SP_HARD_RED                (GFX_START_ROCKSMORE +  3 * MORE_PRE_LINE + 7)
+#define GFX_SP_HARD_YELLOW     (GFX_START_ROCKSMORE +  4 * MORE_PRE_LINE + 0)
+#define GFX_SP_HARD_BASE2      (GFX_START_ROCKSMORE +  4 * MORE_PRE_LINE + 1)
+#define GFX_SP_HARD_BASE3      (GFX_START_ROCKSMORE +  4 * MORE_PRE_LINE + 2)
+#define GFX_SP_HARD_BASE4      (GFX_START_ROCKSMORE +  4 * MORE_PRE_LINE + 3)
+#define GFX_SP_HARD_BASE5      (GFX_START_ROCKSMORE +  4 * MORE_PRE_LINE + 4)
+#define GFX_SP_HARD_BASE6      (GFX_START_ROCKSMORE +  4 * MORE_PRE_LINE + 5)
+#define GFX_SP_CHIP_UPPER      (GFX_START_ROCKSMORE +  4 * MORE_PRE_LINE + 6)
+#define GFX_SP_CHIP_LOWER      (GFX_START_ROCKSMORE +  4 * MORE_PRE_LINE + 7)
+
 /* graphics from "RocksFont" */
 #define GFX_CHAR_START         (GFX_START_ROCKSFONT)
 #define GFX_CHAR_ASCII0                (GFX_CHAR_START-32)
@@ -1019,10 +1133,10 @@ extern int              num_bg_loops;
 
 /* directions for moving */
 #define MV_NO_MOVING           0
-#define MV_LEFT                        (1<<0)
-#define MV_RIGHT               (1<<1)
-#define MV_UP                  (1<<2)
-#define MV_DOWN                        (1<<3)
+#define MV_LEFT                        (1 << 0)
+#define MV_RIGHT               (1 << 1)
+#define MV_UP                  (1 << 2)
+#define MV_DOWN                        (1 << 3)
 
 /* font types */
 #define FS_SMALL               0
@@ -1036,16 +1150,17 @@ extern int              num_bg_loops;
 #define FC_SPECIAL2            5
 
 /* values for game_status */
-#define MAINMENU               0
-#define PLAYING                        1
-#define LEVELED                        2
-#define HELPSCREEN             3
-#define CHOOSELEVEL            4
-#define TYPENAME               5
-#define HALLOFFAME             6
-#define SETUP                  7
-#define SETUPINPUT             8
-#define EXITGAME               9
+#define EXITGAME               0
+#define MAINMENU               1
+#define PLAYING                        2
+#define LEVELED                        3
+#define HELPSCREEN             4
+#define CHOOSELEVEL            5
+#define TYPENAME               6
+#define HALLOFFAME             7
+#define SETUP                  8
+#define SETUPINPUT             9
+#define CALIBRATION            10
 
 #ifndef GAME_DIR
 #define GAME_DIR               "."
@@ -1059,13 +1174,13 @@ extern int              num_bg_loops;
 #define TAPES_DIRECTORY                "tapes"
 #define SCORES_DIRECTORY       "scores"
 
-#define VERSION_STRING         "1.2 preview 1"
+#define VERSION_STRING         "1.2.0"
 #define GAMETITLE_STRING       "Rocks'n'Diamonds"
 #define WINDOWTITLE_STRING     GAMETITLE_STRING " " VERSION_STRING
 #define COPYRIGHT_STRING       "Copyright ^1995-98 by Holger Schemel"
 
 /* default name for empty highscore entry */
-#define EMPTY_ALIAS            "NO_NAME"
+#define EMPTY_PLAYER_NAME      "no name"
 
 /* values for button_status */
 #define MB_NOT_PRESSED         FALSE
@@ -1084,17 +1199,18 @@ extern int              num_bg_loops;
 #endif
 
 /* values for redraw_mask */
-#define REDRAW_ALL             (1L<<0)
-#define REDRAW_FIELD           (1L<<1)
-#define REDRAW_TILES           (1L<<2)
-#define REDRAW_DOOR_1          (1L<<3)
-#define REDRAW_VIDEO_1         (1L<<4)
-#define REDRAW_VIDEO_2         (1L<<5)
-#define REDRAW_VIDEO_3         (1L<<6)
-#define REDRAW_MICROLEV                (1L<<7)
-#define REDRAW_FROM_BACKBUFFER (1L<<8)
+#define REDRAW_ALL             (1L << 0)
+#define REDRAW_FIELD           (1L << 1)
+#define REDRAW_TILES           (1L << 2)
+#define REDRAW_DOOR_1          (1L << 3)
+#define REDRAW_VIDEO_1         (1L << 4)
+#define REDRAW_VIDEO_2         (1L << 5)
+#define REDRAW_VIDEO_3         (1L << 6)
+#define REDRAW_MICROLEV                (1L << 7)
+#define REDRAW_FROM_BACKBUFFER (1L << 8)
 #define REDRAW_DOOR_2  (REDRAW_VIDEO_1 | REDRAW_VIDEO_2 | REDRAW_VIDEO_3)
-#define REDRAW_DOORS   (REDRAW_DOOR_1 | REDRAW_DOOR_2)
+#define REDRAW_DOOR_3          (1L << 9)
+#define REDRAW_DOORS   (REDRAW_DOOR_1 | REDRAW_DOOR_2 | REDRAW_DOOR_3)
 #define REDRAW_MAIN    (REDRAW_FIELD | REDRAW_TILES | REDRAW_MICROLEV)
 #define REDRAWTILES_THRESHOLD  SCR_FIELDX*SCR_FIELDY/2
 
@@ -1112,6 +1228,8 @@ extern int                num_bg_loops;
 #define DOOR_GFX_PAGEX4                (3 * DOOR_GFX_PAGESIZE)
 #define DOOR_GFX_PAGEX5                (4 * DOOR_GFX_PAGESIZE)
 #define DOOR_GFX_PAGEX6                (5 * DOOR_GFX_PAGESIZE)
+#define DOOR_GFX_PAGEX7                (6 * DOOR_GFX_PAGESIZE)
+#define DOOR_GFX_PAGEX8                (7 * DOOR_GFX_PAGESIZE)
 #define DOOR_GFX_PAGEY1                0
 #define DOOR_GFX_PAGEY2                DYSIZE