rnd-20020920-1-src
[rocksndiamonds.git] / src / main.h
index 7d92afb41a1078f9d2de23aa2e454abcb67d83ee..4eb80b97a0362f37026d83b9e62cbdf1086fecdd 100644 (file)
 /***********************************************************
-*  Rocks'n'Diamonds -- McDuffin Strikes Back!              *
+* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
 *----------------------------------------------------------*
-*  ©1995 Artsoft Development                               *
-*        Holger Schemel                                    *
-*        33659 Bielefeld-Senne                             *
-*        Telefon: (0521) 493245                            *
-*        eMail: aeglos@valinor.owl.de                      *
-*               aeglos@uni-paderborn.de                    *
-*               q99492@pbhrzx.uni-paderborn.de             *
+* (c) 1995-2002 Artsoft Entertainment                      *
+*               Holger Schemel                             *
+*               Detmolder Strasse 189                      *
+*               33604 Bielefeld                            *
+*               Germany                                    *
+*               e-mail: info@artsoft.org                   *
 *----------------------------------------------------------*
-*  main.h                                                  *
+* main.h                                                   *
 ***********************************************************/
 
 #ifndef MAIN_H
 #define MAIN_H
 
-#define XK_MISCELLANY
-#define XK_LATIN1
-
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/Xos.h>
-#include <X11/Intrinsic.h>
-#include <X11/keysymdef.h>
-
-#ifdef   XPM_INCLUDE_FILE
-#include XPM_INCLUDE_FILE
-#else
-#include "YOU HAVE TO SET 'XPM_INCLUDE_FILE' IN THE 'Makefile'!!!"
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <time.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/stat.h>
 #include <errno.h>
+#include <unistd.h>
+#include <fcntl.h>
 
-typedef int BOOL;
-
-#define TRUE           1
-#define FALSE          0
+#include "libgame/libgame.h"
 
-#define WIN_XPOS       0
-#define WIN_YPOS       0
 #define WIN_XSIZE      672
 #define WIN_YSIZE      560
+
 #define SCR_FIELDX     17
 #define SCR_FIELDY     17
-
-#define MIN_LEV_FIELDX (SCR_FIELDX-2)
-#define MIN_LEV_FIELDY (SCR_FIELDY-2)
+#define MAX_BUF_XSIZE  (SCR_FIELDX + 2)
+#define MAX_BUF_YSIZE  (SCR_FIELDY + 2)
+#define MIN_LEV_FIELDX 3
+#define MIN_LEV_FIELDY 3
 #define STD_LEV_FIELDX 64
 #define STD_LEV_FIELDY 32
 #define MAX_LEV_FIELDX 128
 #define MAX_LEV_FIELDY 128
 
-#define MIN(a,b)       ((a)<(b) ? (a) : (b))
-#define MAX(a,b)       ((a)>(b) ? (a) : (b))
-#define ABS(a)         ((a)<0 ? -(a) : (a))
-#define SIGN(a)                ((a)<0 ? -1 : ((a)>0 ? 1 : 0))
-#define SCROLLX(a)     ((a)-scroll_x)
-#define SCROLLY(a)     ((a)-scroll_y)
-#define UNSCROLLX(a)   ((a)+scroll_x)
-#define UNSCROLLY(a)   ((a)+scroll_y)
-#define IN_SCR_FIELD(x,y) ((x)>=0 && (x)<SCR_FIELDX && (y)>=0 &&(y)<SCR_FIELDY)
+#define SCREENX(a)     ((a) - scroll_x)
+#define SCREENY(a)     ((a) - scroll_y)
+#define LEVELX(a)      ((a) + scroll_x)
+#define LEVELY(a)      ((a) + scroll_y)
+#define IN_VIS_FIELD(x,y) ((x)>=0 && (x)<SCR_FIELDX && (y)>=0 &&(y)<SCR_FIELDY)
+#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 PLAYER(x,y)    (JX==(x) && JY==(y))
-#define IS_FREE(x,y)   (Feld[x][y]==EL_LEERRAUM && !PLAYER(x,y))
-#define IS_MOVING(x,y) (MovPos[x][y]!=0)
-#define IS_BLOCKED(x,y)        (Feld[x][y]==EL_BLOCKED)
-
-#define EP_BIT_AMOEBALIVE      (1<<0)
-#define EP_BIT_AMOEBOID                (1<<1)
-#define EP_BIT_BADEWANNOID     (1<<2)
-#define EP_BIT_SCHLUESSEL      (1<<3)
-#define EP_BIT_PFORTE          (1<<4)
-#define EP_BIT_SOLID           (1<<5)
-#define EP_BIT_MASSIV          (1<<6)
-#define EP_BIT_SLIPPERY                (1<<7)
-#define EP_BIT_ENEMY           (1<<8)
-#define EP_BIT_MAUER           (1<<9)
-#define EP_BIT_CAN_FALL                (1<<10)
-#define EP_BIT_CAN_SMASH       (1<<11)
-#define EP_BIT_CAN_CHANGE      (1<<12)
-#define EP_BIT_CAN_MOVE                (1<<13)
-#define EP_BIT_COULD_MOVE      (1<<14)
-#define EP_BIT_DONT_TOUCH      (1<<15)
-#define EP_BIT_DONT_GO_TO      (1<<16)
-#define EP_BIT_MAMPF2          (1<<17)
-#define EP_BIT_CHAR            (1<<18)
-
-#define IS_AMOEBALIVE(e)       (Elementeigenschaften[e] & EP_BIT_AMOEBALIVE)
-#define IS_AMOEBOID(e)         (Elementeigenschaften[e] & EP_BIT_AMOEBOID)
-#define IS_BADEWANNOID(e)      (Elementeigenschaften[e] & EP_BIT_BADEWANNOID)
-#define IS_SCHLUESSEL(e)       (Elementeigenschaften[e] & EP_BIT_SCHLUESSEL)
-#define IS_PFORTE(e)           (Elementeigenschaften[e] & EP_BIT_PFORTE)
-#define IS_SOLID(e)            (Elementeigenschaften[e] & EP_BIT_SOLID)
-#define IS_MASSIV(e)           (Elementeigenschaften[e] & EP_BIT_MASSIV)
-#define IS_SLIPPERY(e)         (Elementeigenschaften[e] & EP_BIT_SLIPPERY)
-#define IS_ENEMY(e)            (Elementeigenschaften[e] & EP_BIT_ENEMY)
-#define IS_MAUER(e)            (Elementeigenschaften[e] & EP_BIT_MAUER)
-#define CAN_FALL(e)            (Elementeigenschaften[e] & EP_BIT_CAN_FALL)
-#define CAN_SMASH(e)           (Elementeigenschaften[e] & EP_BIT_CAN_SMASH)
-#define CAN_CHANGE(e)          (Elementeigenschaften[e] & EP_BIT_CAN_CHANGE)
-#define CAN_MOVE(e)            (Elementeigenschaften[e] & EP_BIT_CAN_MOVE)
-#define COULD_MOVE(e)          (Elementeigenschaften[e] & EP_BIT_COULD_MOVE)
-#define DONT_TOUCH(e)          (Elementeigenschaften[e] & EP_BIT_DONT_TOUCH)
-#define DONT_GO_TO(e)          (Elementeigenschaften[e] & EP_BIT_DONT_GO_TO)
-#define IS_MAMPF2(e)           (Elementeigenschaften[e] & EP_BIT_MAMPF2)
-#define IS_CHAR(e)             (Elementeigenschaften[e] & EP_BIT_CHAR)
-
-#define EL_CHANGED(e)          ((e)==EL_FELSBROCKEN ? EL_EDELSTEIN :   \
-                                (e)==EL_EDELSTEIN   ? EL_DIAMANT :     \
-                                (e)==EL_EDELSTEIN2   ? EL_DIAMANT :    \
-                                (e)==EL_EDELSTEIN3   ? EL_DIAMANT :    \
-                                EL_FELSBROCKEN)
-#define EL_CHANGED2(e)         ((e)==EL_FELSBROCKEN ? EL_EDELSTEIN2 :  \
+
+/* values for 'Elementeigenschaften1' */
+#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_MASSIVE         (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 EP_BIT_SP_ELEMENT      (1 << 28)
+#define EP_BIT_QUICK_GATE      (1 << 29)
+#define EP_BIT_OVER_PLAYER     (1 << 30)
+#define EP_BIT_ACTIVE_BOMB     (1 << 31)
+
+/* values for 'Elementeigenschaften2' */
+#define EP_BIT_BELT            (1 << 0)
+#define EP_BIT_BELT_SWITCH     (1 << 1)
+#define EP_BIT_TUBE            (1 << 2)
+#define EP_BIT_EM_SLIPPERY_WALL        (1 << 3)
+
+#define IS_AMOEBALIVE(e)       (Elementeigenschaften1[e] & EP_BIT_AMOEBALIVE)
+#define IS_AMOEBOID(e)         (Elementeigenschaften1[e] & EP_BIT_AMOEBOID)
+#define IS_SCHLUESSEL(e)       (Elementeigenschaften1[e] & EP_BIT_SCHLUESSEL)
+#define IS_PFORTE(e)           (Elementeigenschaften1[e] & EP_BIT_PFORTE)
+#define IS_SOLID(e)            (Elementeigenschaften1[e] & EP_BIT_SOLID)
+#define IS_MASSIVE(e)          (Elementeigenschaften1[e] & EP_BIT_MASSIVE)
+#define IS_SLIPPERY(e)         (Elementeigenschaften1[e] & EP_BIT_SLIPPERY)
+#define IS_ENEMY(e)            (Elementeigenschaften1[e] & EP_BIT_ENEMY)
+#define IS_MAUER(e)            (Elementeigenschaften1[e] & EP_BIT_MAUER)
+#define CAN_FALL(e)            (Elementeigenschaften1[e] & EP_BIT_CAN_FALL)
+#define CAN_SMASH(e)           (Elementeigenschaften1[e] & EP_BIT_CAN_SMASH)
+#define CAN_CHANGE(e)          (Elementeigenschaften1[e] & EP_BIT_CAN_CHANGE)
+#define CAN_MOVE(e)            (Elementeigenschaften1[e] & EP_BIT_CAN_MOVE)
+#define COULD_MOVE(e)          (Elementeigenschaften1[e] & EP_BIT_COULD_MOVE)
+#define DONT_TOUCH(e)          (Elementeigenschaften1[e] & EP_BIT_DONT_TOUCH)
+#define DONT_GO_TO(e)          (Elementeigenschaften1[e] & EP_BIT_DONT_GO_TO)
+#define IS_MAMPF2(e)           (Elementeigenschaften1[e] & EP_BIT_MAMPF2)
+#define IS_CHAR(e)             (Elementeigenschaften1[e] & EP_BIT_CHAR)
+#define IS_BD_ELEMENT(e)       (Elementeigenschaften1[e] & EP_BIT_BD_ELEMENT)
+#define IS_SB_ELEMENT(e)       (Elementeigenschaften1[e] & EP_BIT_SB_ELEMENT)
+#define IS_GEM(e)              (Elementeigenschaften1[e] & EP_BIT_GEM)
+#define IS_INACTIVE(e)         (Elementeigenschaften1[e] & EP_BIT_INACTIVE)
+#define IS_EXPLOSIVE(e)                (Elementeigenschaften1[e] & EP_BIT_EXPLOSIVE)
+#define IS_MAMPF3(e)           (Elementeigenschaften1[e] & EP_BIT_MAMPF3)
+#define IS_PUSHABLE(e)         (Elementeigenschaften1[e] & EP_BIT_PUSHABLE)
+#define ELEM_IS_PLAYER(e)      (Elementeigenschaften1[e] & EP_BIT_PLAYER)
+#define HAS_CONTENT(e)         (Elementeigenschaften1[e] & EP_BIT_HAS_CONTENT)
+#define IS_EATABLE(e)          (Elementeigenschaften1[e] & EP_BIT_EATABLE)
+#define IS_SP_ELEMENT(e)       (Elementeigenschaften1[e] & EP_BIT_SP_ELEMENT)
+#define IS_QUICK_GATE(e)       (Elementeigenschaften1[e] & EP_BIT_QUICK_GATE)
+#define IS_OVER_PLAYER(e)      (Elementeigenschaften1[e] & EP_BIT_OVER_PLAYER)
+#define IS_ACTIVE_BOMB(e)      (Elementeigenschaften1[e] & EP_BIT_ACTIVE_BOMB)
+#define IS_BELT(e)             (Elementeigenschaften2[e] & EP_BIT_BELT)
+#define IS_BELT_SWITCH(e)      (Elementeigenschaften2[e] & EP_BIT_BELT_SWITCH)
+#define IS_TUBE(e)             (Elementeigenschaften2[e] & EP_BIT_TUBE)
+#define IS_EM_SLIPPERY_WALL(e) (Elementeigenschaften2[e] & EP_BIT_EM_SLIPPERY_WALL)
+
+#define IS_PLAYER(x,y)         (ELEM_IS_PLAYER(StorePlayer[x][y]))
+
+#define IS_FREE(x,y)           (Feld[x][y] == EL_LEERRAUM && !IS_PLAYER(x,y))
+#define IS_FREE_OR_PLAYER(x,y) (Feld[x][y] == EL_LEERRAUM)
+
+#define IS_MOVING(x,y)         (MovPos[x][y] != 0)
+#define IS_FALLING(x,y)                (MovPos[x][y] != 0 && MovDir[x][y] == MV_DOWN)
+#define IS_BLOCKED(x,y)                (Feld[x][y] == EL_BLOCKED)
+
+#define EL_CHANGED(e)          ((e) == EL_FELSBROCKEN    ? EL_EDELSTEIN :  \
+                                (e) == EL_BD_ROCK        ? EL_EDELSTEIN_BD : \
+                                (e) == EL_EDELSTEIN      ? EL_DIAMANT :    \
+                                (e) == EL_EDELSTEIN_GELB ? EL_DIAMANT :    \
+                                (e) == EL_EDELSTEIN_ROT  ? EL_DIAMANT :    \
+                                (e) == EL_EDELSTEIN_LILA ? EL_DIAMANT :    \
                                 EL_FELSBROCKEN)
-#define IS_DRAWABLE(e)         ((e)<EL_BLOCKED)
-#define IS_NOT_DRAWABLE(e)     ((e)>=EL_BLOCKED)
-#define TIMESIZE               (TimeLeft*100/level.time)
-#define LEVELDIR_SIZE(x)       ((x).num_ready + (x).num_free)
+#define EL_CHANGED2(e)         ((e) == EL_FELSBROCKEN ? EL_EDELSTEIN_BD :  \
+                                (e) == EL_BD_ROCK     ? EL_EDELSTEIN_BD : \
+                                EL_BD_ROCK)
+#define IS_DRAWABLE(e)         ((e) < EL_BLOCKED)
+#define IS_NOT_DRAWABLE(e)     ((e) >= EL_BLOCKED)
 #define TAPE_IS_EMPTY(x)       ((x).length == 0)
+#define TAPE_IS_STOPPED(x)     (!(x).recording && !(x).playing)
 
-/* Pixmaps with Xpm or X11 Bitmap files */
+#define PLAYERINFO(x,y)                (&stored_player[StorePlayer[x][y]-EL_SPIELER1])
+#define SHIELD_ON(p)           ((p)->shield_passive_time_left > 0)
+#define PROTECTED_FIELD(x,y)   (IS_TUBE(Feld[x][y]))
+#define PLAYER_PROTECTED(x,y)  (SHIELD_ON(PLAYERINFO(x, y)) ||         \
+                                PROTECTED_FIELD(x, y))
+
+/* Bitmaps with graphic file */
 #define PIX_BACK               0
-#define PIX_DOOR               1
-#define PIX_TOONS              2
-#define        PIX_BIGFONT             3
-#define PIX_SMALLFONT          4
-/* Pixmaps without them */
-#define PIX_DB_BACK            5
-#define PIX_DB_DOOR            6
-#define PIX_FADEMASK           7
-
-#define NUM_PICTURES           5
-#define NUM_PIXMAPS            8
+#define PIX_ELEMENTS           1
+#define PIX_DOOR               2
+#define PIX_HEROES             3
+#define PIX_TOONS              4
+#define PIX_SP                 5
+#define PIX_DC                 6
+#define PIX_MORE               7
+#define        PIX_FONT_BIG            8
+#define PIX_FONT_SMALL         9
+#define PIX_FONT_MEDIUM                10
+#define PIX_FONT_EM            11
+/* Bitmaps without graphic file */
+#define PIX_DB_DOOR            12
+#define PIX_DB_FIELD           13
+
+#define NUM_PICTURES           12
+#define NUM_BITMAPS            14
 
 /* boundaries of arrays etc. */
-#define MAX_NAMELEN            (10+1)
+#define MAX_LEVEL_NAME_LEN     32
+#define MAX_LEVEL_AUTHOR_LEN   32
+#define MAX_TAPELEN            (1000 * 50)     /* max. time * framerate */
+#define MAX_SCORE_ENTRIES      100
+#define MAX_ELEMENTS           700             /* 500 static + 200 runtime */
+#define MAX_GRAPHICS           1536            /* see below: NUM_TILES */
+#define MAX_NUM_AMOEBA         100
 
-#define MAX_LEVNAMLEN          32
-#define MAX_LEVSCORE_ENTRIES   16
-#define NUM_FREE_LVHD_BYTES    18
-#define MAX_TAPELEN            10000
+/* values for elements with content */
+#define MIN_ELEMENT_CONTENTS   1
+#define STD_ELEMENT_CONTENTS   4
+#define MAX_ELEMENT_CONTENTS   8
 
-#define MAX_LEVDIR_FILENAME    (64+1)
-#define MAX_LEVDIR_NAME                (16+1)
-#define MAX_LEVDIR_ENTRIES     15
-#define MAX_SCORE_ENTRIES      15
+#define LEVEL_SCORE_ELEMENTS   16      /* level elements with score */
 
