#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)
+/* values for 'Elementeigenschaften1' */
#define EP_BIT_AMOEBALIVE (1 << 0)
#define EP_BIT_AMOEBOID (1 << 1)
#define EP_BIT_SCHLUESSEL (1 << 2)
#define EP_BIT_OVER_PLAYER (1 << 30)
#define EP_BIT_ACTIVE_BOMB (1 << 31)
-#define IS_AMOEBALIVE(e) (Elementeigenschaften[e] & EP_BIT_AMOEBALIVE)
-#define IS_AMOEBOID(e) (Elementeigenschaften[e] & EP_BIT_AMOEBOID)
-#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_MASSIVE(e) (Elementeigenschaften[e] & EP_BIT_MASSIVE)
-#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 IS_BD_ELEMENT(e) (Elementeigenschaften[e] & EP_BIT_BD_ELEMENT)
-#define IS_SB_ELEMENT(e) (Elementeigenschaften[e] & EP_BIT_SB_ELEMENT)
-#define IS_GEM(e) (Elementeigenschaften[e] & EP_BIT_GEM)
-#define IS_INACTIVE(e) (Elementeigenschaften[e] & EP_BIT_INACTIVE)
-#define IS_EXPLOSIVE(e) (Elementeigenschaften[e] & EP_BIT_EXPLOSIVE)
-#define IS_MAMPF3(e) (Elementeigenschaften[e] & EP_BIT_MAMPF3)
-#define IS_PUSHABLE(e) (Elementeigenschaften[e] & EP_BIT_PUSHABLE)
-#define ELEM_IS_PLAYER(e) (Elementeigenschaften[e] & EP_BIT_PLAYER)
-#define HAS_CONTENT(e) (Elementeigenschaften[e] & EP_BIT_HAS_CONTENT)
-#define IS_EATABLE(e) (Elementeigenschaften[e] & EP_BIT_EATABLE)
-#define IS_SP_ELEMENT(e) (Elementeigenschaften[e] & EP_BIT_SP_ELEMENT)
-#define IS_QUICK_GATE(e) (Elementeigenschaften[e] & EP_BIT_QUICK_GATE)
-#define IS_OVER_PLAYER(e) (Elementeigenschaften[e] & EP_BIT_OVER_PLAYER)
-#define IS_ACTIVE_BOMB(e) (Elementeigenschaften[e] & EP_BIT_ACTIVE_BOMB)
+/* values for 'Elementeigenschaften2' */
+#define EP_BIT_BELT (1 << 0)
+#define EP_BIT_BELT_SWITCH (1 << 1)
+
+#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_PLAYER(x,y) (ELEM_IS_PLAYER(StorePlayer[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 : \
#define TAPE_IS_STOPPED(x) (!(x).recording && !(x).playing &&!(x).pausing)
#define PLAYERINFO(x,y) (&stored_player[StorePlayer[x][y]-EL_SPIELER1])
+#define FORCE_FIELD_ON(p) ((p)->force_field_passive_time_left > 0)
-/* Pixmaps with Xpm or X11 Bitmap files */
+/* Pixmaps with graphic file */
#define PIX_BACK 0
#define PIX_DOOR 1
#define PIX_HEROES 2
#define PIX_TOONS 3
-#define PIX_MORE 4
-#define PIX_BIGFONT 5
-#define PIX_SMALLFONT 6
-/* Pixmaps without them */
-#define PIX_DB_BACK 7
-#define PIX_DB_DOOR 8
-#define PIX_DB_FIELD 9
-
-#define NUM_PICTURES 7
+#define PIX_SP 4
+#define PIX_DC 5
+#define PIX_BIGFONT 6
+#define PIX_SMALLFONT 7
+/* Pixmaps without graphic file */
+#define PIX_DB_BACK 8
+#define PIX_DB_DOOR 9
+#define PIX_DB_FIELD 10
+
+#define NUM_PICTURES 8
#define NUM_PIXMAPS 10
/* boundaries of arrays etc. */
#define MAX_TAPELEN (1000 * 50) /* max. time * framerate */
#define MAX_LEVDIR_ENTRIES 100
#define MAX_SCORE_ENTRIES 100
-#define MAX_ELEMENTS 512
+#define MAX_ELEMENTS 700 /* 500 static + 200 runtime */
#define MAX_NUM_AMOEBA 100
/* values for elements with content */
int Frame;
boolean Pushing;
+ boolean Switching;
boolean LevelSolved, GameOver;
boolean snapped;
int key[4];
int dynamite;
int dynabomb_count, dynabomb_size, dynabombs_left, dynabomb_xl;
+ int force_field_passive_time_left;
+ int force_field_active_time_left;
};
struct LevelInfo
struct LevelDirInfo
{
- char *filename;
- char *name;
+ char *filename; /* level series sub-directory inside level directory */
+ char *name; /* level series name, as displayed on main screen */
char *name_short; /* optional short name for level selection screen */
- char *author;
- int levels;
- int first_level;
- int last_level;
- int sort_priority;
- boolean user_defined;
- boolean readonly;
- int color;
+ char *author; /* level series author name levels without author */
+ char *imported_from; /* optional comment for imported level series */
+ int levels; /* number of levels in level series */
+ int first_level; /* first level number (to allow start with 0 or 1) */
+ int last_level; /* last level number (automatically calculated) */
+ int sort_priority; /* sort levels by 'sort_priority' and then by name */
+ boolean user_defined; /* user defined levels are stored in home directory */
+ boolean readonly; /* readonly levels can not be changed with editor */
+ int color; /* color to use on selection screen for this level */
+ char *class_desc; /* description of level series class */
};
struct TapeInfo
int yam_content_nr;
boolean magic_wall_active;
int magic_wall_time_left;
+ int belt_dir[4];
+ int belt_dir_nr[4];
+ int switchgate_pos;
+ int light_time_left;
};
struct GlobalInfo
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 JustHit[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 unsigned long Elementeigenschaften[MAX_ELEMENTS];
+extern unsigned long Elementeigenschaften1[MAX_ELEMENTS];
+extern unsigned long Elementeigenschaften2[MAX_ELEMENTS];
extern int level_nr, leveldir_nr, num_leveldirs;
extern int lev_fieldx,lev_fieldy, scroll_x,scroll_y;
#define GFX_PER_LINE 16
#define MINI_GFX_PER_LINE 32
#define MICRO_GFX_PER_LINE 128
+
#define HEROES_PER_LINE 16
-#define MINI_MORE_STARTX 0
-#define MINI_MORE_STARTY 352
-#define MICRO_MORE_STARTX 0
-#define MICRO_MORE_STARTY 448
-#define MORE_PER_LINE 16
-#define MINI_MORE_PER_LINE 16
-#define MICRO_MORE_PER_LINE 64
+
+#define MINI_SP_STARTX 0
+#define MINI_SP_STARTY 352
+#define MICRO_SP_STARTX 0
+#define MICRO_SP_STARTY 448
+#define SP_PER_LINE 16
+#define MINI_SP_PER_LINE 16
+#define MICRO_SP_PER_LINE 64
+
+#define MINI_DC_STARTX 256
+#define MINI_DC_STARTY 256
+#define MICRO_DC_STARTX 384
+#define MICRO_DC_STARTY 384
+#define DC_PER_LINE 16
+#define MINI_DC_PER_LINE 16
+#define MICRO_DC_PER_LINE 16
+
#define FONT_CHARS_PER_LINE 16
#define FONT_LINES_PER_FONT 4
/* game elements:
-** 0 - 255: real elements, stored in level file
-** 256 - 511: flag elements, only used at runtime
+** 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_SOKOBAN_OBJEKT 67
#define EL_SOKOBAN_FELD_LEER 68
#define EL_SOKOBAN_FELD_VOLL 69
-#define EL_BUTTERFLY_R 70
-#define EL_BUTTERFLY_O 71
-#define EL_BUTTERFLY_L 72
-#define EL_BUTTERFLY_U 73
-#define EL_FIREFLY_R 74
-#define EL_FIREFLY_O 75
-#define EL_FIREFLY_L 76
-#define EL_FIREFLY_U 77
-#define EL_BUTTERFLY_1 EL_BUTTERFLY_U
-#define EL_BUTTERFLY_2 EL_BUTTERFLY_L
-#define EL_BUTTERFLY_3 EL_BUTTERFLY_O
-#define EL_BUTTERFLY_4 EL_BUTTERFLY_R
-#define EL_FIREFLY_1 EL_FIREFLY_L
-#define EL_FIREFLY_2 EL_FIREFLY_U
-#define EL_FIREFLY_3 EL_FIREFLY_R
-#define EL_FIREFLY_4 EL_FIREFLY_O
+#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_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_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_BLACK_ORB 108
#define EL_AMOEBA2DIAM 109
-#define EL_MAULWURF 110
+#define EL_MOLE 110
#define EL_PINGUIN 111
#define EL_SONDE 112
-#define EL_PFEIL_L 113
-#define EL_PFEIL_R 114
-#define EL_PFEIL_O 115
-#define EL_PFEIL_U 116
+#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_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_FORCE_FIELD_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_TIME_GATE 269
+#define EL_TIME_GATE_WHEEL 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_FORCE_FIELD_ACTIVE 321
+
/* "real" (and therefore drawable) runtime elements */
-#define EL_SIEB_LEER 300
-#define EL_SIEB2_LEER 301
-#define EL_SIEB_VOLL 302
-#define EL_SIEB2_VOLL 303
-#define EL_SIEB_TOT 304
-#define EL_SIEB2_TOT 305
-#define EL_AUSGANG_ACT 306
-#define EL_SP_TERMINAL_ACTIVE 307
-#define EL_SP_BUG_ACTIVE 308
-#define EL_EM_KEY_1 309
-#define EL_EM_KEY_2 310
-#define EL_EM_KEY_3 311
-#define EL_EM_KEY_4 312
-#define EL_DYNABOMB_ACTIVE_1 313
-#define EL_DYNABOMB_ACTIVE_2 314
-#define EL_DYNABOMB_ACTIVE_3 315
-#define EL_DYNABOMB_ACTIVE_4 316
+#define EL_SIEB_LEER 500
+#define EL_SIEB2_LEER 501
+#define EL_SIEB_VOLL 502
+#define EL_SIEB2_VOLL 503
+#define EL_SIEB_TOT 504
+#define EL_SIEB2_TOT 505
+#define EL_AUSGANG_ACT 506
+#define EL_SP_TERMINAL_ACTIVE 507
+#define EL_SP_BUG_ACTIVE 508
+#define EL_EM_KEY_1 509
+#define EL_EM_KEY_2 510
+#define EL_EM_KEY_3 511
+#define EL_EM_KEY_4 512
+#define EL_DYNABOMB_ACTIVE_1 513
+#define EL_DYNABOMB_ACTIVE_2 514
+#define EL_DYNABOMB_ACTIVE_3 515
+#define EL_DYNABOMB_ACTIVE_4 516
+#define EL_SWITCHGATE_OPENING 517
+#define EL_SWITCHGATE_CLOSING 518
/* "unreal" (and therefore not drawable) runtime elements */
-#define EL_BLOCKED 400
-#define EL_EXPLODING 401
-#define EL_CRACKINGNUT 402
-#define EL_BLURB_LEFT 403
-#define EL_BLURB_RIGHT 404
-#define EL_AMOEBING 405
-#define EL_MAUERND 406
-#define EL_BURNING 407
-#define EL_PLAYER_IS_LEAVING 408
+#define EL_BLOCKED 600
+#define EL_EXPLODING 601
+#define EL_CRACKINGNUT 602
+#define EL_BLURB_LEFT 603
+#define EL_BLURB_RIGHT 604
+#define EL_AMOEBING 605
+#define EL_DEAMOEBING 606
+#define EL_MAUERND 607
+#define EL_BURNING 608
+#define EL_PLAYER_IS_LEAVING 609
/* game graphics:
** 0 - 255: graphics from "RocksScreen"
** 256 - 511: graphics from "RocksFont"
-** 512 - 767: graphics from "RocksMore"
-** 768 - 1023: graphics from "RocksHeroes"
+** 512 - 767: graphics from "RocksHeroes"
+** 768 - 1023: graphics from "RocksSP"
+** 1024 - 1279: graphics from "RocksDC"
*/
#define GFX_START_ROCKSSCREEN 0
#define GFX_END_ROCKSSCREEN 255
#define GFX_START_ROCKSFONT 256
#define GFX_END_ROCKSFONT 511
-#define GFX_START_ROCKSMORE 512
-#define GFX_END_ROCKSMORE 767
-#define GFX_START_ROCKSHEROES 768
-#define GFX_END_ROCKSHEROES 1023
+#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 NUM_TILES 1024
+#define NUM_TILES 1280
/* graphics from "RocksScreen" */
/* Zeile 0 (0) */
#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
+#define GFX_FLIEGER_RIGHT 56
+#define GFX_FLIEGER_UP 57
+#define GFX_FLIEGER_LEFT 58
+#define GFX_FLIEGER_DOWN 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
+#define GFX_KAEFER_RIGHT 72
+#define GFX_KAEFER_UP 73
+#define GFX_KAEFER_LEFT 74
+#define GFX_KAEFER_DOWN 75
/* Zeile 5 (80) */
#define GFX_MAMPFER 80
#define GFX_ROBOT 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
+#define GFX_PACMAN_RIGHT 88
+#define GFX_PACMAN_UP 89
+#define GFX_PACMAN_LEFT 90
+#define GFX_PACMAN_DOWN 91
/* Zeile 6 (96) */
#define GFX_ABLENK 96
#define GFX_ABLENK_EIN GFX_ABLENK
#define GFX_KUGEL_GRAU 143
/* Zeile 9 (144) */
#define GFX_PINGUIN 144
-#define GFX_MAULWURF 145
+#define GFX_MOLE 145
#define GFX_SCHWEIN 146
#define GFX_DRACHE 147
#define GFX_MAUER_XY 148
#define GFX_DYNABOMB_NR 188
#define GFX_DYNABOMB_SZ 191
/* Zeile 12 (192) */
-#define GFX_PFEIL_L 192
-#define GFX_PFEIL_R 193
-#define GFX_PFEIL_O 194
-#define GFX_PFEIL_U 195
+#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_R 200
-#define GFX_BUTTERFLY_O 201
-#define GFX_BUTTERFLY_L 202
-#define GFX_BUTTERFLY_U 203
-#define GFX_FIREFLY_R 204
-#define GFX_FIREFLY_O 205
-#define GFX_FIREFLY_L 206
-#define GFX_FIREFLY_U 207
+#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_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_MAULWURF_DOWN (GFX_START_ROCKSHEROES + 4*HEROES_PER_LINE + 8)
-#define GFX_MAULWURF_UP (GFX_START_ROCKSHEROES + 4*HEROES_PER_LINE +12)
-#define GFX_MAULWURF_LEFT (GFX_START_ROCKSHEROES + 5*HEROES_PER_LINE + 8)
-#define GFX_MAULWURF_RIGHT (GFX_START_ROCKSHEROES + 5*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_FLAMMEN_UP (GFX_START_ROCKSHEROES +14*HEROES_PER_LINE + 8)
#define GFX_FLAMMEN_DOWN (GFX_START_ROCKSHEROES +15*HEROES_PER_LINE + 8)
-/* graphics from "RocksMore" */
-#define GFX_SP_EMPTY (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 0)
+/* graphics from "RocksSP" */
+#define GFX_SP_EMPTY (GFX_START_ROCKSSP + 0 * SP_PER_LINE + 0)
/*
-#define GFX_SP_ZONK (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 1)
+#define GFX_SP_ZONK (GFX_START_ROCKSSP + 0 * SP_PER_LINE + 1)
*/
-#define GFX_SP_BASE (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 2)
-#define GFX_SP_MURPHY (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 3)
-#define GFX_SP_INFOTRON (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 4)
-#define GFX_SP_CHIP_SINGLE (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 5)
-#define GFX_SP_HARD_GRAY (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 6)
-#define GFX_SP_EXIT (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 7)
-#define GFX_SP_DISK_ORANGE (GFX_START_ROCKSMORE + 1 * MORE_PER_LINE + 0)
-#define GFX_SP_PORT1_RIGHT (GFX_START_ROCKSMORE + 1 * MORE_PER_LINE + 1)
-#define GFX_SP_PORT1_DOWN (GFX_START_ROCKSMORE + 1 * MORE_PER_LINE + 2)
-#define GFX_SP_PORT1_LEFT (GFX_START_ROCKSMORE + 1 * MORE_PER_LINE + 3)
-#define GFX_SP_PORT1_UP (GFX_START_ROCKSMORE + 1 * MORE_PER_LINE + 4)
-#define GFX_SP_PORT2_RIGHT (GFX_START_ROCKSMORE + 1 * MORE_PER_LINE + 5)
-#define GFX_SP_PORT2_DOWN (GFX_START_ROCKSMORE + 1 * MORE_PER_LINE + 6)
-#define GFX_SP_PORT2_LEFT (GFX_START_ROCKSMORE + 1 * MORE_PER_LINE + 7)
-#define GFX_SP_PORT2_UP (GFX_START_ROCKSMORE + 2 * MORE_PER_LINE + 0)
-#define GFX_SP_SNIKSNAK (GFX_START_ROCKSMORE + 2 * MORE_PER_LINE + 1)
-#define GFX_SP_DISK_YELLOW (GFX_START_ROCKSMORE + 2 * MORE_PER_LINE + 2)
-#define GFX_SP_TERMINAL (GFX_START_ROCKSMORE + 2 * MORE_PER_LINE + 3)
-#define GFX_SP_DISK_RED (GFX_START_ROCKSMORE + 2 * MORE_PER_LINE + 4)
-#define GFX_SP_PORT_Y (GFX_START_ROCKSMORE + 2 * MORE_PER_LINE + 5)
-#define GFX_SP_PORT_X (GFX_START_ROCKSMORE + 2 * MORE_PER_LINE + 6)
-#define GFX_SP_PORT_XY (GFX_START_ROCKSMORE + 2 * MORE_PER_LINE + 7)
-#define GFX_SP_ELECTRON (GFX_START_ROCKSMORE + 3 * MORE_PER_LINE + 0)
-#define GFX_SP_BUG (GFX_START_ROCKSMORE + 3 * MORE_PER_LINE + 1)
-#define GFX_SP_CHIP_LEFT (GFX_START_ROCKSMORE + 3 * MORE_PER_LINE + 2)
-#define GFX_SP_CHIP_RIGHT (GFX_START_ROCKSMORE + 3 * MORE_PER_LINE + 3)
-#define GFX_SP_HARD_BASE1 (GFX_START_ROCKSMORE + 3 * MORE_PER_LINE + 4)
-#define GFX_SP_HARD_GREEN (GFX_START_ROCKSMORE + 3 * MORE_PER_LINE + 5)
-#define GFX_SP_HARD_BLUE (GFX_START_ROCKSMORE + 3 * MORE_PER_LINE + 6)
-#define GFX_SP_HARD_RED (GFX_START_ROCKSMORE + 3 * MORE_PER_LINE + 7)
-#define GFX_SP_HARD_YELLOW (GFX_START_ROCKSMORE + 4 * MORE_PER_LINE + 0)
-#define GFX_SP_HARD_BASE2 (GFX_START_ROCKSMORE + 4 * MORE_PER_LINE + 1)
-#define GFX_SP_HARD_BASE3 (GFX_START_ROCKSMORE + 4 * MORE_PER_LINE + 2)
-#define GFX_SP_HARD_BASE4 (GFX_START_ROCKSMORE + 4 * MORE_PER_LINE + 3)
-#define GFX_SP_HARD_BASE5 (GFX_START_ROCKSMORE + 4 * MORE_PER_LINE + 4)
-#define GFX_SP_HARD_BASE6 (GFX_START_ROCKSMORE + 4 * MORE_PER_LINE + 5)
-#define GFX_SP_CHIP_UPPER (GFX_START_ROCKSMORE + 4 * MORE_PER_LINE + 6)
-#define GFX_SP_CHIP_LOWER (GFX_START_ROCKSMORE + 4 * MORE_PER_LINE + 7)
-
-#define GFX_INVISIBLE_STEEL (GFX_START_ROCKSMORE + 5 * MORE_PER_LINE + 3)
-#define GFX_UNSICHTBAR (GFX_START_ROCKSMORE + 5 * MORE_PER_LINE + 7)
-#define GFX_SP_ZONK (GFX_START_ROCKSMORE + 6 * MORE_PER_LINE + 0)
-
-#define GFX_EM_KEY_1 (GFX_START_ROCKSMORE + 6 * MORE_PER_LINE + 4)
-#define GFX_EM_KEY_2 (GFX_START_ROCKSMORE + 6 * MORE_PER_LINE + 5)
-#define GFX_EM_KEY_3 (GFX_START_ROCKSMORE + 6 * MORE_PER_LINE + 6)
-#define GFX_EM_KEY_4 (GFX_START_ROCKSMORE + 6 * MORE_PER_LINE + 7)
-#define GFX_EM_GATE_1 (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 0)
-#define GFX_EM_GATE_2 (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 1)
-#define GFX_EM_GATE_3 (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 2)
-#define GFX_EM_GATE_4 (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 3)
-#define GFX_EM_GATE_1X (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 4)
-#define GFX_EM_GATE_2X (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 5)
-#define GFX_EM_GATE_3X (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 6)
-#define GFX_EM_GATE_4X (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 7)
-
-#define GFX_MURPHY_GO_LEFT (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 8)
-#define GFX_MURPHY_ANY_LEFT (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 9)
-#define GFX_MURPHY_GO_RIGHT (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 11)
-#define GFX_MURPHY_ANY_RIGHT (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 12)
-#define GFX_MURPHY_SNAP_UP (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 14)
-#define GFX_MURPHY_SNAP_DOWN (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 15)
-#define GFX_MURPHY_SNAP_RIGHT (GFX_START_ROCKSMORE + 1 * MORE_PER_LINE + 8)
-#define GFX_MURPHY_SNAP_LEFT (GFX_START_ROCKSMORE + 1 * MORE_PER_LINE + 9)
-#define GFX_MURPHY_PUSH_RIGHT (GFX_START_ROCKSMORE + 1 * MORE_PER_LINE + 10)
-#define GFX_MURPHY_PUSH_LEFT (GFX_START_ROCKSMORE + 1 * MORE_PER_LINE + 11)
-
-#define GFX_SP_BUG_WARNING (GFX_START_ROCKSMORE + 2 * MORE_PER_LINE + 15)
-#define GFX_SP_EXPLODE_EMPTY (GFX_START_ROCKSMORE + 3 * MORE_PER_LINE + 8)
-#define GFX_SP_EXPLODE_INFOTRON (GFX_START_ROCKSMORE + 4 * MORE_PER_LINE + 8)
-#define GFX_SP_BUG_ACTIVE (GFX_START_ROCKSMORE + 6 * MORE_PER_LINE + 8)
-#define GFX_SP_SNIKSNAK_LEFT (GFX_START_ROCKSMORE + 8 * MORE_PER_LINE + 8)
-#define GFX_SP_SNIKSNAK_RIGHT (GFX_START_ROCKSMORE + 8 * MORE_PER_LINE + 12)
-#define GFX_SP_SNIKSNAK_UP (GFX_START_ROCKSMORE + 9 * MORE_PER_LINE + 8)
-#define GFX_SP_SNIKSNAK_DOWN (GFX_START_ROCKSMORE + 9 * MORE_PER_LINE + 12)
-
-#define GFX2_SP_ELECTRON (GFX_START_ROCKSMORE + 10 * MORE_PER_LINE + 8)
-#define GFX2_SP_TERMINAL (GFX_START_ROCKSMORE + 11 * MORE_PER_LINE + 8)
-#define GFX2_SP_TERMINAL_ACTIVE (GFX_START_ROCKSMORE + 12 * MORE_PER_LINE + 8)
+#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)
+
+/* 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_OPEN (GFX_START_ROCKSDC + 15 * DC_PER_LINE + 4)
+#define GFX_SWITCHGATE_CLOSED (GFX_START_ROCKSDC + 15 * DC_PER_LINE + 0)
+#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_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_FORCE_FIELD_PASSIVE (GFX_START_ROCKSDC + 1 * DC_PER_LINE + 8)
+#define GFX_FORCE_FIELD_ACTIVE (GFX_START_ROCKSDC + 1 * DC_PER_LINE + 8)
/* graphics from "RocksFont" */
#define GFX_CHAR_START (GFX_START_ROCKSFONT)
#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_PEARL GFX_CHAR_FRAGE
+#define GFX_CRYSTAL GFX_CHAR_FRAGE
+#define GFX_WALL_PEARL GFX_CHAR_FRAGE
+#define GFX_WALL_CRYSTAL GFX_CHAR_FRAGE
+#define GFX_DOOR_WHITE GFX_CHAR_FRAGE
+#define GFX_DOOR_WHITE_GRAY GFX_CHAR_FRAGE
+#define GFX_KEY_WHITE GFX_CHAR_FRAGE
+#define GFX_TIME_GATE GFX_CHAR_FRAGE
+#define GFX_TIME_GATE_WHEEL 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_ALCHEMY 0
#define SND_AMOEBE 1