-#define MAX_FILENAME           256
-#define MAX_NUM_AMOEBA         100
-#define MAX_ELEMENTS           512
+/* fundamental game speed values */
+#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 MICROLEVEL_SCROLL_DELAY        50      /* delay for scrolling micro level */
+#define MICROLEVEL_LABEL_DELAY 250     /* delay for micro level label */
+
+/* often used screen positions */
+#define SX                     8
+#define SY                     8
+#define REAL_SX                        (SX - 2)
+#define REAL_SY                        (SY - 2)
+#define DX                     566
+#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)
+#define MINI_TILEY             (TILEY / 2)
+#define MICRO_TILEX            (TILEX / 8)
+#define MICRO_TILEY            (TILEY / 8)
+#define MIDPOSX                        (SCR_FIELDX / 2)
+#define MIDPOSY                        (SCR_FIELDY / 2)
+#define SXSIZE                 (SCR_FIELDX * TILEX)
+#define SYSIZE                 (SCR_FIELDY * TILEY)
+#define FXSIZE                 ((SCR_FIELDX + 2) * TILEX)
+#define FYSIZE                 ((SCR_FIELDY + 2) * TILEY)
+#define DXSIZE                 100
+#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_XSIZE         ((STD_LEV_FIELDX + 2) * MICRO_TILEX)
+#define MICROLEV_YSIZE         ((STD_LEV_FIELDY + 2) * MICRO_TILEY)
+#define MICROLEV_XPOS          (SX + (SXSIZE - MICROLEV_XSIZE) / 2)
+#define MICROLEV_YPOS          (SX + 12 * TILEY - MICRO_TILEY)
+#define MICROLABEL_YPOS                (MICROLEV_YPOS + MICROLEV_YSIZE + 7)
+
+#define MINI_GFX_STARTX                0
+#define MINI_GFX_STARTY                448
+#define MICRO_GFX_STARTX       384
+#define MICRO_GFX_STARTY       448
+#define GFX_PER_LINE           16
+#define MINI_GFX_PER_LINE      16
+#define MICRO_GFX_PER_LINE     16
+
+#define MINI_FONT_STARTX       0
+#define MINI_FONT_STARTY       128
+#define MICRO_FONT_STARTX      408
+#define MICRO_FONT_STARTY      128
+
+#define HEROES_PER_LINE                16
+
+#define MINI_SP_STARTX         0
+#define MINI_SP_STARTY         512
+#define MICRO_SP_STARTX                384
+#define MICRO_SP_STARTY                512
+#define SP_PER_LINE            16
+#define MINI_SP_PER_LINE       16
+#define MICRO_SP_PER_LINE      16
+
+#define MINI_DC_STARTX         0
+#define MINI_DC_STARTY         512
+#define MICRO_DC_STARTX                384
+#define MICRO_DC_STARTY                512
+#define DC_PER_LINE            16
+#define MINI_DC_PER_LINE       16
+#define MICRO_DC_PER_LINE      16
+
+#define MINI_MORE_STARTX       0
+#define MINI_MORE_STARTY       256
+#define MICRO_MORE_STARTX      384
+#define MICRO_MORE_STARTY      256
+#define MORE_PER_LINE          16
+#define MINI_MORE_PER_LINE     16
+#define MICRO_MORE_PER_LINE    16
+
+/* game elements:
+**       0 - 499: real elements, stored in level file
+**      500 - 699: flag elements, only used at runtime
+*/
+/* "real" level elements */
+#define EL_LEERRAUM            0
+#define        EL_ERDREICH             1
+#define        EL_MAUERWERK            2
+#define        EL_FELSBODEN            3
+#define        EL_FELSBROCKEN          4
+#define        EL_SCHLUESSEL           5
+#define        EL_EDELSTEIN            6
+#define        EL_AUSGANG_ZU           7
+#define        EL_SPIELFIGUR           8
+#define EL_KAEFER              9
+#define EL_FLIEGER             10
+#define EL_MAMPFER             11
+#define EL_ROBOT               12
+#define EL_BETON               13
+#define EL_DIAMANT             14
+#define EL_AMOEBE_TOT          15
+#define EL_MORAST_LEER         16
+#define EL_MORAST_VOLL         17
+#define EL_TROPFEN             18
+#define EL_BOMBE               19
+#define EL_MAGIC_WALL_OFF      20
+#define EL_SPEED_PILL          21
+#define EL_SALZSAEURE          22
+#define EL_AMOEBE_NASS         23
+#define EL_AMOEBE_NORM         24
+#define EL_KOKOSNUSS           25
+#define EL_LIFE                        26
+#define EL_LIFE_ASYNC          27
+#define EL_DYNAMITE_ACTIVE     28
+#define EL_BADEWANNE           29
+#define EL_ABLENK_AUS          30
+#define EL_ABLENK_EIN          31
+#define EL_SCHLUESSEL1         32
+#define EL_SCHLUESSEL2         33
+#define EL_SCHLUESSEL3         34
+#define EL_SCHLUESSEL4         35
+#define EL_PFORTE1             36
+#define EL_PFORTE2             37
+#define EL_PFORTE3             38
+#define EL_PFORTE4             39
+#define EL_PFORTE1X            40
+#define EL_PFORTE2X            41
+#define EL_PFORTE3X            42
+#define EL_PFORTE4X            43
+#define EL_DYNAMITE_INACTIVE   44
+#define EL_PACMAN              45
+#define EL_UNSICHTBAR          46
+#define EL_BIRNE_AUS           47
+#define EL_BIRNE_EIN           48
+#define EL_ERZ_EDEL            49
+#define EL_ERZ_DIAM            50
+#define EL_AMOEBE_VOLL         51
+#define EL_AMOEBE_BD           52
+#define EL_ZEIT_VOLL           53
+#define EL_ZEIT_LEER           54
+#define EL_MAUER_LEBT          55
+#define EL_EDELSTEIN_BD                56
+#define EL_EDELSTEIN_GELB      57
+#define EL_ERZ_EDEL_BD         58
+#define EL_ERZ_EDEL_GELB       59
+#define EL_MAMPFER2            60
+#define EL_MAGIC_WALL_BD_OFF   61
+#define EL_INVISIBLE_STEEL     62
+
+#define EL_UNUSED_63           63
+
+#define EL_DYNABOMB_NR         64
+#define EL_DYNABOMB_SZ         65
+#define EL_DYNABOMB_XL         66
+#define EL_SOKOBAN_OBJEKT      67
+#define EL_SOKOBAN_FELD_LEER   68
+#define EL_SOKOBAN_FELD_VOLL   69
+#define EL_BUTTERFLY_RIGHT     70
+#define EL_BUTTERFLY_UP                71
+#define EL_BUTTERFLY_LEFT      72
+#define EL_BUTTERFLY_DOWN      73
+#define EL_FIREFLY_RIGHT       74
+#define EL_FIREFLY_UP          75
+#define EL_FIREFLY_LEFT                76
+#define EL_FIREFLY_DOWN                77
+#define EL_BUTTERFLY_1         EL_BUTTERFLY_DOWN
+#define EL_BUTTERFLY_2         EL_BUTTERFLY_LEFT
+#define EL_BUTTERFLY_3         EL_BUTTERFLY_UP
+#define EL_BUTTERFLY_4         EL_BUTTERFLY_RIGHT
+#define EL_FIREFLY_1           EL_FIREFLY_LEFT
+#define EL_FIREFLY_2           EL_FIREFLY_DOWN
+#define EL_FIREFLY_3           EL_FIREFLY_RIGHT
+#define EL_FIREFLY_4           EL_FIREFLY_UP
+#define EL_BUTTERFLY           78
+#define EL_FIREFLY             79
+#define EL_SPIELER1            80
+#define EL_SPIELER2            81
+#define EL_SPIELER3            82
+#define EL_SPIELER4            83
+#define EL_KAEFER_RIGHT                84
+#define EL_KAEFER_UP           85
+#define EL_KAEFER_LEFT         86
+#define EL_KAEFER_DOWN         87
+#define EL_FLIEGER_RIGHT       88
+#define EL_FLIEGER_UP          89
+#define EL_FLIEGER_LEFT                90
+#define EL_FLIEGER_DOWN                91
+#define EL_PACMAN_RIGHT                92
+#define EL_PACMAN_UP           93
+#define EL_PACMAN_LEFT         94
+#define EL_PACMAN_DOWN         95
+#define EL_EDELSTEIN_ROT       96
+#define EL_EDELSTEIN_LILA      97
+#define EL_ERZ_EDEL_ROT                98
+#define EL_ERZ_EDEL_LILA       99
+#define EL_BADEWANNE1          100
+#define EL_BADEWANNE2          101
+#define EL_BADEWANNE3          102
+#define EL_BADEWANNE4          103
+#define EL_BADEWANNE5          104
+#define EL_BD_WALL             105
+#define EL_BD_ROCK             106
+#define EL_AUSGANG_AUF         107
+#define EL_BLACK_ORB           108
+#define EL_AMOEBA2DIAM         109
+#define EL_MOLE                        110
+#define EL_PINGUIN             111
+#define EL_SONDE               112
+#define EL_PFEIL_LEFT          113
+#define EL_PFEIL_RIGHT         114
+#define EL_PFEIL_UP            115
+#define EL_PFEIL_DOWN          116
+#define EL_SCHWEIN             117
+#define EL_DRACHE              118
+
+#define EL_EM_KEY_1_FILE       119
+
+#define EL_CHAR_START          120
+#define EL_CHAR_ASCII0         (EL_CHAR_START-32)
+#define EL_CHAR_AUSRUF         (EL_CHAR_ASCII0+33)
+#define EL_CHAR_ZOLL           (EL_CHAR_ASCII0+34)
+#define EL_CHAR_RAUTE          (EL_CHAR_ASCII0+35)
+#define EL_CHAR_DOLLAR         (EL_CHAR_ASCII0+36)
+#define EL_CHAR_PROZ           (EL_CHAR_ASCII0+37)
+#define EL_CHAR_AMPERSAND      (EL_CHAR_ASCII0+38)
+#define EL_CHAR_APOSTR         (EL_CHAR_ASCII0+39)
+#define EL_CHAR_KLAMM1         (EL_CHAR_ASCII0+40)
+#define EL_CHAR_KLAMM2         (EL_CHAR_ASCII0+41)
+#define EL_CHAR_MULT           (EL_CHAR_ASCII0+42)
+#define EL_CHAR_PLUS           (EL_CHAR_ASCII0+43)
+#define EL_CHAR_KOMMA          (EL_CHAR_ASCII0+44)
+#define EL_CHAR_MINUS          (EL_CHAR_ASCII0+45)
+#define EL_CHAR_PUNKT          (EL_CHAR_ASCII0+46)
+#define EL_CHAR_SLASH          (EL_CHAR_ASCII0+47)
+#define EL_CHAR_0              (EL_CHAR_ASCII0+48)
+#define EL_CHAR_9              (EL_CHAR_ASCII0+57)
+#define EL_CHAR_DOPPEL         (EL_CHAR_ASCII0+58)
+#define EL_CHAR_SEMIKL         (EL_CHAR_ASCII0+59)
+#define EL_CHAR_LT             (EL_CHAR_ASCII0+60)
+#define EL_CHAR_GLEICH         (EL_CHAR_ASCII0+61)
+#define EL_CHAR_GT             (EL_CHAR_ASCII0+62)
+#define EL_CHAR_FRAGE          (EL_CHAR_ASCII0+63)
+#define EL_CHAR_AT             (EL_CHAR_ASCII0+64)
+#define EL_CHAR_A              (EL_CHAR_ASCII0+65)
+#define EL_CHAR_Z              (EL_CHAR_ASCII0+90)
+#define EL_CHAR_AE             (EL_CHAR_ASCII0+91)
+#define EL_CHAR_OE             (EL_CHAR_ASCII0+92)
+#define EL_CHAR_UE             (EL_CHAR_ASCII0+93)
+#define EL_CHAR_COPY           (EL_CHAR_ASCII0+94)
+#define EL_CHAR_END            (EL_CHAR_START+79)
+
+#define EL_CHAR(x)             ((x) == 'Ä' ? EL_CHAR_AE : \
+                                (x) == 'Ö' ? EL_CHAR_OE : \
+                                (x) == 'Ü' ? EL_CHAR_UE : \
+                                EL_CHAR_A + (x) - 'A')
+
+#define EL_MAUER_X             200
+#define EL_MAUER_Y             201
+#define EL_MAUER_XY            202
+
+#define EL_EM_GATE_1           203
+#define EL_EM_GATE_2           204
+#define EL_EM_GATE_3           205
+#define EL_EM_GATE_4           206
+
+#define EL_EM_KEY_2_FILE       207
+#define EL_EM_KEY_3_FILE       208
+#define EL_EM_KEY_4_FILE       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_EM_GATE_1X          250
+#define EL_EM_GATE_2X          251
+#define EL_EM_GATE_3X          252
+#define EL_EM_GATE_4X          253
+
+#define EL_UNUSED_254          254
+#define EL_UNUSED_255          255
+
+#define EL_PEARL               256
+#define EL_CRYSTAL             257
+#define EL_WALL_PEARL          258
+#define EL_WALL_CRYSTAL                259
+#define EL_DOOR_WHITE          260
+#define EL_DOOR_WHITE_GRAY     261
+#define EL_KEY_WHITE           262
+#define EL_SHIELD_PASSIVE      263
+#define EL_EXTRA_TIME          264
+#define EL_SWITCHGATE_OPEN     265
+#define EL_SWITCHGATE_CLOSED   266
+#define EL_SWITCHGATE_SWITCH_1 267
+#define EL_SWITCHGATE_SWITCH_2 268
+
+#define EL_UNUSED_269          269
+#define EL_UNUSED_270          270
+
+#define EL_BELT1_LEFT          271
+#define EL_BELT1_MIDDLE                272
+#define EL_BELT1_RIGHT         273
+#define EL_BELT1_SWITCH_LEFT   274
+#define EL_BELT1_SWITCH_MIDDLE 275
+#define EL_BELT1_SWITCH_RIGHT  276
+#define EL_BELT2_LEFT          277
+#define EL_BELT2_MIDDLE                278
+#define EL_BELT2_RIGHT         279
+#define EL_BELT2_SWITCH_LEFT   280
+#define EL_BELT2_SWITCH_MIDDLE 281
+#define EL_BELT2_SWITCH_RIGHT  282
+#define EL_BELT3_LEFT          283
+#define EL_BELT3_MIDDLE                284
+#define EL_BELT3_RIGHT         285
+#define EL_BELT3_SWITCH_LEFT   286
+#define EL_BELT3_SWITCH_MIDDLE 287
+#define EL_BELT3_SWITCH_RIGHT  288
+#define EL_BELT4_LEFT          289
+#define EL_BELT4_MIDDLE                290
+#define EL_BELT4_RIGHT         291
+#define EL_BELT4_SWITCH_LEFT   292
+#define EL_BELT4_SWITCH_MIDDLE 293
+#define EL_BELT4_SWITCH_RIGHT  294
+#define EL_LANDMINE            295
+#define EL_ENVELOPE            296
+#define EL_LIGHT_SWITCH_OFF    297
+#define EL_LIGHT_SWITCH_ON     298
+#define EL_SIGN_EXCLAMATION    299
+#define EL_SIGN_RADIOACTIVITY  300
+#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_MOLE_LEFT           311
+#define EL_MOLE_RIGHT          312
+#define EL_MOLE_UP             313
+#define EL_MOLE_DOWN           314
+#define EL_STEEL_SLANTED       315
+#define EL_SAND_INVISIBLE      316
+#define EL_DX_UNKNOWN_15       317
+#define EL_DX_UNKNOWN_42       318
+
+#define EL_UNUSED_319          319
+#define EL_UNUSED_320          320
+
+#define EL_SHIELD_ACTIVE       321
+#define EL_TIMEGATE_OPEN       322
+#define EL_TIMEGATE_CLOSED     323
+#define EL_TIMEGATE_SWITCH_ON  324
+#define EL_TIMEGATE_SWITCH_OFF 325
+
+#define EL_BALLOON             326
+#define EL_BALLOON_SEND_LEFT   327
+#define EL_BALLOON_SEND_RIGHT  328
+#define EL_BALLOON_SEND_UP     329
+#define EL_BALLOON_SEND_DOWN   330
+#define EL_BALLOON_SEND_ANY    331
+
+#define EL_EMC_STEEL_WALL_1    332
+#define EL_EMC_STEEL_WALL_2    333
+#define EL_EMC_STEEL_WALL_3    334
+#define EL_EMC_STEEL_WALL_4    335
+#define EL_EMC_WALL_1          336
+#define EL_EMC_WALL_2          337
+#define EL_EMC_WALL_3          338
+#define EL_EMC_WALL_4          339
+#define EL_EMC_WALL_5          340
+#define EL_EMC_WALL_6          341
+#define EL_EMC_WALL_7          342
+#define EL_EMC_WALL_8          343
+
+#define EL_TUBE_CROSS          344
+#define EL_TUBE_VERTICAL       345
+#define EL_TUBE_HORIZONTAL     346
+#define EL_TUBE_VERT_LEFT      347
+#define EL_TUBE_VERT_RIGHT     348
+#define EL_TUBE_HORIZ_UP       349
+#define EL_TUBE_HORIZ_DOWN     350
+#define EL_TUBE_LEFT_UP                351
+#define EL_TUBE_LEFT_DOWN      352
+#define EL_TUBE_RIGHT_UP       353
+#define EL_TUBE_RIGHT_DOWN     354
+#define EL_SPRING              355
+#define EL_TRAP_INACTIVE       356
+#define EL_DX_SUPABOMB         357
+
+#define NUM_FILE_ELEMENTS      358
+
+
+/* "real" (and therefore drawable) runtime elements */
+#define EL_FIRST_RUNTIME               NUM_FILE_ELEMENTS
+
+#define EL_MAGIC_WALL_EMPTY            (EL_FIRST_RUNTIME + 0)
+#define EL_MAGIC_WALL_BD_EMPTY         (EL_FIRST_RUNTIME + 1)
+#define EL_MAGIC_WALL_FULL             (EL_FIRST_RUNTIME + 2)
+#define EL_MAGIC_WALL_BD_FULL          (EL_FIRST_RUNTIME + 3)
+#define EL_MAGIC_WALL_DEAD             (EL_FIRST_RUNTIME + 4)
+#define EL_MAGIC_WALL_BD_DEAD          (EL_FIRST_RUNTIME + 5)
+#define EL_AUSGANG_ACT                 (EL_FIRST_RUNTIME + 6)
+#define EL_SP_TERMINAL_ACTIVE          (EL_FIRST_RUNTIME + 7)
+#define EL_SP_BUG_ACTIVE               (EL_FIRST_RUNTIME + 8)
+#define EL_EM_KEY_1                    (EL_FIRST_RUNTIME + 9)
+#define EL_EM_KEY_2                    (EL_FIRST_RUNTIME + 10)
+#define EL_EM_KEY_3                    (EL_FIRST_RUNTIME + 11)
+#define EL_EM_KEY_4                    (EL_FIRST_RUNTIME + 12)
+#define EL_DYNABOMB_ACTIVE_1           (EL_FIRST_RUNTIME + 13)
+#define EL_DYNABOMB_ACTIVE_2           (EL_FIRST_RUNTIME + 14)
+#define EL_DYNABOMB_ACTIVE_3           (EL_FIRST_RUNTIME + 15)
+#define EL_DYNABOMB_ACTIVE_4           (EL_FIRST_RUNTIME + 16)
+#define EL_SWITCHGATE_OPENING          (EL_FIRST_RUNTIME + 17)
+#define EL_SWITCHGATE_CLOSING          (EL_FIRST_RUNTIME + 18)
+#define EL_TIMEGATE_OPENING            (EL_FIRST_RUNTIME + 19)
+#define EL_TIMEGATE_CLOSING            (EL_FIRST_RUNTIME + 20)
+#define EL_PEARL_BREAKING              (EL_FIRST_RUNTIME + 21)
+#define EL_TRAP_ACTIVE                 (EL_FIRST_RUNTIME + 22)
+#define EL_SPRING_MOVING               (EL_FIRST_RUNTIME + 23)
+#define EL_SP_MURPHY_CLONE             (EL_FIRST_RUNTIME + 24)
+#define EL_QUICKSAND_EMPTYING          (EL_FIRST_RUNTIME + 25)
+#define EL_MAGIC_WALL_EMPTYING         (EL_FIRST_RUNTIME + 26)
+#define EL_MAGIC_WALL_BD_EMPTYING      (EL_FIRST_RUNTIME + 27)
+#define EL_AMOEBA_DRIPPING             (EL_FIRST_RUNTIME + 28)
+
+#define NUM_RUNTIME_ELEMENTS           (EL_FIRST_RUNTIME + 29)
+
+/* "unreal" (and therefore not drawable) runtime elements */
+#define EL_FIRST_RUNTIME_UNREAL                NUM_RUNTIME_ELEMENTS
+
+#define EL_BLOCKED                     (EL_FIRST_RUNTIME_UNREAL + 0)
+#define EL_EXPLODING                   (EL_FIRST_RUNTIME_UNREAL + 1)
+#define EL_CRACKINGNUT                 (EL_FIRST_RUNTIME_UNREAL + 2)
+#define EL_BLURB_LEFT                  (EL_FIRST_RUNTIME_UNREAL + 3)
+#define EL_BLURB_RIGHT                 (EL_FIRST_RUNTIME_UNREAL + 4)
+#define EL_AMOEBING                    (EL_FIRST_RUNTIME_UNREAL + 5)
+#define EL_DEAMOEBING                  (EL_FIRST_RUNTIME_UNREAL + 6)
+#define EL_MAUERND                     (EL_FIRST_RUNTIME_UNREAL + 7)
+#define EL_BURNING                     (EL_FIRST_RUNTIME_UNREAL + 8)
+#define EL_PLAYER_IS_LEAVING           (EL_FIRST_RUNTIME_UNREAL + 9)
+#define EL_QUICKSAND_FILLING           (EL_FIRST_RUNTIME_UNREAL + 10)
+#define EL_MAGIC_WALL_FILLING          (EL_FIRST_RUNTIME_UNREAL + 11)
+#define EL_MAGIC_WALL_BD_FILLING       (EL_FIRST_RUNTIME_UNREAL + 12)
+
+#define MAX_NUM_ELEMENTS               (EL_FIRST_RUNTIME_UNREAL + 13)
+
+
+/* game graphics:
+**       0 -  255: graphics from "RocksElements"
+**     256 -  511: graphics from "RocksFont"
+**     512 -  767: graphics from "RocksHeroes"
+**     768 - 1023: graphics from "RocksSP"
+**     1024 - 1279: graphics from "RocksDC"
+**     1280 - 1535: graphics from "RocksMore"
+*/
+
+#define GFX_START_ROCKSELEMENTS        0
+#define GFX_END_ROCKSELEMENTS  255
+#define GFX_START_ROCKSFONT    256
+#define GFX_END_ROCKSFONT      511
+#define GFX_START_ROCKSHEROES  512
+#define GFX_END_ROCKSHEROES    767
+#define GFX_START_ROCKSSP      768
+#define GFX_END_ROCKSSP                1023
+#define GFX_START_ROCKSDC      1024
+#define GFX_END_ROCKSDC                1279
+#define GFX_START_ROCKSMORE    1280
+#define GFX_END_ROCKSMORE      1535
+
+#define NUM_TILES              1536            /* see above: MAX_GRAPHICS */
+
+/* graphics from "RocksScreen" */
+/* Zeile 0 (0) */
+#define GFX_LEERRAUM           (-1)
+#define        GFX_ERDREICH            0
+#define GFX_ERDENRAND          1
+#define GFX_MORAST_LEER                2
+#define GFX_MORAST_VOLL                3
+#define GFX_BETON              4
+#define        GFX_MAUERWERK           5
+#define        GFX_FELSBODEN           6
+#define        GFX_EDELSTEIN           8
+#define GFX_DIAMANT            10
+#define        GFX_FELSBROCKEN         12
+/* Zeile 1 (16) */
+#define GFX_BADEWANNE1         16
+#define GFX_SALZSAEURE         17
+#define GFX_BADEWANNE2         18
+
+/*
+#define GFX_UNSICHTBAR         19
+*/
+
+#define GFX_SCHLUESSEL1                20
+#define GFX_SCHLUESSEL2                21
+#define GFX_SCHLUESSEL3                22
+#define GFX_SCHLUESSEL4                23
+#define GFX_LIFE               24
+#define GFX_LIFE_ASYNC         25
+#define GFX_BADEWANNE          26
+#define GFX_BOMBE              27
+#define GFX_KOKOSNUSS          28
+#define GFX_CRACKINGNUT                29
+/* Zeile 2 (32) */
+#define GFX_BADEWANNE3         32
+#define GFX_BADEWANNE4         33
+#define GFX_BADEWANNE5         34
+#define        GFX_SMILEY              35
+#define GFX_PFORTE1            36
+#define GFX_PFORTE2            37
+#define GFX_PFORTE3            38
+#define GFX_PFORTE4            39
+#define GFX_PFORTE1X           40
+#define GFX_PFORTE2X           41
+#define GFX_PFORTE3X           42
+#define GFX_PFORTE4X           43
+/* Zeile 3 (48) */
+#define GFX_DYNAMIT_AUS                48
+#define GFX_DYNAMIT            49
+#define GFX_FLIEGER            56
+#define GFX_FLIEGER_RIGHT      56
+#define GFX_FLIEGER_UP         58
+#define GFX_FLIEGER_LEFT       60
+#define GFX_FLIEGER_DOWN       62
+/* Zeile 4 (64) */
+#define GFX_EXPLOSION          64
+#define GFX_KAEFER             72
+#define GFX_KAEFER_RIGHT       72
+#define GFX_KAEFER_UP          74
+#define GFX_KAEFER_LEFT                76
+#define GFX_KAEFER_DOWN                78
+/* Zeile 5 (80) */
+#define GFX_MAMPFER            80
+#define GFX_ROBOT              84
+#define GFX_PACMAN             88
+#define GFX_PACMAN_RIGHT       88
+#define GFX_PACMAN_UP          90
+#define GFX_PACMAN_LEFT                92
+#define GFX_PACMAN_DOWN                94
+/* Zeile 6 (96) */
+#define GFX_ABLENK             96
+#define GFX_ABLENK_EIN         GFX_ABLENK
+#define GFX_ABLENK_AUS         GFX_ABLENK
+#define GFX_AMOEBE_NASS                100
+#define GFX_TROPFEN            101
+#define GFX_AMOEBING           GFX_TROPFEN
+#define GFX_AMOEBE_LEBT                104
+#define GFX_AMOEBE_NORM                GFX_AMOEBE_LEBT
+#define GFX_AMOEBE_TOT         108
+#define GFX_AMOEBA2DIAM                GFX_AMOEBE_TOT
+/* Zeile 7 (112) */
+#define GFX_BIRNE_AUS          112
+#define GFX_BIRNE_EIN          113
+#define GFX_ZEIT_VOLL          114
+#define GFX_ZEIT_LEER          115
+#define GFX_SPIELER1           116
+#define GFX_SPIELER2           117
+#define GFX_SPIELER3           118
+#define GFX_SPIELER4           119
+#define GFX_AMOEBE_VOLL                120
+#define GFX_AMOEBE_BD          GFX_AMOEBE_VOLL
+#define GFX_SOKOBAN_OBJEKT     121
+#define GFX_SOKOBAN_FELD_LEER  122
+#define GFX_SOKOBAN_FELD_VOLL  123
+#define GFX_GEBLUBBER          124
+/* Zeile 8 (128) */
+#define GFX_MAGIC_WALL_OFF     128
+#define GFX_MAGIC_WALL_EMPTY   GFX_MAGIC_WALL_OFF
+#define GFX_MAGIC_WALL_FULL    GFX_MAGIC_WALL_OFF
+#define GFX_MAGIC_WALL_DEAD    GFX_MAGIC_WALL_OFF
+#define GFX_ERZ_EDEL           132
+#define GFX_ERZ_DIAM           133
+#define GFX_ERZ_EDEL_ROT       134
+#define GFX_ERZ_EDEL_LILA      135
+#define GFX_ERZ_EDEL_GELB      136
+#define GFX_ERZ_EDEL_BD                137
+#define GFX_EDELSTEIN_GELB     138
+#define GFX_KUGEL_ROT          140
+#define GFX_KUGEL_BLAU         141
+#define GFX_KUGEL_GELB         142
+#define GFX_KUGEL_GRAU         143
+/* Zeile 9 (144) */
+#define GFX_PINGUIN            144
+#define GFX_MOLE               145
+#define GFX_SCHWEIN            146
+#define GFX_DRACHE             147
+#define GFX_MAUER_XY           148
+#define GFX_MAUER_X            149
+#define GFX_MAUER_Y            150
+#define GFX_EDELSTEIN_ROT      152
+#define GFX_EDELSTEIN_LILA     154
+#define GFX_DYNABOMB_XL                156
+#define GFX_BLACK_ORB          157
+#define GFX_SPEED_PILL         158
+#define GFX_SONDE              159
+/* Zeile 10 (160) */
+#define GFX_EDELSTEIN_BD       163
+#define GFX_MAUER_RIGHT                165
+#define GFX_MAUER_R1           GFX_MAUER_RIGHT
+#define GFX_MAUER_R            167
+#define GFX_MAUER_LEFT         168
+#define GFX_MAUER_L1           GFX_MAUER_LEFT
+#define GFX_MAUER_L            170
+#define GFX_MAUER_LEBT         171
+#define GFX_MAGIC_WALL_BD_OFF  172
+#define GFX_MAGIC_WALL_BD_EMPTY        GFX_MAGIC_WALL_BD_OFF
+#define GFX_MAGIC_WALL_BD_FULL GFX_MAGIC_WALL_BD_OFF
+#define GFX_MAGIC_WALL_BD_DEAD GFX_MAGIC_WALL_BD_OFF
+/* Zeile 11 (176) */
+#define        GFX_AUSGANG_ZU          176
+#define        GFX_AUSGANG_ACT         177
+#define        GFX_AUSGANG_AUF         180
+#define GFX_MAMPFER2           184
+#define GFX_DYNABOMB           188
+#define GFX_DYNABOMB_NR                188
+#define GFX_DYNABOMB_SZ                191
+/* Zeile 12 (192) */
+#define GFX_PFEIL_LEFT         192
+#define GFX_PFEIL_RIGHT                193
+#define GFX_PFEIL_UP           194
+#define GFX_PFEIL_DOWN         195
+#define GFX_BUTTERFLY          196
+#define GFX_FIREFLY            198
+#define GFX_BUTTERFLY_RIGHT    200
+#define GFX_BUTTERFLY_UP       201
+#define GFX_BUTTERFLY_LEFT     202
+#define GFX_BUTTERFLY_DOWN     203
+#define GFX_FIREFLY_RIGHT      204
+#define GFX_FIREFLY_UP         205
+#define GFX_FIREFLY_LEFT       206
+#define GFX_FIREFLY_DOWN       207
+
+/* only available as size MINI_TILE */
+#define GFX_VSTEEL_UPPER_LEFT  208
+#define GFX_VSTEEL_UPPER_RIGHT 209
+#define GFX_VSTEEL_LOWER_LEFT  210
+#define GFX_VSTEEL_LOWER_RIGHT 211
+#define GFX_VSTEEL_HORIZONTAL  212
+#define GFX_VSTEEL_VERTICAL    213
+#define GFX_ISTEEL_UPPER_LEFT  214
+#define GFX_ISTEEL_UPPER_RIGHT 215
+#define GFX_ISTEEL_LOWER_LEFT  216
+#define GFX_ISTEEL_LOWER_RIGHT 217
+#define GFX_ISTEEL_HORIZONTAL  218
+#define GFX_ISTEEL_VERTICAL    219
+
+/* elements with graphics borrowed from other elements */
+#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)
+#define GFX_SPIELER1_RIGHT     (GFX_START_ROCKSHEROES + 1*HEROES_PER_LINE + 4)
+#define GFX_SPIELER1_PUSH_RIGHT        (GFX_START_ROCKSHEROES + 2*HEROES_PER_LINE + 0)
+#define GFX_SPIELER1_PUSH_LEFT (GFX_START_ROCKSHEROES + 2*HEROES_PER_LINE + 4)
+#define GFX_SPIELER2_DOWN      (GFX_START_ROCKSHEROES + 3*HEROES_PER_LINE + 0)
+#define GFX_SPIELER2_UP                (GFX_START_ROCKSHEROES + 3*HEROES_PER_LINE + 4)
+#define GFX_SPIELER2_LEFT      (GFX_START_ROCKSHEROES + 4*HEROES_PER_LINE + 0)
+#define GFX_SPIELER2_RIGHT     (GFX_START_ROCKSHEROES + 4*HEROES_PER_LINE + 4)
+#define GFX_SPIELER2_PUSH_RIGHT        (GFX_START_ROCKSHEROES + 5*HEROES_PER_LINE + 0)
+#define GFX_SPIELER2_PUSH_LEFT (GFX_START_ROCKSHEROES + 5*HEROES_PER_LINE + 4)
+#define GFX_SPIELER3_DOWN      (GFX_START_ROCKSHEROES + 6*HEROES_PER_LINE + 0)
+#define GFX_SPIELER3_UP                (GFX_START_ROCKSHEROES + 6*HEROES_PER_LINE + 4)
+#define GFX_SPIELER3_LEFT      (GFX_START_ROCKSHEROES + 7*HEROES_PER_LINE + 0)
+#define GFX_SPIELER3_RIGHT     (GFX_START_ROCKSHEROES + 7*HEROES_PER_LINE + 4)
+#define GFX_SPIELER3_PUSH_RIGHT        (GFX_START_ROCKSHEROES + 8*HEROES_PER_LINE + 0)
+#define GFX_SPIELER3_PUSH_LEFT (GFX_START_ROCKSHEROES + 8*HEROES_PER_LINE + 4)
+#define GFX_SPIELER4_DOWN      (GFX_START_ROCKSHEROES + 9*HEROES_PER_LINE + 0)
+#define GFX_SPIELER4_UP                (GFX_START_ROCKSHEROES + 9*HEROES_PER_LINE + 4)
+#define GFX_SPIELER4_LEFT      (GFX_START_ROCKSHEROES +10*HEROES_PER_LINE + 0)
+#define GFX_SPIELER4_RIGHT     (GFX_START_ROCKSHEROES +10*HEROES_PER_LINE + 4)
+#define GFX_SPIELER4_PUSH_RIGHT        (GFX_START_ROCKSHEROES +11*HEROES_PER_LINE + 0)
+#define GFX_SPIELER4_PUSH_LEFT (GFX_START_ROCKSHEROES +11*HEROES_PER_LINE + 4)
+#define GFX_MAUER_DOWN         (GFX_START_ROCKSHEROES +12*HEROES_PER_LINE + 0)
+#define GFX_MAUER_UP           (GFX_START_ROCKSHEROES +12*HEROES_PER_LINE + 3)
+#define GFX2_SHIELD_PASSIVE    (GFX_START_ROCKSHEROES +13*HEROES_PER_LINE + 1)
+#define GFX2_SHIELD_ACTIVE     (GFX_START_ROCKSHEROES +13*HEROES_PER_LINE + 5)
+
+#define GFX_SONDE_START                (GFX_START_ROCKSHEROES + 9*HEROES_PER_LINE + 8)
+#define GFX_SCHWEIN_DOWN       (GFX_START_ROCKSHEROES + 0*HEROES_PER_LINE + 8)
+#define GFX_SCHWEIN_UP         (GFX_START_ROCKSHEROES + 0*HEROES_PER_LINE +12)
+#define GFX_SCHWEIN_LEFT       (GFX_START_ROCKSHEROES + 1*HEROES_PER_LINE + 8)
+#define GFX_SCHWEIN_RIGHT      (GFX_START_ROCKSHEROES + 1*HEROES_PER_LINE +12)
+#define GFX_DRACHE_DOWN                (GFX_START_ROCKSHEROES + 2*HEROES_PER_LINE + 8)
+#define GFX_DRACHE_UP          (GFX_START_ROCKSHEROES + 2*HEROES_PER_LINE +12)
+#define GFX_DRACHE_LEFT                (GFX_START_ROCKSHEROES + 3*HEROES_PER_LINE + 8)
+#define GFX_DRACHE_RIGHT       (GFX_START_ROCKSHEROES + 3*HEROES_PER_LINE +12)
+/*
+#define GFX_MOLE_DOWN          (GFX_START_ROCKSHEROES + 4*HEROES_PER_LINE + 8)
+#define GFX_MOLE_UP            (GFX_START_ROCKSHEROES + 4*HEROES_PER_LINE +12)
+#define GFX_MOLE_LEFT          (GFX_START_ROCKSHEROES + 5*HEROES_PER_LINE + 8)
+#define GFX_MOLE_RIGHT         (GFX_START_ROCKSHEROES + 5*HEROES_PER_LINE +12)
+*/
+#define GFX_PINGUIN_DOWN       (GFX_START_ROCKSHEROES + 6*HEROES_PER_LINE + 8)
+#define GFX_PINGUIN_UP         (GFX_START_ROCKSHEROES + 6*HEROES_PER_LINE +12)
+#define GFX_PINGUIN_LEFT       (GFX_START_ROCKSHEROES + 7*HEROES_PER_LINE + 8)
+#define GFX_PINGUIN_RIGHT      (GFX_START_ROCKSHEROES + 7*HEROES_PER_LINE +12)
+#define GFX_BLURB_LEFT         (GFX_START_ROCKSHEROES +10*HEROES_PER_LINE + 8)
+#define GFX_BLURB_RIGHT                (GFX_START_ROCKSHEROES +10*HEROES_PER_LINE +12)
+#define GFX_FUNKELN_BLAU       (GFX_START_ROCKSHEROES +11*HEROES_PER_LINE + 9)
+#define GFX_FUNKELN_WEISS      (GFX_START_ROCKSHEROES +11*HEROES_PER_LINE +13)
+#define GFX_FLAMMEN_LEFT       (GFX_START_ROCKSHEROES +12*HEROES_PER_LINE + 8)
+#define GFX_FLAMMEN_RIGHT      (GFX_START_ROCKSHEROES +13*HEROES_PER_LINE + 8)
+#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 "RocksSP" */
+#define GFX_SP_EMPTY           (GFX_START_ROCKSSP +  0 * SP_PER_LINE +  0)
+/*
+#define GFX_SP_ZONK            (GFX_START_ROCKSSP +  0 * SP_PER_LINE +  1)
+*/
+#define GFX_SP_BASE            (GFX_START_ROCKSSP +  0 * SP_PER_LINE +  2)
+#define GFX_SP_MURPHY          (GFX_START_ROCKSSP +  0 * SP_PER_LINE +  3)
+#define GFX_SP_INFOTRON                (GFX_START_ROCKSSP +  0 * SP_PER_LINE +  4)
+#define GFX_SP_CHIP_SINGLE     (GFX_START_ROCKSSP +  0 * SP_PER_LINE +  5)
+#define GFX_SP_HARD_GRAY       (GFX_START_ROCKSSP +  0 * SP_PER_LINE +  6)
+#define GFX_SP_EXIT            (GFX_START_ROCKSSP +  0 * SP_PER_LINE +  7)
+#define GFX_SP_DISK_ORANGE     (GFX_START_ROCKSSP +  1 * SP_PER_LINE +  0)
+#define GFX_SP_PORT1_RIGHT     (GFX_START_ROCKSSP +  1 * SP_PER_LINE +  1)
+#define GFX_SP_PORT1_DOWN      (GFX_START_ROCKSSP +  1 * SP_PER_LINE +  2)
+#define GFX_SP_PORT1_LEFT      (GFX_START_ROCKSSP +  1 * SP_PER_LINE +  3)
+#define GFX_SP_PORT1_UP                (GFX_START_ROCKSSP +  1 * SP_PER_LINE +  4)
+#define GFX_SP_PORT2_RIGHT     (GFX_START_ROCKSSP +  1 * SP_PER_LINE +  5)
+#define GFX_SP_PORT2_DOWN      (GFX_START_ROCKSSP +  1 * SP_PER_LINE +  6)
+#define GFX_SP_PORT2_LEFT      (GFX_START_ROCKSSP +  1 * SP_PER_LINE +  7)
+#define GFX_SP_PORT2_UP                (GFX_START_ROCKSSP +  2 * SP_PER_LINE +  0)
+#define GFX_SP_SNIKSNAK                (GFX_START_ROCKSSP +  2 * SP_PER_LINE +  1)
+#define GFX_SP_DISK_YELLOW     (GFX_START_ROCKSSP +  2 * SP_PER_LINE +  2)
+#define GFX_SP_TERMINAL                (GFX_START_ROCKSSP +  2 * SP_PER_LINE +  3)
+#define GFX_SP_DISK_RED                (GFX_START_ROCKSSP +  2 * SP_PER_LINE +  4)
+#define GFX_SP_PORT_Y          (GFX_START_ROCKSSP +  2 * SP_PER_LINE +  5)
+#define GFX_SP_PORT_X          (GFX_START_ROCKSSP +  2 * SP_PER_LINE +  6)
+#define GFX_SP_PORT_XY         (GFX_START_ROCKSSP +  2 * SP_PER_LINE +  7)
+#define GFX_SP_ELECTRON                (GFX_START_ROCKSSP +  3 * SP_PER_LINE +  0)
+#define GFX_SP_BUG             (GFX_START_ROCKSSP +  3 * SP_PER_LINE +  1)
+#define GFX_SP_CHIP_LEFT       (GFX_START_ROCKSSP +  3 * SP_PER_LINE +  2)
+#define GFX_SP_CHIP_RIGHT      (GFX_START_ROCKSSP +  3 * SP_PER_LINE +  3)
+#define GFX_SP_HARD_BASE1      (GFX_START_ROCKSSP +  3 * SP_PER_LINE +  4)
+#define GFX_SP_HARD_GREEN      (GFX_START_ROCKSSP +  3 * SP_PER_LINE +  5)
+#define GFX_SP_HARD_BLUE       (GFX_START_ROCKSSP +  3 * SP_PER_LINE +  6)
+#define GFX_SP_HARD_RED                (GFX_START_ROCKSSP +  3 * SP_PER_LINE +  7)
+#define GFX_SP_HARD_YELLOW     (GFX_START_ROCKSSP +  4 * SP_PER_LINE +  0)
+#define GFX_SP_HARD_BASE2      (GFX_START_ROCKSSP +  4 * SP_PER_LINE +  1)
+#define GFX_SP_HARD_BASE3      (GFX_START_ROCKSSP +  4 * SP_PER_LINE +  2)
+#define GFX_SP_HARD_BASE4      (GFX_START_ROCKSSP +  4 * SP_PER_LINE +  3)
+#define GFX_SP_HARD_BASE5      (GFX_START_ROCKSSP +  4 * SP_PER_LINE +  4)
+#define GFX_SP_HARD_BASE6      (GFX_START_ROCKSSP +  4 * SP_PER_LINE +  5)
+#define GFX_SP_CHIP_UPPER      (GFX_START_ROCKSSP +  4 * SP_PER_LINE +  6)
+#define GFX_SP_CHIP_LOWER      (GFX_START_ROCKSSP +  4 * SP_PER_LINE +  7)
+
+#define GFX_INVISIBLE_STEEL_ON (GFX_START_ROCKSSP +  5 * SP_PER_LINE +  1)
+#define GFX_SAND_INVISIBLE_ON  (GFX_START_ROCKSSP +  5 * SP_PER_LINE +  2)
+#define GFX_INVISIBLE_STEEL    (GFX_START_ROCKSSP +  5 * SP_PER_LINE +  3)
+#define GFX_UNSICHTBAR_ON      (GFX_START_ROCKSSP +  5 * SP_PER_LINE +  5)
+#define GFX_SAND_INVISIBLE     (GFX_START_ROCKSSP +  5 * SP_PER_LINE +  6)
+#define GFX_UNSICHTBAR         (GFX_START_ROCKSSP +  5 * SP_PER_LINE +  7)
+
+#define GFX_SP_ZONK            (GFX_START_ROCKSSP +  6 * SP_PER_LINE +  0)
+
+#define GFX_EM_KEY_1           (GFX_START_ROCKSSP +  6 * SP_PER_LINE +  4)
+#define GFX_EM_KEY_2           (GFX_START_ROCKSSP +  6 * SP_PER_LINE +  5)
+#define GFX_EM_KEY_3           (GFX_START_ROCKSSP +  6 * SP_PER_LINE +  6)
+#define GFX_EM_KEY_4           (GFX_START_ROCKSSP +  6 * SP_PER_LINE +  7)
+#define GFX_EM_GATE_1          (GFX_START_ROCKSSP +  7 * SP_PER_LINE +  0)
+#define GFX_EM_GATE_2          (GFX_START_ROCKSSP +  7 * SP_PER_LINE +  1)
+#define GFX_EM_GATE_3          (GFX_START_ROCKSSP +  7 * SP_PER_LINE +  2)
+#define GFX_EM_GATE_4          (GFX_START_ROCKSSP +  7 * SP_PER_LINE +  3)
+#define GFX_EM_GATE_1X         (GFX_START_ROCKSSP +  7 * SP_PER_LINE +  4)
+#define GFX_EM_GATE_2X         (GFX_START_ROCKSSP +  7 * SP_PER_LINE +  5)
+#define GFX_EM_GATE_3X         (GFX_START_ROCKSSP +  7 * SP_PER_LINE +  6)
+#define GFX_EM_GATE_4X         (GFX_START_ROCKSSP +  7 * SP_PER_LINE +  7)
+
+#define GFX_MURPHY_GO_LEFT     (GFX_START_ROCKSSP +  0 * SP_PER_LINE +  8)
+#define GFX_MURPHY_ANY_LEFT    (GFX_START_ROCKSSP +  0 * SP_PER_LINE +  9)
+#define GFX_MURPHY_GO_RIGHT    (GFX_START_ROCKSSP +  0 * SP_PER_LINE + 11)
+#define GFX_MURPHY_ANY_RIGHT   (GFX_START_ROCKSSP +  0 * SP_PER_LINE + 12)
+#define GFX_MURPHY_SNAP_UP     (GFX_START_ROCKSSP +  0 * SP_PER_LINE + 14)
+#define GFX_MURPHY_SNAP_DOWN   (GFX_START_ROCKSSP +  0 * SP_PER_LINE + 15)
+#define GFX_MURPHY_SNAP_RIGHT  (GFX_START_ROCKSSP +  1 * SP_PER_LINE +  8)
+#define GFX_MURPHY_SNAP_LEFT   (GFX_START_ROCKSSP +  1 * SP_PER_LINE +  9)
+#define GFX_MURPHY_PUSH_RIGHT  (GFX_START_ROCKSSP +  1 * SP_PER_LINE + 10)
+#define GFX_MURPHY_PUSH_LEFT   (GFX_START_ROCKSSP +  1 * SP_PER_LINE + 11)
+
+#define GFX_SP_BUG_WARNING     (GFX_START_ROCKSSP +  2 * SP_PER_LINE + 15)
+#define GFX_SP_EXPLODE_EMPTY   (GFX_START_ROCKSSP +  3 * SP_PER_LINE +  8)
+#define GFX_SP_EXPLODE_INFOTRON        (GFX_START_ROCKSSP +  4 * SP_PER_LINE +  8)
+#define GFX_SP_BUG_ACTIVE      (GFX_START_ROCKSSP +  6 * SP_PER_LINE +  8)
+#define GFX_SP_SNIKSNAK_LEFT   (GFX_START_ROCKSSP +  8 * SP_PER_LINE +  8)
+#define GFX_SP_SNIKSNAK_RIGHT  (GFX_START_ROCKSSP +  8 * SP_PER_LINE + 12)
+#define GFX_SP_SNIKSNAK_UP     (GFX_START_ROCKSSP +  9 * SP_PER_LINE +  8)
+#define GFX_SP_SNIKSNAK_DOWN   (GFX_START_ROCKSSP +  9 * SP_PER_LINE + 12)
+
+#define GFX2_SP_ELECTRON       (GFX_START_ROCKSSP + 10 * SP_PER_LINE +  8)
+#define GFX2_SP_TERMINAL       (GFX_START_ROCKSSP + 11 * SP_PER_LINE +  8)
+#define GFX2_SP_TERMINAL_ACTIVE        (GFX_START_ROCKSSP + 12 * SP_PER_LINE +  8)
+
+#define GFX_SP_MURPHY_CLONE    (GFX_START_ROCKSSP +  0 * SP_PER_LINE +  3)
+
+/* graphics from "RocksDC" */
+#define GFX_BELT1_MIDDLE       (GFX_START_ROCKSDC +  0 * DC_PER_LINE +  0)
+#define GFX_BELT1_LEFT         (GFX_START_ROCKSDC +  1 * DC_PER_LINE +  0)
+#define GFX_BELT1_RIGHT                (GFX_START_ROCKSDC +  2 * DC_PER_LINE +  0)
+#define GFX_BELT2_MIDDLE       (GFX_START_ROCKSDC +  3 * DC_PER_LINE +  0)
+#define GFX_BELT2_LEFT         (GFX_START_ROCKSDC +  4 * DC_PER_LINE +  0)
+#define GFX_BELT2_RIGHT                (GFX_START_ROCKSDC +  5 * DC_PER_LINE +  0)
+#define GFX_BELT3_MIDDLE       (GFX_START_ROCKSDC +  6 * DC_PER_LINE +  0)
+#define GFX_BELT3_LEFT         (GFX_START_ROCKSDC +  7 * DC_PER_LINE +  0)
+#define GFX_BELT3_RIGHT                (GFX_START_ROCKSDC +  8 * DC_PER_LINE +  0)
+#define GFX_BELT4_MIDDLE       (GFX_START_ROCKSDC +  9 * DC_PER_LINE +  0)
+#define GFX_BELT4_LEFT         (GFX_START_ROCKSDC + 10 * DC_PER_LINE +  0)
+#define GFX_BELT4_RIGHT                (GFX_START_ROCKSDC + 11 * DC_PER_LINE +  0)
+#define GFX_BELT1_SWITCH_LEFT  (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  0)
+#define GFX_BELT2_SWITCH_LEFT  (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  1)
+#define GFX_BELT3_SWITCH_LEFT  (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  2)
+#define GFX_BELT4_SWITCH_LEFT  (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  3)
+#define GFX_BELT1_SWITCH_MIDDLE        (GFX_START_ROCKSDC + 13 * DC_PER_LINE +  0)
+#define GFX_BELT2_SWITCH_MIDDLE        (GFX_START_ROCKSDC + 13 * DC_PER_LINE +  1)
+#define GFX_BELT3_SWITCH_MIDDLE        (GFX_START_ROCKSDC + 13 * DC_PER_LINE +  2)
+#define GFX_BELT4_SWITCH_MIDDLE        (GFX_START_ROCKSDC + 13 * DC_PER_LINE +  3)
+#define GFX_BELT1_SWITCH_RIGHT (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  0)
+#define GFX_BELT2_SWITCH_RIGHT (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  1)
+#define GFX_BELT3_SWITCH_RIGHT (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  2)
+#define GFX_BELT4_SWITCH_RIGHT (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  3)
+
+#define GFX_SWITCHGATE_SWITCH_1        (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  4)
+#define GFX_SWITCHGATE_SWITCH_2        (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  5)
+#define GFX_LIGHT_SWITCH_OFF   (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  6)
+#define GFX_LIGHT_SWITCH_ON    (GFX_START_ROCKSDC + 12 * DC_PER_LINE +  7)
+#define GFX_TIMEGATE_SWITCH    (GFX_START_ROCKSDC + 15 * DC_PER_LINE +  0)
+
+#define GFX_ENVELOPE           (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  4)
+#define GFX_SIGN_EXCLAMATION   (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  5)
+#define GFX_SIGN_STOP          (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  6)
+#define GFX_LANDMINE           (GFX_START_ROCKSDC + 14 * DC_PER_LINE +  7)
+#define GFX_STEEL_SLANTED      (GFX_START_ROCKSDC + 15 * DC_PER_LINE +  5)
+
+#define GFX_EXTRA_TIME         (GFX_START_ROCKSDC +  0 * DC_PER_LINE +  8)
+#define GFX_SHIELD_ACTIVE      (GFX_START_ROCKSDC +  1 * DC_PER_LINE +  8)
+#define GFX_SHIELD_PASSIVE     (GFX_START_ROCKSDC +  2 * DC_PER_LINE +  8)
+#define GFX_MOLE_DOWN          (GFX_START_ROCKSDC +  3 * DC_PER_LINE +  8)
+#define GFX_MOLE_UP            (GFX_START_ROCKSDC +  3 * DC_PER_LINE + 12)
+#define GFX_MOLE_LEFT          (GFX_START_ROCKSDC +  4 * DC_PER_LINE +  8)
+#define GFX_MOLE_RIGHT         (GFX_START_ROCKSDC +  4 * DC_PER_LINE + 12)
+#define GFX_SWITCHGATE_CLOSED  (GFX_START_ROCKSDC +  5 * DC_PER_LINE +  8)
+#define GFX_SWITCHGATE_OPEN    (GFX_START_ROCKSDC +  5 * DC_PER_LINE + 12)
+#define GFX_TIMEGATE_CLOSED    (GFX_START_ROCKSDC +  6 * DC_PER_LINE +  8)
+#define GFX_TIMEGATE_OPEN      (GFX_START_ROCKSDC +  6 * DC_PER_LINE + 12)
+#define GFX_BALLOON_SEND_LEFT  (GFX_START_ROCKSDC +  7 * DC_PER_LINE +  8)
+#define GFX_BALLOON_SEND_RIGHT (GFX_START_ROCKSDC +  7 * DC_PER_LINE +  9)
+#define GFX_BALLOON_SEND_UP    (GFX_START_ROCKSDC +  7 * DC_PER_LINE + 10)
+#define GFX_BALLOON_SEND_DOWN  (GFX_START_ROCKSDC +  7 * DC_PER_LINE + 11)
+#define GFX_BALLOON            (GFX_START_ROCKSDC +  7 * DC_PER_LINE + 12)
+#define GFX_BALLOON_SEND_ANY   (GFX_START_ROCKSDC +  0 * DC_PER_LINE + 15)
+
+#define GFX_EMC_STEEL_WALL_1   (GFX_START_ROCKSDC +  0 * DC_PER_LINE + 14)
+#define GFX_EMC_STEEL_WALL_2   (GFX_START_ROCKSDC +  0 * DC_PER_LINE + 14)
+#define GFX_EMC_STEEL_WALL_3   (GFX_START_ROCKSDC +  0 * DC_PER_LINE + 14)
+#define GFX_EMC_STEEL_WALL_4   (GFX_START_ROCKSDC +  0 * DC_PER_LINE + 14)
+#define GFX_EMC_WALL_1         (GFX_START_ROCKSDC +  6 * DC_PER_LINE + 13)
+#define GFX_EMC_WALL_2         (GFX_START_ROCKSDC +  6 * DC_PER_LINE + 14)
+#define GFX_EMC_WALL_3         (GFX_START_ROCKSDC +  6 * DC_PER_LINE + 15)
+#define GFX_EMC_WALL_4         (GFX_START_ROCKSDC +  1 * DC_PER_LINE + 14)
+#define GFX_EMC_WALL_5         (GFX_START_ROCKSDC +  1 * DC_PER_LINE + 15)
+#define GFX_EMC_WALL_6         (GFX_START_ROCKSDC +  2 * DC_PER_LINE + 14)
+#define GFX_EMC_WALL_7         (GFX_START_ROCKSDC +  2 * DC_PER_LINE + 15)
+#define GFX_EMC_WALL_8         (GFX_START_ROCKSDC +  1 * DC_PER_LINE + 14)
+
+/* graphics from "RocksMore" */
+#define GFX_ARROW_BLUE_LEFT    (GFX_START_ROCKSMORE +  0 * MORE_PER_LINE +  0)
+#define GFX_ARROW_BLUE_RIGHT   (GFX_START_ROCKSMORE +  0 * MORE_PER_LINE +  1)
+#define GFX_ARROW_BLUE_UP      (GFX_START_ROCKSMORE +  0 * MORE_PER_LINE +  2)
+#define GFX_ARROW_BLUE_DOWN    (GFX_START_ROCKSMORE +  0 * MORE_PER_LINE +  3)
+#define GFX_ARROW_RED_LEFT     (GFX_START_ROCKSMORE +  1 * MORE_PER_LINE +  0)
+#define GFX_ARROW_RED_RIGHT    (GFX_START_ROCKSMORE +  1 * MORE_PER_LINE +  1)
+#define GFX_ARROW_RED_UP       (GFX_START_ROCKSMORE +  1 * MORE_PER_LINE +  2)
+#define GFX_ARROW_RED_DOWN     (GFX_START_ROCKSMORE +  1 * MORE_PER_LINE +  3)
+#define GFX_SCROLLBAR_BLUE     (GFX_START_ROCKSMORE +  2 * MORE_PER_LINE +  0)
+#define GFX_SCROLLBAR_RED      (GFX_START_ROCKSMORE +  2 * MORE_PER_LINE +  1)
+#define GFX_PEARL              (GFX_START_ROCKSMORE +  3 * MORE_PER_LINE +  0)
+#define GFX_CRYSTAL            (GFX_START_ROCKSMORE +  3 * MORE_PER_LINE +  1)
+#define GFX_WALL_PEARL         (GFX_START_ROCKSMORE +  3 * MORE_PER_LINE +  2)
+#define GFX_WALL_CRYSTAL       (GFX_START_ROCKSMORE +  3 * MORE_PER_LINE +  3)
+#define GFX_PEARL_BREAKING     (GFX_START_ROCKSMORE +  4 * MORE_PER_LINE +  0)
+#define GFX_SPRING             (GFX_START_ROCKSMORE +  5 * MORE_PER_LINE +  0)
+#define GFX_TUBE_RIGHT_DOWN    (GFX_START_ROCKSMORE +  5 * MORE_PER_LINE +  1)
+#define GFX_TUBE_HORIZ_DOWN    (GFX_START_ROCKSMORE +  5 * MORE_PER_LINE +  2)
+#define GFX_TUBE_LEFT_DOWN     (GFX_START_ROCKSMORE +  5 * MORE_PER_LINE +  3)
+#define GFX_TUBE_HORIZONTAL    (GFX_START_ROCKSMORE +  6 * MORE_PER_LINE +  0)
+#define GFX_TUBE_VERT_RIGHT    (GFX_START_ROCKSMORE +  6 * MORE_PER_LINE +  1)
+#define GFX_TUBE_CROSS         (GFX_START_ROCKSMORE +  6 * MORE_PER_LINE +  2)
+#define GFX_TUBE_VERT_LEFT     (GFX_START_ROCKSMORE +  6 * MORE_PER_LINE +  3)
+#define GFX_TUBE_VERTICAL      (GFX_START_ROCKSMORE +  7 * MORE_PER_LINE +  0)
+#define GFX_TUBE_RIGHT_UP      (GFX_START_ROCKSMORE +  7 * MORE_PER_LINE +  1)
+#define GFX_TUBE_HORIZ_UP      (GFX_START_ROCKSMORE +  7 * MORE_PER_LINE +  2)
+#define GFX_TUBE_LEFT_UP       (GFX_START_ROCKSMORE +  7 * MORE_PER_LINE +  3)
+
+#define GFX_TRAP_INACTIVE      (GFX_START_ROCKSMORE +  0 * MORE_PER_LINE +  4)
+#define GFX_TRAP_ACTIVE                (GFX_START_ROCKSMORE +  0 * MORE_PER_LINE +  7)
+#define GFX_BD_WALL            (GFX_START_ROCKSMORE +  1 * MORE_PER_LINE +  4)
+#define GFX_BD_ROCK            (GFX_START_ROCKSMORE +  2 * MORE_PER_LINE +  4)
+#define GFX_DX_SUPABOMB                (GFX_START_ROCKSMORE +  1 * MORE_PER_LINE +  7)
+
+/* graphics from "RocksFont" */
+#define GFX_CHAR_START         (GFX_START_ROCKSFONT)
+#define GFX_CHAR_ASCII0                (GFX_CHAR_START - 32)
+#define GFX_CHAR_AUSRUF                (GFX_CHAR_ASCII0 + 33)
+#define GFX_CHAR_ZOLL          (GFX_CHAR_ASCII0 + 34)
+#define GFX_CHAR_DOLLAR                (GFX_CHAR_ASCII0 + 36)
+#define GFX_CHAR_PROZ          (GFX_CHAR_ASCII0 + 37)
+#define GFX_CHAR_APOSTR                (GFX_CHAR_ASCII0 + 39)
+#define GFX_CHAR_KLAMM1                (GFX_CHAR_ASCII0 + 40)
+#define GFX_CHAR_KLAMM2                (GFX_CHAR_ASCII0 + 41)
+#define GFX_CHAR_PLUS          (GFX_CHAR_ASCII0 + 43)
+#define GFX_CHAR_KOMMA         (GFX_CHAR_ASCII0 + 44)
+#define GFX_CHAR_MINUS         (GFX_CHAR_ASCII0 + 45)
+#define GFX_CHAR_PUNKT         (GFX_CHAR_ASCII0 + 46)
+#define GFX_CHAR_SLASH         (GFX_CHAR_ASCII0 + 47)
+#define GFX_CHAR_0             (GFX_CHAR_ASCII0 + 48)
+#define GFX_CHAR_9             (GFX_CHAR_ASCII0 + 57)
+#define GFX_CHAR_DOPPEL                (GFX_CHAR_ASCII0 + 58)
+#define GFX_CHAR_SEMIKL                (GFX_CHAR_ASCII0 + 59)
+#define GFX_CHAR_LT            (GFX_CHAR_ASCII0 + 60)
+#define GFX_CHAR_GLEICH                (GFX_CHAR_ASCII0 + 61)
+#define GFX_CHAR_GT            (GFX_CHAR_ASCII0 + 62)
+#define GFX_CHAR_FRAGE         (GFX_CHAR_ASCII0 + 63)
+#define GFX_CHAR_AT            (GFX_CHAR_ASCII0 + 64)
+#define GFX_CHAR_A             (GFX_CHAR_ASCII0 + 65)
+#define GFX_CHAR_Z             (GFX_CHAR_ASCII0 + 90)
+#define GFX_CHAR_AE            (GFX_CHAR_ASCII0 + 91)
+#define GFX_CHAR_OE            (GFX_CHAR_ASCII0 + 92)
+#define GFX_CHAR_UE            (GFX_CHAR_ASCII0 + 93)
+#define GFX_CHAR_COPY          (GFX_CHAR_ASCII0 + 94)
+#define GFX_CHAR_END           (GFX_CHAR_START + 79)
+
+/* new elements which still have no graphic */
+#define GFX_DOOR_WHITE         GFX_CHAR_FRAGE
+#define GFX_DOOR_WHITE_GRAY    GFX_CHAR_FRAGE
+#define GFX_KEY_WHITE          GFX_CHAR_FRAGE
+#define GFX_SIGN_RADIOACTIVITY GFX_CHAR_FRAGE
+#define GFX_SIGN_WHEELCHAIR    GFX_CHAR_FRAGE
+#define GFX_SIGN_PARKING       GFX_CHAR_FRAGE
+#define GFX_SIGN_ONEWAY                GFX_CHAR_FRAGE
+#define GFX_SIGN_HEART         GFX_CHAR_FRAGE
+#define GFX_SIGN_TRIANGLE      GFX_CHAR_FRAGE
+#define GFX_SIGN_ROUND         GFX_CHAR_FRAGE
+#define GFX_SIGN_EXIT          GFX_CHAR_FRAGE
+#define GFX_SIGN_YINYANG       GFX_CHAR_FRAGE
+#define GFX_SIGN_OTHER         GFX_CHAR_FRAGE
+#define GFX_DX_UNKNOWN_15      GFX_CHAR_FRAGE
+#define GFX_DX_UNKNOWN_42      GFX_CHAR_FRAGE
+
+
+/* the names of the sounds */
+#define SND_AMOEBE             0
+#define SND_ANTIGRAV           1
+#define SND_AUTSCH             2
+#define SND_BLURB              3
+#define SND_BONG               4
+#define SND_BUING              5
+#define SND_DENG               6
+#define SND_FUEL               7
+#define SND_GONG               8
+#define SND_HALLOFFAME         9
+#define SND_HOLZ               10
+#define SND_HUI                        11
+#define SND_KABUMM             12
+#define SND_KINK               13
+#define SND_KLAPPER            14
+#define SND_KLING              15
+#define SND_KLOPF              16
+#define SND_KLUMPF             17
+#define SND_KNACK              18
+#define SND_KNURK              19
+#define SND_KRACH              20
+#define SND_LACHEN             21
+#define SND_LASER              22
+#define SND_MIEP               23
+#define SND_NJAM               24
+#define SND_OEFFNEN            25
+#define SND_PLING              26
+#define SND_PONG               27
+#define SND_PUSCH              28
+#define SND_QUIEK              29
+#define SND_QUIRK              30
+#define SND_RHYTHMLOOP         31
+#define SND_ROAAAR             32
+#define SND_ROEHR              33
+#define SND_RUMMS              34
+#define SND_SCHLOPP            35
+#define SND_SCHLURF            36
+#define SND_SCHRFF             37
+#define SND_SCHWIRR            38
+#define SND_SIRR               39
+#define SND_SLURP              40
+#define SND_SPROING            41
+#define SND_WARNTON            42
+#define SND_WHOOSH             43
+#define SND_ZISCH              44
+#define SND_SP_BASE            45
+#define SND_SP_INFOTRON                46
+#define SND_SP_ZONKDOWN                47
+#define SND_SP_ZONKPUSH                48
+#define SND_SP_BUG             49
+#define SND_SP_BOOM            50
+#define SND_SP_BOOOM           51
+#define SND_SP_EXIT            52
+#define SND_EMPTY              53
+#define SND_GATE               54
+
+#define NUM_SOUNDS             55
+
+
+/* values for animation action types */
+#define GFX_ACTION_UNKNOWN             0
+#define GFX_ACTION_DEFAULT             1
+#define GFX_ACTION_WAITING             2
+#define GFX_ACTION_FALLING             3
+#define GFX_ACTION_MOVING              4
+#define GFX_ACTION_DIGGING             5
+#define GFX_ACTION_COLLECTING          6
+#define GFX_ACTION_PUSHING             7
+#define GFX_ACTION_PASSING             8
+#define GFX_ACTION_IMPACT              9
+#define GFX_ACTION_CRACKING            10
+#define GFX_ACTION_ACTIVATING          11
+#define GFX_ACTION_BURNING             12
+#define GFX_ACTION_OTHER               13
+
+#define NUM_GFX_ACTIONS                        14
+#define NUM_GFX_ACTIONS_MAPPED         7
+
+
+/* values for image configuration suffixes */
+#define GFX_ARG_XPOS                           0
+#define GFX_ARG_YPOS                           1
+#define GFX_ARG_FRAMES                         2
+#define GFX_ARG_DELAY                          3
+#define GFX_ARG_PINGPONG                       4
+#define GFX_ARG_PINGPONG2                      5
+#define GFX_ARG_REVERSE                                6
+#define GFX_ARG_GLOBAL_SYNC                    7
+#define GFX_ARG_VERTICAL                       8
+
+/* values for image configuration */
+#define IMG_EMPTY_SPACE                                0
+#define IMG_SAND                               1
+#define IMG_SAND_CRUMBLED                      2
+#define IMG_QUICKSAND_EMPTY                    3
+#define IMG_QUICKSAND_FULL                     4
+#define IMG_QUICKSAND_SLIPPING                 5
+#define IMG_STEELWALL                          6
+#define IMG_WALL                               7
+#define IMG_WALL_CRUMBLED                      8
+#define IMG_EMERALD                            9
+#define IMG_EMERALD_FALLING                    10
+#define IMG_DIAMOND                            11
+#define IMG_DIAMOND_FALLING                    12
+#define IMG_ROCK                               13
+#define IMG_ROCK_FALLING                       14
+#define IMG_ROCK_PUSHING                       15
+#define IMG_ACIDPOOL_TOPLEFT                   16
+#define IMG_ACIDPOOL_TOPRIGHT                  17
+#define IMG_ACIDPOOL_BOTTOMLEFT                        18
+#define IMG_ACIDPOOL_BOTTOM                    19
+#define IMG_ACIDPOOL_BOTTOMRIGHT               20
+#define IMG_ACID                               21
+#define IMG_KEY1                               22
+#define IMG_KEY2                               23
+#define IMG_KEY3                               24
+#define IMG_KEY4                               25
+#define IMG_GAMEOFLIFE                         26
+#define IMG_BIOMAZE                            27
+#define IMG_BOMB                               28
+#define IMG_NUT                                        29
+#define IMG_NUT_CRACKING                       30
+#define IMG_GATE1                              31
+#define IMG_GATE2                              32
+#define IMG_GATE3                              33
+#define IMG_GATE4                              34
+#define IMG_GATE1_GRAY                         35
+#define IMG_GATE2_GRAY                         36
+#define IMG_GATE3_GRAY                         37
+#define IMG_GATE4_GRAY                         38
+#define IMG_DYNAMITE                           39
+#define IMG_DYNAMITE_BURNING                   40
+#define IMG_SPACESHIP_RIGHT                    41
+#define IMG_SPACESHIP_UP                       42
+#define IMG_SPACESHIP_LEFT                     43
+#define IMG_SPACESHIP_DOWN                     44
+#define IMG_BUG_RIGHT                          45
+#define IMG_BUG_UP                             46
+#define IMG_BUG_LEFT                           47
+#define IMG_BUG_DOWN                           48
+#define IMG_PACMAN_RIGHT                       49
+#define IMG_PACMAN_UP                          50
+#define IMG_PACMAN_LEFT                                51
+#define IMG_PACMAN_DOWN                                52
+#define IMG_EXPLOSION                          53
+#define IMG_YAMYAM                             54
+#define IMG_YAMYAM_MOVING                      55
+#define IMG_ROBOT                              56
+#define IMG_ROBOT_WHEEL                                57
+#define IMG_AMOEBA_DROP                                58
+#define IMG_AMOEBA_CREATING                    59
+#define IMG_AMOEBA1                            60
+#define IMG_AMOEBA2                            61
+#define IMG_AMOEBA3                            62
+#define IMG_AMOEBA4                            63
+#define IMG_AMOEBA_DEAD1                       64
+#define IMG_AMOEBA_DEAD2                       65
+#define IMG_AMOEBA_DEAD3                       66
+#define IMG_AMOEBA_DEAD4                       67
+#define IMG_LAMP_OFF                           68
+#define IMG_LAMP_ON                            69
+#define IMG_TIME_ORB_FULL                      70
+#define IMG_TIME_ORB_EMPTY                     71
+#define IMG_BD_AMOEBA                          72
+#define IMG_SOKOBAN_OBJECT                     73
+#define IMG_SOKOBAN_FIELD_EMPTY                        74
+#define IMG_SOKOBAN_FIELD_FULL                 75
+#define IMG_MAGIC_WALL                         76
+#define IMG_MAGIC_WALL_ACTIVE                  77
+#define IMG_BD_MAGIC_WALL                      78
+#define IMG_BD_MAGIC_WALL_ACTIVE               79
+#define IMG_WALL_EMERALD                       80
+#define IMG_WALL_DIAMOND                       81
+#define IMG_WALL_EMERALD_RED                   82
+#define IMG_WALL_EMERALD_PURPLE                        83
+#define IMG_WALL_EMERALD_YELLOW                        84
+#define IMG_WALL_BD_DIAMOND                    85
+#define IMG_EMERALD_RED                                86
+#define IMG_EMERALD_RED_FALLING                        87
+#define IMG_EMERALD_PURPLE                     88
+#define IMG_EMERALD_PURPLE_FALLING             89
+#define IMG_EMERALD_YELLOW                     90
+#define IMG_EMERALD_YELLOW_FALLING             91
+#define IMG_WALL_GROWING_XY                    92
+#define IMG_WALL_GROWING_X                     93
+#define IMG_WALL_GROWING_Y                     94
+#define IMG_DYNABOMB_XL                                95
+#define IMG_BLACK_ORB                          96
+#define IMG_SPEED_PILL                         97
+#define IMG_BD_DIAMOND                         98
+#define IMG_BD_DIAMOND_FALLING                 99
+#define IMG_WALL_GROWING_RIGHT                 100
+#define IMG_WALL_GROWING_LEFT                  101
+#define IMG_EXIT_CLOSED                                102
+#define IMG_EXIT_OPENING                       103
+#define IMG_EXIT_OPEN                          104
+#define IMG_DARK_YAMYAM                                105
+#define IMG_DYNABOMB_BURNING                   106
+#define IMG_DYNABOMB_NR                                107
+#define IMG_DYNABOMB_SZ                                108
+#define IMG_ARROW_LEFT                         109
+#define IMG_ARROW_RIGHT                                110
+#define IMG_ARROW_UP                           111
+#define IMG_ARROW_DOWN                         112
+#define IMG_BD_BUTTERFLY                       113
+#define IMG_BD_BUTTERFLY_MOVING                        114
+#define IMG_BD_BUTTERFLY_RIGHT                 115
+#define IMG_BD_BUTTERFLY_UP                    116
+#define IMG_BD_BUTTERFLY_LEFT                  117
+#define IMG_BD_BUTTERFLY_DOWN                  118
+#define IMG_BD_FIREFLY                         119
+#define IMG_BD_FIREFLY_MOVING                  120
+#define IMG_BD_FIREFLY_RIGHT                   121
+#define IMG_BD_FIREFLY_UP                      122
+#define IMG_BD_FIREFLY_LEFT                    123
+#define IMG_BD_FIREFLY_DOWN                    124
+#define IMG_STEELWALL_TOPLEFT                  125
+#define IMG_STEELWALL_TOPRIGHT                 126
+#define IMG_STEELWALL_BOTTOMLEFT               127
+#define IMG_STEELWALL_BOTTOMRIGHT              128
+#define IMG_STEELWALL_HORIZONTAL               129
+#define IMG_INVISIBLE_STEELWALL_TOPLEFT                130
+#define IMG_INVISIBLE_STEELWALL_TOPRIGHT       131
+#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT     132
+#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT    133
+#define IMG_INVISIBLE_STEELWALL_HORIZONTAL     134
+#define IMG_PLAYER1_DOWN                       135
+#define IMG_PLAYER1_DOWN_MOVING                        136
+#define IMG_PLAYER1_DOWN_DIGGING               137
+#define IMG_PLAYER1_UP                         138
+#define IMG_PLAYER1_UP_MOVING                  139
+#define IMG_PLAYER1_UP_DIGGING                 140
+#define IMG_PLAYER1_LEFT                       141
+#define IMG_PLAYER1_LEFT_MOVING                        142
+#define IMG_PLAYER1_LEFT_DIGGING               143
+#define IMG_PLAYER1_LEFT_PUSHING               144
+#define IMG_PLAYER1_RIGHT                      145
+#define IMG_PLAYER1_RIGHT_MOVING               146
+#define IMG_PLAYER1_RIGHT_DIGGING              147
+#define IMG_PLAYER1_RIGHT_PUSHING              148
+#define IMG_PLAYER2_DOWN                       149
+#define IMG_PLAYER2_DOWN_MOVING                        150
+#define IMG_PLAYER2_DOWN_DIGGING               151
+#define IMG_PLAYER2_UP                         152
+#define IMG_PLAYER2_UP_MOVING                  153
+#define IMG_PLAYER2_UP_DIGGING                 154
+#define IMG_PLAYER2_LEFT                       155
+#define IMG_PLAYER2_LEFT_MOVING                        156
+#define IMG_PLAYER2_LEFT_DIGGING               157
+#define IMG_PLAYER2_LEFT_PUSHING               158
+#define IMG_PLAYER2_RIGHT                      159
+#define IMG_PLAYER2_RIGHT_MOVING               160
+#define IMG_PLAYER2_RIGHT_DIGGING              161
+#define IMG_PLAYER2_RIGHT_PUSHING              162
+#define IMG_PLAYER3_DOWN                       163
+#define IMG_PLAYER3_DOWN_MOVING                        164
+#define IMG_PLAYER3_DOWN_DIGGING               165
+#define IMG_PLAYER3_UP                         166
+#define IMG_PLAYER3_UP_MOVING                  167
+#define IMG_PLAYER3_UP_DIGGING                 168
+#define IMG_PLAYER3_LEFT                       169
+#define IMG_PLAYER3_LEFT_MOVING                        170
+#define IMG_PLAYER3_LEFT_DIGGING               171
+#define IMG_PLAYER3_LEFT_PUSHING               172
+#define IMG_PLAYER3_RIGHT                      173
+#define IMG_PLAYER3_RIGHT_MOVING               174
+#define IMG_PLAYER3_RIGHT_DIGGING              175
+#define IMG_PLAYER3_RIGHT_PUSHING              176
+#define IMG_PLAYER4_DOWN                       177
+#define IMG_PLAYER4_DOWN_MOVING                        178
+#define IMG_PLAYER4_DOWN_DIGGING               179
+#define IMG_PLAYER4_UP                         180
+#define IMG_PLAYER4_UP_MOVING                  181
+#define IMG_PLAYER4_UP_DIGGING                 182
+#define IMG_PLAYER4_LEFT                       183
+#define IMG_PLAYER4_LEFT_MOVING                        184
+#define IMG_PLAYER4_LEFT_DIGGING               185
+#define IMG_PLAYER4_LEFT_PUSHING               186
+#define IMG_PLAYER4_RIGHT                      187
+#define IMG_PLAYER4_RIGHT_MOVING               188
+#define IMG_PLAYER4_RIGHT_DIGGING              189
+#define IMG_PLAYER4_RIGHT_PUSHING              190
+#define IMG_WALL_GROWING_DOWN                  191
+#define IMG_WALL_GROWING_UP                    192
+#define IMG_SHIELD_NORMAL_ACTIVE               193
+#define IMG_SHIELD_DEADLY_ACTIVE               194
+#define IMG_PIG_DOWN                           195
+#define IMG_PIG_DOWN_MOVING                    196
+#define IMG_PIG_DOWN_EATING                    197
+#define IMG_PIG_UP                             198
+#define IMG_PIG_UP_MOVING                      199
+#define IMG_PIG_UP_EATING                      200
+#define IMG_PIG_LEFT                           201
+#define IMG_PIG_LEFT_MOVING                    202
+#define IMG_PIG_LEFT_EATING                    203
+#define IMG_PIG_RIGHT                          204
+#define IMG_PIG_RIGHT_MOVING                   205
+#define IMG_PIG_RIGHT_EATING                   206
+#define IMG_DRAGON_DOWN                                207
+#define IMG_DRAGON_DOWN_MOVING                 208
+#define IMG_DRAGON_DOWN_ATTACKING              209
+#define IMG_DRAGON_UP                          210
+#define IMG_DRAGON_UP_MOVING                   211
+#define IMG_DRAGON_UP_ATTACKING                        212
+#define IMG_DRAGON_LEFT                                213
+#define IMG_DRAGON_LEFT_MOVING                 214
+#define IMG_DRAGON_LEFT_ATTACKING              215
+#define IMG_DRAGON_RIGHT                       216
+#define IMG_DRAGON_RIGHT_MOVING                        217
+#define IMG_DRAGON_RIGHT_ATTACKING             218
+#define IMG_MOLE_DOWN                          219
+#define IMG_MOLE_DOWN_MOVING                   220
+#define IMG_MOLE_DOWN_DIGGING                  221
+#define IMG_MOLE_UP                            222
+#define IMG_MOLE_UP_MOVING                     223
+#define IMG_MOLE_UP_DIGGING                    224
+#define IMG_MOLE_LEFT                          225
+#define IMG_MOLE_LEFT_MOVING                   226
+#define IMG_MOLE_LEFT_DIGGING                  227
+#define IMG_MOLE_RIGHT                         228
+#define IMG_MOLE_RIGHT_MOVING                  229
+#define IMG_MOLE_RIGHT_DIGGING                 230
+#define IMG_PENGUIN_DOWN                       231
+#define IMG_PENGUIN_DOWN_MOVING                        232
+#define IMG_PENGUIN_UP                         233
+#define IMG_PENGUIN_UP_MOVING                  234
+#define IMG_PENGUIN_LEFT                       235
+#define IMG_PENGUIN_LEFT_MOVING                        236
+#define IMG_PENGUIN_RIGHT                      237
+#define IMG_PENGUIN_RIGHT_MOVING               238
+#define IMG_SATELLITE                          239
+#define IMG_SATELLITE_MOVING                   240
+#define IMG_ACID_SPLASHING_LEFT                        241
+#define IMG_ACID_SPLASHING_RIGHT               242
+#define IMG_SPARK_BLUE                         243
+#define IMG_SPARK_WHITE                                244
+#define IMG_FLAMES_LEFT1                       245
+#define IMG_FLAMES_LEFT2                       246
+#define IMG_FLAMES_LEFT3                       247
+#define IMG_FLAMES_RIGHT1                      248
+#define IMG_FLAMES_RIGHT2                      249
+#define IMG_FLAMES_RIGHT3                      250
+#define IMG_FLAMES_UP1                         251
+#define IMG_FLAMES_UP2                         252
+#define IMG_FLAMES_UP3                         253
+#define IMG_FLAMES_DOWN1                       254
+#define IMG_FLAMES_DOWN2                       255
+#define IMG_FLAMES_DOWN3                       256
+#define IMG_SP_EMPTY_SPACE                     257
+#define IMG_SP_ZONK                            258
+#define IMG_SP_ZONK_FALLING                    259
+#define IMG_SP_ZONK_PUSHING                    260
+#define IMG_SP_BASE                            261
+#define IMG_SP_MURPHY                          262
+#define IMG_SP_MURPHY_LEFT                     263
+#define IMG_SP_MURPHY_LEFT_MOVING              264
+#define IMG_SP_MURPHY_LEFT_DIGGING             265
+#define IMG_SP_MURPHY_LEFT_PUSHING             266
+#define IMG_SP_MURPHY_LEFT_SNAPPING            267
+#define IMG_SP_MURPHY_RIGHT                    268
+#define IMG_SP_MURPHY_RIGHT_MOVING             269
+#define IMG_SP_MURPHY_RIGHT_DIGGING            270
+#define IMG_SP_MURPHY_RIGHT_PUSHING            271
+#define IMG_SP_MURPHY_RIGHT_SNAPPING           272
+#define IMG_SP_MURPHY_UP                       273
+#define IMG_SP_MURPHY_UP_SNAPPING              274
+#define IMG_SP_MURPHY_DOWN                     275
+#define IMG_SP_MURPHY_DOWN_SNAPPING            276
+#define IMG_SP_MURPHY_CLONE                    277
+#define IMG_SP_INFOTRON                                278
+#define IMG_SP_INFOTRON_FALLING                        279
+#define IMG_SP_CHIP_SINGLE                     280
+#define IMG_SP_CHIP_LEFT                       281
+#define IMG_SP_CHIP_RIGHT                      282
+#define IMG_SP_CHIP_UPPER                      283
+#define IMG_SP_CHIP_LOWER                      284
+#define IMG_SP_HARD_GRAY                       285
+#define IMG_SP_HARD_GREEN                      286
+#define IMG_SP_HARD_BLUE                       287
+#define IMG_SP_HARD_RED                                288
+#define IMG_SP_HARD_YELLOW                     289
+#define IMG_SP_EXIT_CLOSED                     290
+#define IMG_SP_EXIT_OPEN                       291
+#define IMG_SP_DISK_ORANGE                     292
+#define IMG_SP_DISK_ORANGE_FALLING             293
+#define IMG_SP_DISK_ORANGE_PUSHING             294
+#define IMG_SP_DISK_YELLOW                     295
+#define IMG_SP_DISK_YELLOW_PUSHING             296
+#define IMG_SP_DISK_RED                                297
+#define IMG_SP_DISK_RED_COLLECTING             298
+#define IMG_SP_PORT1_RIGHT                     299
+#define IMG_SP_PORT1_DOWN                      300
+#define IMG_SP_PORT1_LEFT                      301
+#define IMG_SP_PORT1_UP                                302
+#define IMG_SP_PORT2_RIGHT                     303
+#define IMG_SP_PORT2_DOWN                      304
+#define IMG_SP_PORT2_LEFT                      305
+#define IMG_SP_PORT2_UP                                306
+#define IMG_SP_PORT_X                          307
+#define IMG_SP_PORT_Y                          308
+#define IMG_SP_PORT_XY                         309
+#define IMG_SP_SNIKSNAK                                310
+#define IMG_SP_SNIKSNAK_LEFT                   311
+#define IMG_SP_SNIKSNAK_RIGHT                  312
+#define IMG_SP_SNIKSNAK_UP                     313
+#define IMG_SP_SNIKSNAK_DOWN                   314
+#define IMG_SP_ELECTRON                                315
+#define IMG_SP_TERMINAL                                316
+#define IMG_SP_TERMINAL_ACTIVE                 317
+#define IMG_SP_BUGGY_BASE                      318
+#define IMG_SP_BUGGY_BASE_ACTIVATING           319
+#define IMG_SP_HARD_BASE1                      320
+#define IMG_SP_HARD_BASE2                      321
+#define IMG_SP_HARD_BASE3                      322
+#define IMG_SP_HARD_BASE4                      323
+#define IMG_SP_HARD_BASE5                      324
+#define IMG_SP_HARD_BASE6                      325
+#define IMG_INVISIBLE_STEELWALL                        326
+#define IMG_INVISIBLE_STEELWALL_ON             327
+#define IMG_INVISIBLE_SAND                     328
+#define IMG_INVISIBLE_SAND_ON                  329
+#define IMG_INVISIBLE_WALL                     330
+#define IMG_INVISIBLE_WALL_ON                  331
+#define IMG_EM_KEY1                            332
+#define IMG_EM_KEY2                            333
+#define IMG_EM_KEY3                            334
+#define IMG_EM_KEY4                            335
+#define IMG_EM_GATE1                           336
+#define IMG_EM_GATE2                           337
+#define IMG_EM_GATE3                           338
+#define IMG_EM_GATE4                           339
+#define IMG_EM_GATE1_GRAY                      340
+#define IMG_EM_GATE2_GRAY                      341
+#define IMG_EM_GATE3_GRAY                      342
+#define IMG_EM_GATE4_GRAY                      343
+#define IMG_SP_EXPLOSION                       344
+#define IMG_SP_EXPLOSION_INFOTRON              345
+#define IMG_CONVEYOR_BELT1_MIDDLE              346
+#define IMG_CONVEYOR_BELT1_MIDDLE_ACTIVE       347
+#define IMG_CONVEYOR_BELT1_LEFT                        348
+#define IMG_CONVEYOR_BELT1_LEFT_ACTIVE         349
+#define IMG_CONVEYOR_BELT1_RIGHT               350
+#define IMG_CONVEYOR_BELT1_RIGHT_ACTIVE                351
+#define IMG_CONVEYOR_BELT1_SWITCH_LEFT         352
+#define IMG_CONVEYOR_BELT1_SWITCH_MIDDLE       353
+#define IMG_CONVEYOR_BELT1_SWITCH_RIGHT                354
+#define IMG_CONVEYOR_BELT2_MIDDLE              355
+#define IMG_CONVEYOR_BELT2_MIDDLE_ACTIVE       356
+#define IMG_CONVEYOR_BELT2_LEFT                        357
+#define IMG_CONVEYOR_BELT2_LEFT_ACTIVE         358
+#define IMG_CONVEYOR_BELT2_RIGHT               359
+#define IMG_CONVEYOR_BELT2_RIGHT_ACTIVE                360
+#define IMG_CONVEYOR_BELT2_SWITCH_LEFT         361
+#define IMG_CONVEYOR_BELT2_SWITCH_MIDDLE       362
+#define IMG_CONVEYOR_BELT2_SWITCH_RIGHT                363
+#define IMG_CONVEYOR_BELT3_MIDDLE              364
+#define IMG_CONVEYOR_BELT3_MIDDLE_ACTIVE       365
+#define IMG_CONVEYOR_BELT3_LEFT                        366
+#define IMG_CONVEYOR_BELT3_LEFT_ACTIVE         367
+#define IMG_CONVEYOR_BELT3_RIGHT               368
+#define IMG_CONVEYOR_BELT3_RIGHT_ACTIVE                369
+#define IMG_CONVEYOR_BELT3_SWITCH_LEFT         370
+#define IMG_CONVEYOR_BELT3_SWITCH_MIDDLE       371
+#define IMG_CONVEYOR_BELT3_SWITCH_RIGHT                372
+#define IMG_CONVEYOR_BELT4_MIDDLE              373
+#define IMG_CONVEYOR_BELT4_MIDDLE_ACTIVE       374
+#define IMG_CONVEYOR_BELT4_LEFT                        375
+#define IMG_CONVEYOR_BELT4_LEFT_ACTIVE         376
+#define IMG_CONVEYOR_BELT4_RIGHT               377
+#define IMG_CONVEYOR_BELT4_RIGHT_ACTIVE                378
+#define IMG_CONVEYOR_BELT4_SWITCH_LEFT         379
+#define IMG_CONVEYOR_BELT4_SWITCH_MIDDLE       380
+#define IMG_CONVEYOR_BELT4_SWITCH_RIGHT                381
+#define IMG_SWITCHGATE_SWITCH_UP               382
+#define IMG_SWITCHGATE_SWITCH_DOWN             383
+#define IMG_LIGHT_SWITCH_OFF                   384
+#define IMG_LIGHT_SWITCH_ON                    385
+#define IMG_TIMEGATE_WHEEL                     386
+#define IMG_TIMEGATE_WHEEL_ACTIVE              387
+#define IMG_ENVELOPE                           388
+#define IMG_SIGN_EXCLAMATION                   389
+#define IMG_SIGN_STOP                          390
+#define IMG_LANDMINE                           391
+#define IMG_STEELWALL_SLANTED                  392
+#define IMG_EXTRA_TIME                         393
+#define IMG_SHIELD_DEADLY                      394
+#define IMG_SHIELD_NORMAL                      395
+#define IMG_SWITCHGATE_CLOSED                  396
+#define IMG_SWITCHGATE_OPENING                 397
+#define IMG_SWITCHGATE_OPEN                    398
+#define IMG_SWITCHGATE_CLOSING                 399
+#define IMG_TIMEGATE_CLOSED                    400
+#define IMG_TIMEGATE_OPENING                   401
+#define IMG_TIMEGATE_OPEN                      402
+#define IMG_TIMEGATE_CLOSING                   403
+#define IMG_BALLOON                            404
+#define IMG_BALLOON_MOVING                     405
+#define IMG_BALLOON_WINDROSE_LEFT              406
+#define IMG_BALLOON_WINDROSE_RIGHT             407
+#define IMG_BALLOON_WINDROSE_UP                        408
+#define IMG_BALLOON_WINDROSE_DOWN              409
+#define IMG_BALLOON_WINDROSE_ALL               410
+#define IMG_EMC_STEELWALL1                     411
+#define IMG_EMC_STEELWALL2                     412
+#define IMG_EMC_STEELWALL3                     413
+#define IMG_EMC_STEELWALL4                     414
+#define IMG_EMC_WALL_PILLAR_UPPER              415
+#define IMG_EMC_WALL_PILLAR_MIDDLE             416
+#define IMG_EMC_WALL_PILLAR_LOWER              417
+#define IMG_EMC_WALL4                          418
+#define IMG_EMC_WALL5                          419
+#define IMG_EMC_WALL6                          420
+#define IMG_EMC_WALL7                          421
+#define IMG_EMC_WALL8                          422
+#define IMG_ARROW_BLUE_LEFT                    423
+#define IMG_ARROW_BLUE_RIGHT                   424
+#define IMG_ARROW_BLUE_UP                      425
+#define IMG_ARROW_BLUE_DOWN                    426
+#define IMG_ARROW_RED_LEFT                     427
+#define IMG_ARROW_RED_RIGHT                    428
+#define IMG_ARROW_RED_UP                       429
+#define IMG_ARROW_RED_DOWN                     430
+#define IMG_SCROLLBAR_BLUE                     431
+#define IMG_SCROLLBAR_RED                      432
+#define IMG_SCROLLBAR_GREEN                    433
+#define IMG_SCROLLBAR_YELLOW                   434
+#define IMG_PEARL                              435
+#define IMG_PEARL_BREAKING                     436
+#define IMG_CRYSTAL                            437
+#define IMG_WALL_PEARL                         438
+#define IMG_WALL_CRYSTAL                       439
+#define IMG_SPRING                             440
+#define IMG_TUBE_RIGHT_DOWN                    441
+#define IMG_TUBE_HORIZONTAL_DOWN               442
+#define IMG_TUBE_LEFT_DOWN                     443
+#define IMG_TUBE_HORIZONTAL                    444
+#define IMG_TUBE_VERTICAL_RIGHT                        445
+#define IMG_TUBE_ALL                           446
+#define IMG_TUBE_VERTICAL_LEFT                 447
+#define IMG_TUBE_VERTICAL                      448
+#define IMG_TUBE_RIGHT_UP                      449
+#define IMG_TUBE_HORIZONTAL_UP                 450
+#define IMG_TUBE_LEFT_UP                       451
+#define IMG_TRAP_INACTIVE                      452
+#define IMG_TRAP_ACTIVE                                453
+#define IMG_TRAP_ACTIVATING                    454
+#define IMG_BD_WALL                            455
+#define IMG_BD_ROCK                            456
+#define IMG_BD_ROCK_FALLING                    457
+#define IMG_BD_ROCK_PUSHING                    458
+#define IMG_DX_BOMB                            459
+
+#define NUM_IMAGE_FILES                                460
+
+
+/* values for sound configuration suffixes */
+/* (currently none) */
+
+/* values for sound configuration */
+#define SND_BD_EMPTY_SPACE_DIGGING             0
+#define SND_BD_SAND_DIGGING                    1
+#define SND_BD_DIAMOND_COLLECTING              2
+#define SND_BD_DIAMOND_IMPACT                  3
+#define SND_BD_ROCK_PUSHING                    4
+#define SND_BD_ROCK_IMPACT                     5
+#define SND_BD_MAGIC_WALL_ACTIVATING           6
+#define SND_BD_MAGIC_WALL_ACTIVE               7
+#define SND_BD_MAGIC_WALL_CHANGING             8
+#define SND_BD_AMOEBA_WAITING                  9
+#define SND_BD_AMOEBA_CREATING                 10
+#define SND_BD_AMOEBA_TURNING_TO_GEM           11
+#define SND_BD_AMOEBA_TURNING_TO_ROCK          12
+#define SND_BD_BUTTERFLY_MOVING                        13
+#define SND_BD_BUTTERFLY_WAITING               14
+#define SND_BD_FIREFLY_MOVING                  15
+#define SND_BD_FIREFLY_WAITING                 16
+#define SND_BD_EXIT_PASSING                    17
+#define SND_SP_EMPTY_SPACE_DIGGING             18
+#define SND_SP_BASE_DIGGING                    19
+#define SND_SP_BUGGY_BASE_DIGGING              20
+#define SND_SP_BUGGY_BASE_ACTIVATING           21
+#define SND_SP_INFOTRON_COLLECTING             22
+#define SND_SP_INFOTRON_IMPACT                 23
+#define SND_SP_ZONK_PUSHING                    24
+#define SND_SP_ZONK_IMPACT                     25
+#define SND_SP_DISK_RED_COLLECTING             26
+#define SND_SP_DISK_ORANGE_PUSHING             27
+#define SND_SP_DISK_YELLOW_PUSHING             28
+#define SND_SP_PORT_PASSING                    29
+#define SND_SP_EXIT_PASSING                    30
+#define SND_SP_ELEMENT_EXPLODING               31
+#define SND_SP_SNIKSNAK_MOVING                 32
+#define SND_SP_SNIKSNAK_WAITING                        33
+#define SND_SP_ELECTRON_MOVING                 34
+#define SND_SP_ELECTRON_WAITING                        35
+#define SND_SP_TERMINAL_ACTIVATING             36
+#define SND_SP_TERMINAL_ACTIVE                 37
+#define SND_SOKOBAN_OBJECT_PUSHING             38
+#define SND_SOKOBAN_FIELD_FILLING              39
+#define SND_SOKOBAN_FIELD_EMPTYING             40
+#define SND_SOKOBAN_GAME_SOLVING               41
+#define SND_EMPTY_SPACE_DIGGING                        42
+#define SND_SAND_DIGGING                       43
+#define SND_EMERALD_COLLECTING                 44
+#define SND_EMERALD_IMPACT                     45
+#define SND_DIAMOND_COLLECTING                 46
+#define SND_DIAMOND_IMPACT                     47
+#define SND_DIAMOND_BREAKING                   48
+#define SND_ROCK_PUSHING                       49
+#define SND_ROCK_IMPACT                                50
+#define SND_BOMB_PUSHING                       51
+#define SND_NUT_PUSHING                                52
+#define SND_NUT_CRACKING                       53
+#define SND_NUT_IMPACT                         54
+#define SND_DYNAMITE_COLLECTING                        55
+#define SND_DYNAMITE_DROPPING                  56
+#define SND_DYNAMITE_BURNING                   57
+#define SND_KEY_COLLECTING                     58
+#define SND_GATE_PASSING                       59
+#define SND_BUG_MOVING                         60
+#define SND_BUG_WAITING                                61
+#define SND_SPACESHIP_MOVING                   62
+#define SND_SPACESHIP_WAITING                  63
+#define SND_YAMYAM_MOVING                      64
+#define SND_YAMYAM_WAITING                     65
+#define SND_YAMYAM_EATING                      66
+#define SND_ROBOT_STEPPING                     67
+#define SND_ROBOT_WAITING                      68
+#define SND_ROBOT_WHEEL_ACTIVATING             69
+#define SND_ROBOT_WHEEL_ACTIVE                 70
+#define SND_MAGIC_WALL_ACTIVATING              71
+#define SND_MAGIC_WALL_ACTIVE                  72
+#define SND_MAGIC_WALL_CHANGING                        73
+#define SND_AMOEBA_WAITING                     74
+#define SND_AMOEBA_CREATING                    75
+#define SND_AMOEBA_DROP_CREATING               76
+#define SND_ACID_SPLASHING                     77
+#define SND_QUICKSAND_FILLING                  78
+#define SND_QUICKSAND_SLIPPING                 79
+#define SND_QUICKSAND_EMPTYING                 80
+#define SND_EXIT_OPENING                       81
+#define SND_EXIT_PASSING                       82
+#define SND_BALLOON_MOVING                     83
+#define SND_BALLOON_WAITING                    84
+#define SND_BALLOON_PUSHING                    85
+#define SND_BALLOON_SWITCH_ACTIVATING          86
+#define SND_SPRING_MOVING                      87
+#define SND_SPRING_PUSHING                     88
+#define SND_SPRING_IMPACT                      89
+#define SND_WALL_GROWING                       90
+#define SND_PEARL_COLLECTING                   91
+#define SND_PEARL_BREAKING                     92
+#define SND_PEARL_IMPACT                       93
+#define SND_CRYSTAL_COLLECTING                 94
+#define SND_CRYSTAL_IMPACT                     95
+#define SND_ENVELOPE_COLLECTING                        96
+#define SND_SAND_INVISIBLE_DIGGING             97
+#define SND_SHIELD_NORMAL_COLLECTING           98
+#define SND_SHIELD_NORMAL_ACTIVE               99
+#define SND_SHIELD_DEADLY_COLLECTING           100
+#define SND_SHIELD_DEADLY_ACTIVE               101
+#define SND_EXTRA_TIME_COLLECTING              102
+#define SND_MOLE_MOVING                                103
+#define SND_MOLE_WAITING                       104
+#define SND_MOLE_EATING                                105
+#define SND_SWITCHGATE_SWITCH_ACTIVATING       106
+#define SND_SWITCHGATE_OPENING                 107
+#define SND_SWITCHGATE_CLOSING                 108
+#define SND_SWITCHGATE_PASSING                 109
+#define SND_TIMEGATE_WHEEL_ACTIVATING          110
+#define SND_TIMEGATE_WHEEL_ACTIVE              111
+#define SND_TIMEGATE_OPENING                   112
+#define SND_TIMEGATE_CLOSING                   113
+#define SND_TIMEGATE_PASSING                   114
+#define SND_CONVEYOR_BELT_SWITCH_ACTIVATING    115
+#define SND_CONVEYOR_BELT_SWITCH_DEACTIVATING  116
+#define SND_CONVEYOR_BELT_ACTIVE               117
+#define SND_LIGHT_SWITCH_ACTIVATING            118
+#define SND_LIGHT_SWITCH_DEACTIVATING          119
+#define SND_DX_BOMB_PUSHING                    120
+#define SND_TRAP_INACTIVE_DIGGING              121
+#define SND_TRAP_ACTIVATING                    122
+#define SND_TUBE_PASSING                       123
+#define SND_AMOEBA_TURNING_TO_GEM              124
+#define SND_AMOEBA_TURNING_TO_ROCK             125
+#define SND_SPEED_PILL_COLLECTING              126
+#define SND_DYNABOMB_NR_COLLECTING             127
+#define SND_DYNABOMB_SZ_COLLECTING             128
+#define SND_DYNABOMB_XL_COLLECTING             129
+#define SND_DYNABOMB_DROPPING                  130
+#define SND_DYNABOMB_BURNING                   131
+#define SND_SATELLITE_MOVING                   132
+#define SND_SATELLITE_WAITING                  133
+#define SND_SATELLITE_PUSHING                  134
+#define SND_LAMP_ACTIVATING                    135
+#define SND_LAMP_DEACTIVATING                  136
+#define SND_TIME_ORB_FULL_COLLECTING           137
+#define SND_TIME_ORB_FULL_IMPACT               138
+#define SND_TIME_ORB_EMPTY_PUSHING             139
+#define SND_TIME_ORB_EMPTY_IMPACT              140
+#define SND_GAMEOFLIFE_WAITING                 141
+#define SND_GAMEOFLIFE_CREATING                        142
+#define SND_BIOMAZE_WAITING                    143
+#define SND_BIOMAZE_CREATING                   144
+#define SND_PACMAN_MOVING                      145
+#define SND_PACMAN_WAITING                     146
+#define SND_PACMAN_EATING                      147
+#define SND_DARK_YAMYAM_MOVING                 148
+#define SND_DARK_YAMYAM_WAITING                        149
+#define SND_DARK_YAMYAM_EATING                 150
+#define SND_PENGUIN_MOVING                     151
+#define SND_PENGUIN_WAITING                    152
+#define SND_PENGUIN_PASSING_EXIT               153
+#define SND_PIG_MOVING                         154
+#define SND_PIG_WAITING                                155
+#define SND_PIG_EATING                         156
+#define SND_DRAGON_MOVING                      157
+#define SND_DRAGON_WAITING                     158
+#define SND_DRAGON_ATTACKING                   159
+#define SND_PLAYER_DYING                       160
+#define SND_ELEMENT_EXPLODING                  161
+#define SND_GAME_STARTING                      162
+#define SND_GAME_RUNNING_OUT_OF_TIME           163
+#define SND_GAME_LEVELTIME_BONUS               164
+#define SND_GAME_LOSING                                165
+#define SND_GAME_WINNING                       166
+#define SND_MENU_DOOR_OPENING                  167
+#define SND_MENU_DOOR_CLOSING                  168
+#define SND_MENU_HALL_OF_FAME                  169
+#define SND_MENU_INFO_SCREEN                   170
+
+#define NUM_SOUND_FILES                                171
 
-struct PictureFile
-{
-  char *picture_filename;
-  char *picturemask_filename;
-};
+
+/* values for game_status */
+#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 PROGRAM_VERSION_MAJOR  2
+#define PROGRAM_VERSION_MINOR  1
+#define PROGRAM_VERSION_PATCH  2
+#define PROGRAM_VERSION_STRING "2.1.2"
+
+#define PROGRAM_TITLE_STRING   "Rocks'n'Diamonds"
+#define PROGRAM_AUTHOR_STRING  "Holger Schemel"
+#define PROGRAM_RIGHTS_STRING  "Copyright ^1995-2002 by"
+#define PROGRAM_DOS_PORT_STRING        "DOS port done by Guido Schulz"
+#define PROGRAM_IDENT_STRING   PROGRAM_VERSION_STRING " " TARGET_STRING
+#define WINDOW_TITLE_STRING    PROGRAM_TITLE_STRING " " PROGRAM_IDENT_STRING
+#define WINDOW_SUBTITLE_STRING PROGRAM_RIGHTS_STRING " " PROGRAM_AUTHOR_STRING
+#define ICON_TITLE_STRING      PROGRAM_TITLE_STRING
+#define UNIX_USERDATA_DIRECTORY        ".rocksndiamonds"
+#define COOKIE_PREFIX          "ROCKSNDIAMONDS"
+#define FILENAME_PREFIX                "Rocks"
+
+#define X11_ICON_FILENAME      "rocks_icon.xbm"
+#define X11_ICONMASK_FILENAME  "rocks_iconmask.xbm"
+#define MSDOS_POINTER_FILENAME "mouse.pcx"
+
+/* file version numbers for resource files (levels, tapes, score, setup, etc.)
+** currently supported/known file version numbers:
+**     1.0 (old)
+**     1.2 (still in use)
+**     1.4 (still in use)
+**     2.0 (actual)
+*/
+#define FILE_VERSION_1_0       VERSION_IDENT(1,0,0)
+#define FILE_VERSION_1_2       VERSION_IDENT(1,2,0)
+#define FILE_VERSION_1_4       VERSION_IDENT(1,4,0)
+#define FILE_VERSION_2_0       VERSION_IDENT(2,0,0)
+
+/* file version does not change for every program version, but is changed
+   when new features are introduced that are incompatible with older file
+   versions, so that they can be treated accordingly */
+#define FILE_VERSION_ACTUAL    FILE_VERSION_2_0
+
+#define GAME_VERSION_1_0       FILE_VERSION_1_0
+#define GAME_VERSION_1_2       FILE_VERSION_1_2
+#define GAME_VERSION_1_4       FILE_VERSION_1_4
+#define GAME_VERSION_2_0       FILE_VERSION_2_0
+
+#define GAME_VERSION_ACTUAL    VERSION_IDENT(PROGRAM_VERSION_MAJOR, \
+                                             PROGRAM_VERSION_MINOR, \
+                                             PROGRAM_VERSION_PATCH)
+
+/* for DrawGraphicAnimation() [tools.c] and AnimateToon() [cartoons.c] */
+#define ANIM_NORMAL            0
+#define ANIM_REVERSE           (1 << 0)
+#define ANIM_PINGPONG          (1 << 1)
+#define ANIM_PINGPONG2         (1 << 2)
+
+/* values for game_emulation */
+#define EMU_NONE               0
+#define EMU_BOULDERDASH                1
+#define EMU_SOKOBAN            2
+#define EMU_SUPAPLEX           3
 
 struct HiScore
 {
-  char Name[MAX_NAMELEN];
+  char Name[MAX_PLAYER_NAME_LEN + 1];
   int Score;
 };
 
 struct PlayerInfo
 {
-  char login_name[MAX_NAMELEN];
-  char alias_name[MAX_NAMELEN];
-  int handicap;
-  unsigned int setup;
-  int leveldir_nr;
+  boolean present;             /* player present in level playfield */
+  boolean connected;           /* player connected (locally or via network) */
+  boolean active;              /* player (present && connected) */
+
+  int index_nr, client_nr, element_nr;
+
+  byte action;                 /* action from local input device */
+  byte effective_action;       /* action acknowledged from network server
+                                  or summarized over all configured input
+                                  devices when in single player mode */
+  byte programmed_action;      /* action forced by game itself (like moving
+                                  through doors); overrides other actions */
+
+  int jx,jy, last_jx,last_jy;
+  int MovDir, MovPos, GfxPos;
+  int Frame;
+
+  boolean Pushing;
+  boolean Switching;
+  boolean LevelSolved, GameOver;
+  boolean snapped;
+
+  int last_move_dir;
+  int is_moving;
+
+  unsigned long move_delay;
+  int move_delay_value;
+
+  unsigned long push_delay;
+  unsigned long push_delay_value;
+
+  int frame_reset_delay;
+
+  unsigned long actual_frame_counter;
+
+  int score;
+  int gems_still_needed;
+  int sokobanfields_still_needed;
+  int lights_still_needed;
+  int friends_still_needed;
+  int key[4];
+  int dynamite;
+  int dynabomb_count, dynabomb_size, dynabombs_left, dynabomb_xl;
+  int shield_passive_time_left;
+  int shield_active_time_left;
 };
 
 struct LevelInfo
 {
+  int file_version;    /* file format version the level is stored with    */
+  int game_version;    /* game release version the level was created with */
+
+  boolean encoding_16bit_field;                /* level contains 16-bit elements  */
+  boolean encoding_16bit_yamyam;       /* yamyam contains 16-bit elements */
+  boolean encoding_16bit_amoeba;       /* amoeba contains 16-bit elements */
+
   int fieldx;
   int fieldy;
   int time;
-  int edelsteine;
-  char name[MAX_LEVNAMLEN];
-  int score[MAX_LEVSCORE_ENTRIES];
-  int mampfer_inhalt[4][3][3];
-  int tempo_amoebe;
-  int dauer_sieb;
-  int dauer_ablenk;
-  int amoebe_inhalt;
+  int gems_needed;
+  char name[MAX_LEVEL_NAME_LEN + 1];
+  char author[MAX_LEVEL_AUTHOR_LEN + 1];
+  int score[LEVEL_SCORE_ELEMENTS];
+  int yam_content[MAX_ELEMENT_CONTENTS][3][3];
+  int num_yam_contents;
+  int amoeba_speed;
+  int amoeba_content;
+  int time_magic_wall;
+  int time_wheel;
+  int time_light;
+  int time_timegate;
+  boolean double_speed;
+  boolean gravity;
+  boolean em_slippery_gems;    /* EM style "gems slip from wall" behaviour */
 };
 
-struct LevelDirInfo
+struct TapeInfo
 {
-  char filename[MAX_LEVDIR_FILENAME];
-  char name[MAX_LEVDIR_NAME];
-  int num_ready;
-  int num_free;
-};
+  int file_version;    /* file format version the tape is stored with    */
+  int game_version;    /* game release version the tape was created with */
+  int engine_version;  /* game engine version the tape was recorded with */
 
-struct RecordingInfo
-{
   int level_nr;
-  unsigned int random_seed;
+  unsigned long random_seed;
   unsigned long date;
   unsigned long counter;
   unsigned long length;
-  BOOL recording, playing, pausing;
+  unsigned long length_seconds;
+  unsigned int delay_played;
+  boolean pause_before_death;
+  boolean recording, playing, pausing;
+  boolean fast_forward;
+  boolean index_search;
+  boolean quick_resume;
+  boolean single_step;
+  boolean changed;
+  boolean player_participates[MAX_PLAYERS];
+  int num_participating_players;
+
   struct
   {
-    unsigned char joystickdata;
-    unsigned char delay;
+    byte action[MAX_PLAYERS];
+    byte delay;
   } pos[MAX_TAPELEN];
 };
 
-struct JoystickInfo
+struct GameInfo
 {
-  int xleft, xright, xmiddle;
-  int yupper, ylower, ymiddle;
+  /* constant within running game */
+  int engine_version;
+  int emulation;
+  int initial_move_delay;
+  int initial_move_delay_value;
+
+  /* variable within running game */
+  int yam_content_nr;
+  boolean magic_wall_active;
+  int magic_wall_time_left;
+  int light_time_left;
+  int timegate_time_left;
+  int belt_dir[4];
+  int belt_dir_nr[4];
+  int switchgate_pos;
+  int balloon_dir;
+  boolean explosions_delayed;
 };
 
-extern Display        *display;
-extern int             screen;
-extern Window                  window;
-extern GC                      gc, plane_gc;
-extern GC              clip_gc[];
-extern XImage         *image[];
-extern Pixmap          clipmask[];
-extern Pixmap          pix[];
-extern XpmAttributes   xpm_att[];
-extern Drawable        drawto, drawto_field, backbuffer;
-extern Colormap                cmap;
-
-extern int             sound_pipe[2];
-extern int             sound_device;
-extern char           *sound_device_name;
-extern int             joystick_device;
-extern char           *joystick_device_name[2];
-extern int                     width, height;
-extern unsigned long   pen_fg, pen_bg;
+struct GlobalInfo
+{
+  float frames_per_second;
+  boolean fps_slowdown;
+  int fps_slowdown_factor;
+};
 
-extern int             game_status;
-extern int             button_status, motion_status;
-extern int             key_status;
-extern int             global_joystick_status, joystick_status;
-extern int             sound_status, sound_on;
-extern int             sound_loops_allowed, sound_loops_on;
-extern int             sound_music_on;
-extern int             toons_on;
-extern int             direct_draw_on;
-extern int             fading_on;
-extern int             autorecord_on;
-extern int             joystick_nr;
-extern int             quick_doors;
-
-extern BOOL            redraw[SCR_FIELDX][SCR_FIELDY];
-extern int             redraw_mask;
-extern int             redraw_tiles;
-
-extern int             Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             JustHit[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-extern int             AmoebaCnt[MAX_NUM_AMOEBA];
-extern long            Elementeigenschaften[MAX_ELEMENTS];
-
-extern int             level_nr, leveldir_nr, num_leveldirs;
-extern int             lev_fieldx,lev_fieldy, scroll_x,scroll_y;
+struct ElementInfo
+{
+  char *sound_class_name;      /* classification for custom sound effects */
+  char *editor_description;    /* short description for level editor */
 
-extern int             LevelSolved,GameOver, JX,JY, ZX,ZY;
-extern int             Gems,Dynamite,Key[4],TimeLeft,Score,MampferNr;
-extern int             DynaBombCount, DynaBombSize, DynaBombsLeft;
-extern int             CheckMoving,CheckExploding, SiebAktiv;
+  int graphic[NUM_GFX_ACTIONS_MAPPED];
 
-extern struct LevelDirInfo     leveldir[];
-extern struct LevelInfo                level;
-extern struct PlayerInfo       player;
-extern struct HiScore          highscore[];
-extern struct RecordingInfo    tape, master_tape;
-extern struct JoystickInfo     joystick[];
+                               /* special graphics for left/right/up/down */
+  int direction_graphic[NUM_GFX_ACTIONS_MAPPED][4];
+  boolean has_direction_graphic[NUM_GFX_ACTIONS_MAPPED];
+};
 
-extern int             background_loop[];
-extern int             num_bg_loops;
+struct GraphicInfo
+{
+  Bitmap *bitmap;
+  int src_x, src_y;
+};
 
-extern char           *progname;
+struct NewGraphicInfo
+{
+  Bitmap *bitmap;
+  int src_x, src_y;
+  int anim_frames;
+  int anim_delay;
+  int anim_mode;
+  boolean anim_global_sync;
+  boolean anim_vertical;
+};
 
+extern GC              tile_clip_gc;
+extern Bitmap         *pix[];
+extern Pixmap          tile_clipmask[];
+extern DrawBuffer      *fieldbuffer;
+extern DrawBuffer      *drawto_field;
 
-/* often used screen positions */
-#define SX             8
-#define SY             8
-#define REAL_SX                (SX-2)
-#define REAL_SY                (SY-2)
-#define DX             566
-#define DY             60
-#define VX             DX
-#define VY             400
-#define TILEX          32
-#define TILEY          32
-#define MINI_TILEX     (TILEX/2)
-#define MINI_TILEY     (TILEY/2)
-#define MICRO_TILEX    (TILEX/8)
-#define MICRO_TILEY    (TILEY/8)
-#define MIDPOSX                (SCR_FIELDX/2)
-#define MIDPOSY                (SCR_FIELDY/2)
-#define SXSIZE         (SCR_FIELDX*TILEX)
-#define SYSIZE         (SCR_FIELDY*TILEY)
-#define DXSIZE         100
-#define DYSIZE         280
-#define VXSIZE         DXSIZE
-#define VYSIZE         100
-#define FULL_SXSIZE    (2+SXSIZE+2)
-#define FULL_SYSIZE    (2+SYSIZE+2)
-#define MICROLEV_XPOS  (SX+4*32+16)
-#define MICROLEV_YPOS  (SX+12*32)
-#define MICROLEV_XSIZE (STD_LEV_FIELDX*MICRO_TILEX)
-#define MICROLEV_YSIZE (STD_LEV_FIELDY*MICRO_TILEY)
-#define MICROLABEL_YPOS        (MICROLEV_YPOS+MICROLEV_YSIZE+12)
-#define FONT1_XSIZE    32
-#define FONT1_YSIZE    32
-#define FONT2_XSIZE    14
-#define FONT2_YSIZE    14
-#define FONT3_XSIZE    11
-#define FONT3_YSIZE    14
-#define FONT4_XSIZE    16
-#define FONT4_YSIZE    16
-
-#define GFX_STARTX             SX
-#define GFX_STARTY             SY
-#define MINI_GFX_STARTX                SX
-#define MINI_GFX_STARTY                424
-#define MICRO_GFX_STARTX       SX
-#define MICRO_GFX_STARTY       536
-#define GFX_PER_LINE           16
-#define MINI_GFX_PER_LINE      32
-#define MICRO_GFX_PER_LINE     128
-#define FONT_CHARS_PER_LINE    16
-#define FONT_LINES_PER_FONT    4
+extern int             game_status;
+extern boolean         level_editor_test_game;
+extern boolean         network_playing;
+
+extern int             key_joystick_mapping;
+
+extern boolean         redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE];
+extern int             redraw_x1, redraw_y1;
+
+extern short           Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern boolean         Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short           AmoebaCnt[MAX_NUM_AMOEBA], AmoebaCnt2[MAX_NUM_AMOEBA];
+extern short           ExplodeField[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern unsigned long   Elementeigenschaften1[MAX_ELEMENTS];
+extern unsigned long   Elementeigenschaften2[MAX_ELEMENTS];
 
-/* game elements:
-**       0 - 255: real elements, stored in level file
-**     256 - 511: flag elements, only used at runtime
-*/
-/* "real" level elements */
-#define EL_LEERRAUM    0
-#define        EL_ERDREICH     1
-#define        EL_MAUERWERK    2
-#define        EL_FELSBODEN    3
-#define        EL_FELSBROCKEN  4
-#define        EL_SCHLUESSEL   5
-#define        EL_EDELSTEIN    6
-#define        EL_AUSGANG_ZU   7
-#define        EL_SPIELFIGUR   8
-#define EL_KAEFER      9
-#define EL_FLIEGER     10
-#define EL_MAMPFER     11
-#define EL_ZOMBIE      12
-#define EL_BETON       13
-#define EL_DIAMANT     14
-#define EL_AMOEBE_TOT  15
-#define EL_MORAST_LEER 16
-#define EL_MORAST_VOLL 17
-#define EL_TROPFEN     18
-#define EL_BOMBE       19
-#define EL_SIEB_LEER   20
-#define EL_SIEB_VOLL   21
-#define EL_SALZSAEURE  22
-#define EL_AMOEBE_NASS 23
-#define EL_AMOEBE_NORM 24
-#define EL_KOKOSNUSS   25
-#define EL_LIFE                26
-#define EL_LIFE_ASYNC  27
-#define EL_DYNAMIT     28
-#define EL_BADEWANNE   29
-#define EL_ABLENK_AUS  30
-#define EL_ABLENK_EIN  31
-#define EL_SCHLUESSEL1 32
-#define EL_SCHLUESSEL2 33
-#define EL_SCHLUESSEL3 34
-#define EL_SCHLUESSEL4 35
-#define EL_PFORTE1     36
-#define EL_PFORTE2     37
-#define EL_PFORTE3     38
-#define EL_PFORTE4     39
-#define EL_PFORTE1X    40
-#define EL_PFORTE2X    41
-#define EL_PFORTE3X    42
-#define EL_PFORTE4X    43
-#define EL_DYNAMIT_AUS 44
-#define EL_PACMAN      45
-#define EL_UNSICHTBAR  46
-#define EL_BIRNE_AUS   47
-#define EL_BIRNE_EIN   48
-#define EL_ERZ_EDEL    49
-#define EL_ERZ_DIAM    50
-#define EL_AMOEBE_VOLL 51
-#define EL_AMOEBA2DIAM 52
-#define EL_ZEIT_VOLL   53
-#define EL_ZEIT_LEER   54
-#define EL_MAUER_LEBT  55
-#define EL_EDELSTEIN2  56
-#define EL_EDELSTEIN3  57
-#define EL_ERZ_EDEL2   58
-#define EL_ERZ_EDEL3   59
-#define EL_MAMPFER2    60
-#define EL_SIEB2_LEER  61
-#define EL_SIEB2_VOLL  62
-#define EL_DYNABOMB    63
-#define EL_DYNABOMB_NR 64
-#define EL_DYNABOMB_SZ 65
-
-#define EL_SPIELER1    80
-#define EL_SPIELER2    81
-#define EL_SPIELER3    82
-#define EL_SPIELER4    83
-#define EL_KAEFER_R    84
-#define EL_KAEFER_O    85
-#define EL_KAEFER_L    86
-#define EL_KAEFER_U    87
-#define EL_FLIEGER_R   88
-#define EL_FLIEGER_O   89
-#define EL_FLIEGER_L   90
-#define EL_FLIEGER_U   91
-#define EL_PACMAN_R    92
-#define EL_PACMAN_O    93
-#define EL_PACMAN_L    94
-#define EL_PACMAN_U    95
-
-#define EL_BADEWANNE1  100
-#define EL_BADEWANNE2  101
-#define EL_BADEWANNE3  102
-#define EL_BADEWANNE4  103
-#define EL_BADEWANNE5  104
-#define EL_SIEB_TOT    105
-#define EL_AUSGANG_ACT 106
-#define EL_AUSGANG_AUF 107
-#define EL_SIEB2_TOT   108
-
-#define EL_CHAR_START  120
-#define EL_CHAR_ASCII0 (EL_CHAR_START-32)
-#define EL_CHAR_AUSRUF (EL_CHAR_ASCII0+33)
-#define EL_CHAR_ZOLL   (EL_CHAR_ASCII0+34)
-#define EL_CHAR_DOLLAR (EL_CHAR_ASCII0+36)
-#define EL_CHAR_PROZ   (EL_CHAR_ASCII0+37)
-#define EL_CHAR_APOSTR (EL_CHAR_ASCII0+39)
-#define EL_CHAR_KLAMM1 (EL_CHAR_ASCII0+40)
-#define EL_CHAR_KLAMM2 (EL_CHAR_ASCII0+41)
-#define EL_CHAR_PLUS   (EL_CHAR_ASCII0+43)
-#define EL_CHAR_KOMMA  (EL_CHAR_ASCII0+44)
-#define EL_CHAR_MINUS  (EL_CHAR_ASCII0+45)
-#define EL_CHAR_PUNKT  (EL_CHAR_ASCII0+46)
-#define EL_CHAR_SLASH  (EL_CHAR_ASCII0+47)
-#define EL_CHAR_0      (EL_CHAR_ASCII0+48)
-#define EL_CHAR_9      (EL_CHAR_ASCII0+57)
-#define EL_CHAR_DOPPEL (EL_CHAR_ASCII0+58)
-#define EL_CHAR_SEMIKL (EL_CHAR_ASCII0+59)
-#define EL_CHAR_LT     (EL_CHAR_ASCII0+60)
-#define EL_CHAR_GLEICH (EL_CHAR_ASCII0+61)
-#define EL_CHAR_GT     (EL_CHAR_ASCII0+62)
-#define EL_CHAR_FRAGE  (EL_CHAR_ASCII0+63)
-#define EL_CHAR_AT     (EL_CHAR_ASCII0+64)
-#define EL_CHAR_A      (EL_CHAR_ASCII0+65)
-#define EL_CHAR_Z      (EL_CHAR_ASCII0+90)
-#define EL_CHAR_AE     (EL_CHAR_ASCII0+91)
-#define EL_CHAR_OE     (EL_CHAR_ASCII0+92)
-#define EL_CHAR_UE     (EL_CHAR_ASCII0+93)
-#define EL_CHAR_COPY   (EL_CHAR_ASCII0+94)
-#define EL_CHAR_END    (EL_CHAR_START+79)
-
-/* "unreal" runtime elements */
-#define EL_BLOCKED     300
-#define EL_EXPLODING   301
-#define EL_CRACKINGNUT 302
-#define EL_BLURB_LEFT  303
-#define EL_BLURB_RIGHT 304
-#define EL_AMOEBING    305
-#define EL_MAUERND     306
-
-/* names for the graphic objects */
-/* Zeile 0 (0) */
-#define GFX_LEERRAUM   (-1)
-#define        GFX_ERDREICH    0
-#define GFX_ERDENRAND  1
-#define GFX_MORAST_LEER        2
-#define GFX_MORAST_VOLL        3
-#define GFX_BETON      4
-#define        GFX_MAUERWERK   5
-#define        GFX_FELSBODEN   6
-#define GFX_DYNABOMB   7
-#define GFX_DYNABOMB_NR        GFX_DYNABOMB
-#define        GFX_EDELSTEIN   8
-#define GFX_DIAMANT    10
-#define        GFX_FELSBROCKEN 12
-/* Zeile 1 (16) */
-#define GFX_BADEWANNE1 16
-#define GFX_SALZSAEURE 17
-#define GFX_BADEWANNE2 18
-#define GFX_UNSICHTBAR 19
-#define GFX_SCHLUESSEL1        20
-#define GFX_SCHLUESSEL2        21
-#define GFX_SCHLUESSEL3        22
-#define GFX_SCHLUESSEL4        23
-#define GFX_LIFE       24
-#define GFX_LIFE_ASYNC 25
-#define GFX_BADEWANNE  26
-#define GFX_BOMBE      27
-#define GFX_KOKOSNUSS  28
-#define GFX_CRACKINGNUT        29
-/* Zeile 2 (32) */
-#define GFX_BADEWANNE3 32
-#define GFX_BADEWANNE4 33
-#define GFX_BADEWANNE5 34
-#define        GFX_SPIELFIGUR  35
-#define GFX_PFORTE1    36
-#define GFX_PFORTE2    37
-#define GFX_PFORTE3    38
-#define GFX_PFORTE4    39
-#define GFX_PFORTE1X   40
-#define GFX_PFORTE2X   41
-#define GFX_PFORTE3X   42
-#define GFX_PFORTE4X   43
-/* Zeile 3 (48) */
-#define GFX_DYNAMIT_AUS        48
-#define GFX_DYNAMIT    49
-#define GFX_FLIEGER    56
-#define GFX_FLIEGER_R  56
-#define GFX_FLIEGER_O  57
-#define GFX_FLIEGER_L  58
-#define GFX_FLIEGER_U  59
-/* Zeile 4 (64) */
-#define GFX_EXPLOSION  64
-#define GFX_KAEFER     72
-#define GFX_KAEFER_R   72
-#define GFX_KAEFER_O   73
-#define GFX_KAEFER_L   74
-#define GFX_KAEFER_U   75
-/* Zeile 5 (80) */
-#define GFX_MAMPFER    80
-#define GFX_ZOMBIE     84
-#define GFX_PACMAN     88
-#define GFX_PACMAN_R   88
-#define GFX_PACMAN_O   89
-#define GFX_PACMAN_L   90
-#define GFX_PACMAN_U   91
-/* Zeile 6 (96) */
-#define GFX_ABLENK     96
-#define GFX_ABLENK_EIN GFX_ABLENK
-#define GFX_ABLENK_AUS GFX_ABLENK
-#define GFX_AMOEBE_NASS        100
-#define GFX_TROPFEN    101
-#define GFX_AMOEBING   GFX_TROPFEN
-#define GFX_AMOEBE_LEBT        104
-#define GFX_AMOEBE_NORM        GFX_AMOEBE_LEBT
-#define GFX_AMOEBE_TOT 108
-#define GFX_AMOEBA2DIAM        GFX_AMOEBE_TOT
-#define GFX_BIRNE_AUS  112
-#define GFX_BIRNE_EIN  113
-#define GFX_ZEIT_VOLL  114
-#define GFX_ZEIT_LEER  115
-/* Zeile 7 (112) */
-#define GFX_GEBLUBBER  124
-/* Zeile 8 (128) */
-#define GFX_SIEB_LEER  128
-#define GFX_SIEB_VOLL  GFX_SIEB_LEER
-#define GFX_SIEB_TOT   GFX_SIEB_LEER
-#define GFX_ERZ_EDEL   132
-#define GFX_ERZ_DIAM   133
-#define GFX_ERZ_EDEL2  134
-#define GFX_ERZ_EDEL3  135
-#define GFX_AMOEBE_VOLL        136
-#define GFX_KUGEL_ROT  140
-#define GFX_KUGEL_BLAU 141
-#define GFX_KUGEL_GELB 142
-#define GFX_KUGEL_GRAU 143
-#define GFX_DYNABOMB_SZ        GFX_KUGEL_GRAU
-/* Zeile 9 (144) */
-#define GFX_BLURB_LEFT 144
-#define GFX_BLURB_RIGHT        148
-#define GFX_EDELSTEIN3 152
-/* Zeile 10 (160) */
-#define GFX_EDELSTEIN2 163
-#define GFX_MAUER_R1   165
-#define GFX_MAUER_R    167
-#define GFX_MAUER_L1   168
-#define GFX_MAUER_L    170
-#define GFX_MAUER_LEBT 171
-#define GFX_SIEB2_LEER 172
-#define GFX_SIEB2_VOLL GFX_SIEB2_LEER
-#define GFX_SIEB2_TOT  GFX_SIEB2_LEER
-/* Zeile 11 (176) */
-#define        GFX_AUSGANG_ZU  176
-#define        GFX_AUSGANG_ACT 177
-#define        GFX_AUSGANG_AUF 180
-#define GFX_MAMPFER2   184
-
-#define        GFX_SCHLUESSEL  GFX_SCHLUESSEL1
-
-#define GFX_SPIELER1   116
-#define GFX_SPIELER2   117
-#define GFX_SPIELER3   118
-#define GFX_SPIELER4   119
-
-/* nicht in "RocksScreen" sondern woanders :) */
-#define GFX_CHAR_START 256
-#define GFX_CHAR_ASCII0        (GFX_CHAR_START-32)
-#define GFX_CHAR_AUSRUF        (GFX_CHAR_ASCII0+33)
-#define GFX_CHAR_ZOLL  (GFX_CHAR_ASCII0+34)
-#define GFX_CHAR_DOLLAR        (GFX_CHAR_ASCII0+36)
-#define GFX_CHAR_PROZ  (GFX_CHAR_ASCII0+37)
-#define GFX_CHAR_APOSTR        (GFX_CHAR_ASCII0+39)
-#define GFX_CHAR_KLAMM1        (GFX_CHAR_ASCII0+40)
-#define GFX_CHAR_KLAMM2        (GFX_CHAR_ASCII0+41)
-#define GFX_CHAR_PLUS  (GFX_CHAR_ASCII0+43)
-#define GFX_CHAR_KOMMA (GFX_CHAR_ASCII0+44)
-#define GFX_CHAR_MINUS (GFX_CHAR_ASCII0+45)
-#define GFX_CHAR_PUNKT (GFX_CHAR_ASCII0+46)
-#define GFX_CHAR_SLASH (GFX_CHAR_ASCII0+47)
-#define GFX_CHAR_0     (GFX_CHAR_ASCII0+48)
-#define GFX_CHAR_9     (GFX_CHAR_ASCII0+57)
-#define GFX_CHAR_DOPPEL        (GFX_CHAR_ASCII0+58)
-#define GFX_CHAR_SEMIKL        (GFX_CHAR_ASCII0+59)
-#define GFX_CHAR_LT    (GFX_CHAR_ASCII0+60)
-#define GFX_CHAR_GLEICH        (GFX_CHAR_ASCII0+61)
-#define GFX_CHAR_GT    (GFX_CHAR_ASCII0+62)
-#define GFX_CHAR_FRAGE (GFX_CHAR_ASCII0+63)
-#define GFX_CHAR_AT    (GFX_CHAR_ASCII0+64)
-#define GFX_CHAR_A     (GFX_CHAR_ASCII0+65)
-#define GFX_CHAR_Z     (GFX_CHAR_ASCII0+90)
-#define GFX_CHAR_AE    (GFX_CHAR_ASCII0+91)
-#define GFX_CHAR_OE    (GFX_CHAR_ASCII0+92)
-#define GFX_CHAR_UE    (GFX_CHAR_ASCII0+93)
-#define GFX_CHAR_COPY  (GFX_CHAR_ASCII0+94)
-#define GFX_CHAR_END   (GFX_CHAR_START+79)
-
-/* score for elements */
-#define SC_EDELSTEIN   0
-#define SC_DIAMANT     1
-#define SC_KAEFER      2
-#define SC_FLIEGER     3
-#define SC_MAMPFER     4
-#define SC_ZOMBIE      5
-#define SC_PACMAN      6
-#define SC_KOKOSNUSS   7
-#define SC_DYNAMIT     8
-#define SC_SCHLUESSEL  9
-#define SC_ZEITBONUS   10
+extern int             lev_fieldx,lev_fieldy, scroll_x,scroll_y;
 
-/* the names of the sounds */
-#define SND_ALCHEMY    0
-#define SND_AMOEBE     1
-#define SND_ANTIGRAV   2
-#define SND_AUTSCH     3
-#define SND_BLURB      4
-#define SND_BONG       5
-#define SND_BUING      6
-#define SND_CHASE      7
-#define SND_CZARDASZ   8
-#define SND_DENG       9
-#define SND_FUEL       10
-#define SND_GONG       11
-#define SND_HALLOFFAME 12
-#define SND_HOLZ       13
-#define SND_HUI                14
-#define SND_KABUMM     15
-#define SND_KINK       16
-#define SND_KLAPPER    17
-#define SND_KLING      18
-#define SND_KLOPF      19
-#define SND_KLUMPF     20
-#define SND_KNACK      21
-#define SND_KNURK      22
-#define SND_KRACH      23
-#define SND_LACHEN     24
-#define SND_LASER      25
-#define SND_MIEP       26
-#define SND_NETWORK    27
-#define SND_NJAM       28
-#define SND_OEFFNEN    29
-#define SND_PLING      30
-#define SND_PONG       31
-#define SND_PUSCH      32
-#define SND_QUIEK      33
-#define SND_QUIRK      34
-#define SND_RHYTHMLOOP 35
-#define SND_ROAAAR     36
-#define SND_ROEHR      37
-#define SND_RUMMS      38
-#define SND_SCHLOPP    39
-#define SND_SCHLURF    40
-#define SND_SCHRFF     41
-#define SND_SCHWIRR    42
-#define SND_SIRR       43
-#define SND_SLURP      44
-#define SND_SPROING    45
-#define SND_TWILIGHT   46
-#define SND_TYGER      47
-#define SND_VOYAGER    48
-#define SND_WARNTON    49
-#define SND_WHOOSH     50
-#define SND_ZISCH      51
-
-#define NUM_SOUNDS     52
-
-#define IS_LOOP_SOUND(s)       ((s)==SND_KLAPPER || (s)==SND_ROEHR ||  \
-                                (s)==SND_NJAM || (s)==SND_MIEP)
-#define IS_MUSIC_SOUND(s)      ((s)==SND_ALCHEMY || (s)==SND_CHASE || \
-                                (s)==SND_NETWORK || (s)==SND_CZARDASZ || \
-                                (s)==SND_TYGER || (s)==SND_VOYAGER || \
-                                (s)==SND_TWILIGHT)
-extern char *sound_name[NUM_SOUNDS];
-
-/* this structure contains the sound data for the sound server */
-extern struct SoundInfo Sound[NUM_SOUNDS];
-
-/* directions for moving */
-#define MV_NO_MOVING   0
-#define MV_LEFT                1
-#define MV_RIGHT       2
-#define MV_UP          4
-#define MV_DOWN                8
-
-/* font types */
-#define FS_SMALL       0
-#define FS_BIG         1
-/* font colors */
-#define FC_RED         0
-#define FC_BLUE                1
-#define FC_GREEN       2
-#define FC_YELLOW      3
-#define FC_SPECIAL1    4
-#define FC_SPECIAL2    5
+extern int             FX,FY, ScrollStepSize;
+extern int             ScreenMovDir, ScreenMovPos, ScreenGfxPos;
+extern int             BorderElement;
+extern int             GameFrameDelay;
+extern int             FfwdFrameDelay;
+extern int             BX1,BY1, BX2,BY2;
+extern int             SBX_Left, SBX_Right;
+extern int             SBY_Upper, SBY_Lower;
+extern int             ZX,ZY, ExitX,ExitY;
+extern int             AllPlayersGone;
 
-/* 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 EXITGAME       8
-
-/* return values for GameActions */
-#define ACT_GO_ON      0
-#define ACT_GAME_OVER  1
-#define ACT_NEW_GAME   2
-
-/* values for the joystick */
-#define JOYSTICK_OFF           0
-#define        JOYSTICK_AVAILABLE      1
-#ifdef __FreeBSD__
-#define DEV_JOYSTICK_0         "/dev/joy0"
-#define DEV_JOYSTICK_1         "/dev/joy1"
-#else
-#define DEV_JOYSTICK_0         "/dev/js0"
-#define DEV_JOYSTICK_1         "/dev/js1"
-#endif
-
-/* get these values from the program 'js' from the joystick package, */
-/* set JOYSTICK_PERCENT to a threshold appropriate for your joystick */
-#define JOYSTICK_XLEFT         30
-#define JOYSTICK_XRIGHT                1250
-#define JOYSTICK_XMIDDLE       530
-#define JOYSTICK_YUPPER                40
-#define JOYSTICK_YLOWER                1440
-#define JOYSTICK_YMIDDLE       680
-#define JOYSTICK_PERCENT       25
-#define JOY_LEFT               MV_LEFT
-#define JOY_RIGHT              MV_RIGHT
-#define JOY_UP                 MV_UP
-#define JOY_DOWN               MV_DOWN
-#define JOY_BUTTON_1           16
-#define JOY_BUTTON_2           32
-#define JOY_BUTTON             (JOY_BUTTON_1 | JOY_BUTTON_2)
-#define JOY_BUTTON_NOT_PRESSED 0
-#define JOY_BUTTON_PRESSED     1
-#define JOY_BUTTON_NEW_PRESSED 2
-#define JOY_BUTTON_NEW_RELEASED        3
-
-#ifdef NO_JOYSTICK
-#define JOYSTICK_STATUS        JOYSTICK_OFF
-#else
-#define JOYSTICK_STATUS        JOYSTICK_AVAILABLE
-#endif
-
-#ifndef GAME_DIR
-#define GAME_DIR       "."
-#endif
-
-#ifndef GFX_PATH
-#define GFX_PATH       GAME_DIR "/graphics"
-#endif
-#ifndef SND_PATH
-#define SND_PATH       GAME_DIR "/sounds"
-#endif
-#ifndef LEVEL_PATH
-#define LEVEL_PATH     GAME_DIR "/levels"
-#endif
-#ifndef SCORE_PATH
-#define SCORE_PATH     LEVEL_PATH
-#endif
-#ifndef NAMES_PATH
-#define NAMES_PATH     LEVEL_PATH
-#endif
-#ifndef CONFIG_PATH
-#define CONFIG_PATH    GAME_DIR
-#endif
-#ifndef JOYDAT_PATH
-#define JOYDAT_PATH    GAME_DIR
-#endif
-
-#define SCORE_FILENAME "ROCKS.score"
-#define NAMES_FILENAME "ROCKS.names"
-#define LEVDIR_FILENAME        "ROCKS.levelinfo"
-#define JOYDAT_FILENAME        "ROCKS.joystick"
-
-#define JOYDAT_FILE    JOYDAT_PATH "/" JOYDAT_FILENAME
-
-#define LEVEL_PERMS    (S_IRUSR|S_IWUSR | S_IRGRP|S_IWGRP | S_IROTH|S_IWOTH)
-#define SCORE_PERMS    LEVEL_PERMS
-#define NAMES_PERMS    LEVEL_PERMS
-#define LEVDIR_PERMS   LEVEL_PERMS
-#define LEVREC_PERMS   LEVEL_PERMS
-#define JOYDAT_PERMS   LEVEL_PERMS
-
-#define LEVEL_COOKIE   "ROCKSNDIAMONDS_LEVEL_FILE_VERSION_1.0"
-#define SCORE_COOKIE   "ROCKSNDIAMONDS_SCORE_FILE_VERSION_1.0"
-#define NAMES_COOKIE   "ROCKSNDIAMONDS_NAMES_FILE_VERSION_1.0"
-#define LEVELDIR_COOKIE        "ROCKSNDIAMONDS_LEVELDIR_FILE_VERSION_1.0"
-#define LEVELREC_COOKIE        "ROCKSNDIAMONDS_LEVELREC_FILE_VERSION_1.0"
-#define JOYSTICK_COOKIE        "ROCKSNDIAMONDS_JOYSTICK_FILE_VERSION_1.0"
-#define LEVEL_COOKIE_LEN       (strlen(LEVEL_COOKIE)+1)
-#define SCORE_COOKIE_LEN       (strlen(SCORE_COOKIE)+1)
-#define NAMES_COOKIE_LEN       (strlen(NAMES_COOKIE)+1)
-#define LEVELDIR_COOKIE_LEN    (strlen(LEVELDIR_COOKIE)+1)
-#define LEVELREC_COOKIE_LEN    (strlen(LEVELREC_COOKIE)+1)
-#define JOYSTICK_COOKIE_LEN    (strlen(JOYSTICK_COOKIE)+1)
-
-/* Leerer Login- und Alias-Name */
-#define EMPTY_LOGIN    "NO_LOGIN"
-#define EMPTY_ALIAS    "NO_NAME"
-
-/* values for button_status */
-#define MB_NOT_PRESSED FALSE
-#define MB_RELEASED    FALSE
-#define MB_PRESSED     TRUE
-#define MB_MENU_CHOICE FALSE
-#define MB_MENU_MARK   TRUE
-#define MB_LEFT                1
-#define MB_MIDDLE      2
-#define MB_RIGHT       3
-
-/* values for key_status */
-#define KEY_NOT_PRESSED        FALSE
-#define KEY_RELEASED   FALSE
-#define KEY_PRESSED    TRUE
-
-/* values for focus_status */
-#define FOCUS_OUT      FALSE
-#define FOCUS_IN       TRUE
-
-/* 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_DOOR_2  (REDRAW_VIDEO_1 | REDRAW_VIDEO_2 | REDRAW_VIDEO_3)
-#define REDRAW_DOORS   (REDRAW_DOOR_1 | REDRAW_DOOR_2)
-#define REDRAW_MAIN    (REDRAW_FIELD | REDRAW_TILES | REDRAW_MICROLEV)
-#define REDRAWTILES_TH SCR_FIELDX*SCR_FIELDY/2
-
-/* positions in the game control window */
-#define XX_LEVEL       37
-#define YY_LEVEL       20
-#define XX_EMERALDS    29
-#define YY_EMERALDS    54
-#define XX_DYNAMITE    29
-#define YY_DYNAMITE    89
-#define XX_KEYS                18
-#define YY_KEYS                123
-#define XX_SCORE       15
-#define YY_SCORE       159
-#define XX_TIME                29
-#define YY_TIME                194
-
-#define DX_LEVEL       (DX+XX_LEVEL)
-#define DY_LEVEL       (DY+YY_LEVEL)
-#define DX_EMERALDS    (DX+XX_EMERALDS)
-#define DY_EMERALDS    (DY+YY_EMERALDS)
-#define DX_DYNAMITE    (DX+XX_DYNAMITE)
-#define DY_DYNAMITE    (DY+YY_DYNAMITE)
-#define DX_KEYS                (DX+XX_KEYS)
-#define DY_KEYS                (DY+YY_KEYS)
-#define DX_SCORE       (DX+XX_SCORE)
-#define DY_SCORE       (DY+YY_SCORE)
-#define DX_TIME                (DX+XX_TIME)
-#define DY_TIME                (DY+YY_TIME)
-
-/* Felder in PIX_DOOR */
-/* Bedeutung in PIX_DB_DOOR: (3 PAGEs)
-   PAGEX1: 1. Zwischenspeicher für DOOR_1
-   PAGEX2: 2. Zwischenspeicher für DOOR_1
-   PAGEX3: Pufferspeicher für Animationen
-*/
+extern int             TimeFrames, TimePlayed, TimeLeft;
+extern boolean         SiebAktiv;
+extern int             SiebCount;
+
+extern boolean         network_player_action_received;
 
-#define DOOR_GFX_PAGESIZE      DXSIZE
-#define DOOR_GFX_PAGEX1                (0*DOOR_GFX_PAGESIZE)
-#define DOOR_GFX_PAGEX2                (1*DOOR_GFX_PAGESIZE)
-#define DOOR_GFX_PAGEX3                (2*DOOR_GFX_PAGESIZE)
-#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_PAGEY1                0
-#define DOOR_GFX_PAGEY2                DYSIZE
-
-#endif
+extern struct LevelInfo                level;
+extern struct PlayerInfo       stored_player[], *local_player;
+extern struct HiScore          highscore[];
+extern struct TapeInfo         tape;
+extern struct GameInfo         game;
+extern struct GlobalInfo       global;
+extern struct ElementInfo      element_info[];
+extern struct GraphicInfo      graphic_info[];
+extern struct NewGraphicInfo   new_graphic_info[];
+extern struct ConfigInfo       image_config[], sound_config[];
+extern struct ConfigInfo       image_config_suffix[], sound_config_suffix[];
+extern struct FileInfo        *image_files, *sound_files;
+
+#endif /* MAIN_H */