+/* 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 (VYSIZE + 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)
+
+
+/* "real" level file elements */
+#define EL_UNDEFINED -1
+
+#define EL_EMPTY_SPACE 0
+#define EL_EMPTY EL_EMPTY_SPACE
+#define EL_SAND 1
+#define EL_WALL 2
+#define EL_WALL_CRUMBLED 3
+#define EL_ROCK 4
+#define EL_KEY_OBSOLETE 5 /* obsolete; mapped to EL_KEY1 */
+#define EL_EMERALD 6
+#define EL_EXIT_CLOSED 7
+#define EL_PLAYER_OBSOLETE 8 /* obsolete; mapped to EL_PLAYER1 */
+#define EL_BUG 9
+#define EL_SPACESHIP 10
+#define EL_YAMYAM 11
+#define EL_ROBOT 12
+#define EL_STEELWALL 13
+#define EL_DIAMOND 14
+#define EL_AMOEBA_DEAD 15
+#define EL_QUICKSAND_EMPTY 16
+#define EL_QUICKSAND_FULL 17
+#define EL_AMOEBA_DROP 18
+#define EL_BOMB 19
+#define EL_MAGIC_WALL 20
+#define EL_SPEED_PILL 21
+#define EL_ACID 22
+#define EL_AMOEBA_WET 23
+#define EL_AMOEBA_DRY 24
+#define EL_NUT 25
+#define EL_GAMEOFLIFE 26
+#define EL_BIOMAZE 27
+#define EL_DYNAMITE_ACTIVE 28
+#define EL_STONEBLOCK 29
+#define EL_ROBOT_WHEEL 30
+#define EL_ROBOT_WHEEL_ACTIVE 31
+#define EL_KEY1 32
+#define EL_KEY2 33
+#define EL_KEY3 34
+#define EL_KEY4 35
+#define EL_GATE1 36
+#define EL_GATE2 37
+#define EL_GATE3 38
+#define EL_GATE4 39
+#define EL_GATE1_GRAY 40
+#define EL_GATE2_GRAY 41
+#define EL_GATE3_GRAY 42
+#define EL_GATE4_GRAY 43
+#define EL_DYNAMITE 44
+#define EL_PACMAN 45
+#define EL_INVISIBLE_WALL 46
+#define EL_LAMP 47
+#define EL_LAMP_ACTIVE 48
+#define EL_WALL_EMERALD 49
+#define EL_WALL_DIAMOND 50
+#define EL_AMOEBA_FULL 51
+#define EL_BD_AMOEBA 52
+#define EL_TIME_ORB_FULL 53
+#define EL_TIME_ORB_EMPTY 54
+#define EL_WALL_GROWING 55
+#define EL_BD_DIAMOND 56
+#define EL_EMERALD_YELLOW 57
+#define EL_WALL_BD_DIAMOND 58
+#define EL_WALL_EMERALD_YELLOW 59
+#define EL_DARK_YAMYAM 60
+#define EL_BD_MAGIC_WALL 61
+#define EL_INVISIBLE_STEELWALL 62
+
+#define EL_UNUSED_63 63
+
+#define EL_DYNABOMB_NR 64
+#define EL_DYNABOMB_SZ 65
+#define EL_DYNABOMB_XL 66
+#define EL_SOKOBAN_OBJECT 67
+#define EL_SOKOBAN_FIELD_EMPTY 68
+#define EL_SOKOBAN_FIELD_FULL 69
+#define EL_BD_BUTTERFLY_RIGHT 70
+#define EL_BD_BUTTERFLY_UP 71
+#define EL_BD_BUTTERFLY_LEFT 72
+#define EL_BD_BUTTERFLY_DOWN 73
+#define EL_BD_FIREFLY_RIGHT 74
+#define EL_BD_FIREFLY_UP 75
+#define EL_BD_FIREFLY_LEFT 76
+#define EL_BD_FIREFLY_DOWN 77
+#define EL_BD_BUTTERFLY_1 EL_BD_BUTTERFLY_DOWN
+#define EL_BD_BUTTERFLY_2 EL_BD_BUTTERFLY_LEFT
+#define EL_BD_BUTTERFLY_3 EL_BD_BUTTERFLY_UP
+#define EL_BD_BUTTERFLY_4 EL_BD_BUTTERFLY_RIGHT
+#define EL_BD_FIREFLY_1 EL_BD_FIREFLY_LEFT
+#define EL_BD_FIREFLY_2 EL_BD_FIREFLY_DOWN
+#define EL_BD_FIREFLY_3 EL_BD_FIREFLY_RIGHT
+#define EL_BD_FIREFLY_4 EL_BD_FIREFLY_UP
+#define EL_BD_BUTTERFLY 78
+#define EL_BD_FIREFLY 79
+#define EL_PLAYER1 80
+#define EL_PLAYER2 81
+#define EL_PLAYER3 82
+#define EL_PLAYER4 83
+#define EL_BUG_RIGHT 84
+#define EL_BUG_UP 85
+#define EL_BUG_LEFT 86
+#define EL_BUG_DOWN 87
+#define EL_SPACESHIP_RIGHT 88
+#define EL_SPACESHIP_UP 89
+#define EL_SPACESHIP_LEFT 90
+#define EL_SPACESHIP_DOWN 91
+#define EL_PACMAN_RIGHT 92
+#define EL_PACMAN_UP 93
+#define EL_PACMAN_LEFT 94
+#define EL_PACMAN_DOWN 95
+#define EL_EMERALD_RED 96
+#define EL_EMERALD_PURPLE 97
+#define EL_WALL_EMERALD_RED 98
+#define EL_WALL_EMERALD_PURPLE 99
+#define EL_ACIDPOOL_TOPLEFT 100
+#define EL_ACIDPOOL_TOPRIGHT 101
+#define EL_ACIDPOOL_BOTTOMLEFT 102
+#define EL_ACIDPOOL_BOTTOM 103
+#define EL_ACIDPOOL_BOTTOMRIGHT 104
+#define EL_BD_WALL 105
+#define EL_BD_ROCK 106
+#define EL_EXIT_OPEN 107
+#define EL_BLACK_ORB 108
+#define EL_AMOEBA_TO_DIAMOND 109
+#define EL_MOLE 110
+#define EL_PENGUIN 111
+#define EL_SATELLITE 112
+#define EL_ARROW_BLUE_LEFT 113
+#define EL_ARROW_BLUE_RIGHT 114
+#define EL_ARROW_BLUE_UP 115
+#define EL_ARROW_BLUE_DOWN 116
+#define EL_PIG 117
+#define EL_DRAGON 118
+
+#define EL_EM_KEY1_FILE 119
+
+#define EL_CHAR_START 120
+#define EL_CHAR_ASCII0 (EL_CHAR_START - 32)
+#define EL_CHAR_ASCII0_START (EL_CHAR_ASCII0 + 32)
+#define EL_CHAR_EXCLAM (EL_CHAR_ASCII0 + 33)
+#define EL_CHAR_QUOTEDBL (EL_CHAR_ASCII0 + 34)
+#define EL_CHAR_NUMBERSIGN (EL_CHAR_ASCII0 + 35)
+#define EL_CHAR_DOLLAR (EL_CHAR_ASCII0 + 36)
+#define EL_CHAR_PROCENT (EL_CHAR_ASCII0 + 37)
+#define EL_CHAR_AMPERSAND (EL_CHAR_ASCII0 + 38)
+#define EL_CHAR_APOSTROPHE (EL_CHAR_ASCII0 + 39)
+#define EL_CHAR_PARENLEFT (EL_CHAR_ASCII0 + 40)
+#define EL_CHAR_PARENRIGHT (EL_CHAR_ASCII0 + 41)
+#define EL_CHAR_ASTERISK (EL_CHAR_ASCII0 + 42)
+#define EL_CHAR_PLUS (EL_CHAR_ASCII0 + 43)
+#define EL_CHAR_COMMA (EL_CHAR_ASCII0 + 44)
+#define EL_CHAR_MINUS (EL_CHAR_ASCII0 + 45)
+#define EL_CHAR_PERIOD (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_COLON (EL_CHAR_ASCII0 + 58)
+#define EL_CHAR_SEMICOLON (EL_CHAR_ASCII0 + 59)
+#define EL_CHAR_LESS (EL_CHAR_ASCII0 + 60)
+#define EL_CHAR_EQUAL (EL_CHAR_ASCII0 + 61)
+#define EL_CHAR_GREATER (EL_CHAR_ASCII0 + 62)
+#define EL_CHAR_QUESTION (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_COPYRIGHT (EL_CHAR_ASCII0 + 94)
+#define EL_CHAR_UNDERSCORE (EL_CHAR_ASCII0 + 95)
+#define EL_CHAR_EMPTY (EL_CHAR_ASCII0 + 96)
+#define EL_CHAR_DEGREE (EL_CHAR_ASCII0 + 97)
+#define EL_CHAR_TM (EL_CHAR_ASCII0 + 98)
+#define EL_CHAR_CURSOR (EL_CHAR_ASCII0 + 99)
+#define EL_CHAR_ASCII0_END (EL_CHAR_ASCII0 + 111)
+#define EL_CHAR_END (EL_CHAR_START + 79)
+
+#define EL_CHAR(x) ((x) == 'Ä' ? EL_CHAR_AE : \
+ (x) == 'Ö' ? EL_CHAR_OE : \
+ (x) == 'Ü' ? EL_CHAR_UE : \
+ (x) == '^' ? EL_CHAR_COPYRIGHT : \
+ (x) == '_' ? EL_CHAR_UNDERSCORE : \
+ (x) == '°' ? EL_CHAR_DEGREE : \
+ (x) == '´' ? EL_CHAR_TM : \
+ (x) == '|' ? EL_CHAR_CURSOR : \
+ EL_CHAR_A + (x) - 'A')
+
+#define EL_WALL_GROWING_X 200
+#define EL_WALL_GROWING_Y 201
+#define EL_WALL_GROWING_XY 202
+
+#define EL_EM_GATE1 203
+#define EL_EM_GATE2 204
+#define EL_EM_GATE3 205
+#define EL_EM_GATE4 206
+
+#define EL_EM_KEY2_FILE 207
+#define EL_EM_KEY3_FILE 208
+#define EL_EM_KEY4_FILE 209
+
+#define EL_SP_START 210
+#define EL_SP_EMPTY_SPACE (EL_SP_START + 0)
+#define EL_SP_EMPTY EL_SP_EMPTY_SPACE
+#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_CLOSED (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_BUGGY_BASE (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_GATE1_GRAY 250
+#define EL_EM_GATE2_GRAY 251
+#define EL_EM_GATE3_GRAY 252
+#define EL_EM_GATE4_GRAY 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_NORMAL 263
+#define EL_EXTRA_TIME 264
+#define EL_SWITCHGATE_OPEN 265
+#define EL_SWITCHGATE_CLOSED 266
+#define EL_SWITCHGATE_SWITCH_UP 267
+#define EL_SWITCHGATE_SWITCH_DOWN 268
+
+#define EL_UNUSED_269 269
+#define EL_UNUSED_270 270
+
+#define EL_CONVEYOR_BELT1_LEFT 271
+#define EL_CONVEYOR_BELT1_MIDDLE 272
+#define EL_CONVEYOR_BELT1_RIGHT 273
+#define EL_CONVEYOR_BELT1_SWITCH_LEFT 274
+#define EL_CONVEYOR_BELT1_SWITCH_MIDDLE 275
+#define EL_CONVEYOR_BELT1_SWITCH_RIGHT 276
+#define EL_CONVEYOR_BELT2_LEFT 277
+#define EL_CONVEYOR_BELT2_MIDDLE 278
+#define EL_CONVEYOR_BELT2_RIGHT 279
+#define EL_CONVEYOR_BELT2_SWITCH_LEFT 280
+#define EL_CONVEYOR_BELT2_SWITCH_MIDDLE 281
+#define EL_CONVEYOR_BELT2_SWITCH_RIGHT 282
+#define EL_CONVEYOR_BELT3_LEFT 283
+#define EL_CONVEYOR_BELT3_MIDDLE 284
+#define EL_CONVEYOR_BELT3_RIGHT 285
+#define EL_CONVEYOR_BELT3_SWITCH_LEFT 286
+#define EL_CONVEYOR_BELT3_SWITCH_MIDDLE 287
+#define EL_CONVEYOR_BELT3_SWITCH_RIGHT 288
+#define EL_CONVEYOR_BELT4_LEFT 289
+#define EL_CONVEYOR_BELT4_MIDDLE 290
+#define EL_CONVEYOR_BELT4_RIGHT 291
+#define EL_CONVEYOR_BELT4_SWITCH_LEFT 292
+#define EL_CONVEYOR_BELT4_SWITCH_MIDDLE 293
+#define EL_CONVEYOR_BELT4_SWITCH_RIGHT 294
+#define EL_LANDMINE 295
+#define EL_ENVELOPE 296
+#define EL_LIGHT_SWITCH 297
+#define EL_LIGHT_SWITCH_ACTIVE 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_STEELWALL_SLANTED 315
+#define EL_INVISIBLE_SAND 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_DEADLY 321
+#define EL_TIMEGATE_OPEN 322
+#define EL_TIMEGATE_CLOSED 323
+#define EL_TIMEGATE_SWITCH_ACTIVE 324
+#define EL_TIMEGATE_SWITCH 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_DIRECTION 331
+
+#define EL_EMC_STEELWALL1 332
+#define EL_EMC_STEELWALL2 333
+#define EL_EMC_STEELWALL3 334
+#define EL_EMC_STEELWALL4 335
+#define EL_EMC_WALL_PILLAR_UPPER 336
+#define EL_EMC_WALL_PILLAR_MIDDLE 337
+#define EL_EMC_WALL_PILLAR_LOWER 338
+#define EL_EMC_WALL4 339
+#define EL_EMC_WALL5 340
+#define EL_EMC_WALL6 341
+#define EL_EMC_WALL7 342
+#define EL_EMC_WALL8 343
+
+#define EL_TUBE_ALL 344
+#define EL_TUBE_VERTICAL 345
+#define EL_TUBE_HORIZONTAL 346
+#define EL_TUBE_VERTICAL_LEFT 347
+#define EL_TUBE_VERTICAL_RIGHT 348
+#define EL_TUBE_HORIZONTAL_UP 349
+#define EL_TUBE_HORIZONTAL_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 356
+#define EL_DX_SUPABOMB 357
+
+#define EL_UNUSED_358 358
+#define EL_UNUSED_359 359
+
+#define EL_CUSTOM_START 360
+#define EL_CUSTOM_1 (EL_CUSTOM_START + 0)
+#define EL_CUSTOM_128 (EL_CUSTOM_START + 127)
+#define EL_CUSTOM_END (EL_CUSTOM_START + 127)
+
+#define NUM_FILE_ELEMENTS 488
+
+
+/* "real" (and therefore drawable) runtime elements */
+#define EL_FIRST_RUNTIME_REAL NUM_FILE_ELEMENTS
+
+#define EL_EM_KEY1 (EL_FIRST_RUNTIME_REAL + 0)
+#define EL_EM_KEY2 (EL_FIRST_RUNTIME_REAL + 1)
+#define EL_EM_KEY3 (EL_FIRST_RUNTIME_REAL + 2)
+#define EL_EM_KEY4 (EL_FIRST_RUNTIME_REAL + 3)
+#define EL_DYNABOMB_PLAYER1_ACTIVE (EL_FIRST_RUNTIME_REAL + 4)
+#define EL_DYNABOMB_PLAYER2_ACTIVE (EL_FIRST_RUNTIME_REAL + 5)
+#define EL_DYNABOMB_PLAYER3_ACTIVE (EL_FIRST_RUNTIME_REAL + 6)
+#define EL_DYNABOMB_PLAYER4_ACTIVE (EL_FIRST_RUNTIME_REAL + 7)
+#define EL_SWITCHGATE_OPENING (EL_FIRST_RUNTIME_REAL + 8)
+#define EL_SWITCHGATE_CLOSING (EL_FIRST_RUNTIME_REAL + 9)
+#define EL_TIMEGATE_OPENING (EL_FIRST_RUNTIME_REAL + 10)
+#define EL_TIMEGATE_CLOSING (EL_FIRST_RUNTIME_REAL + 11)
+#define EL_PEARL_BREAKING (EL_FIRST_RUNTIME_REAL + 12)
+#define EL_TRAP_ACTIVE (EL_FIRST_RUNTIME_REAL + 13)
+#define EL_INVISIBLE_STEELWALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 14)
+#define EL_INVISIBLE_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 15)
+#define EL_INVISIBLE_SAND_ACTIVE (EL_FIRST_RUNTIME_REAL + 16)
+#define EL_CONVEYOR_BELT1_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 17)
+#define EL_CONVEYOR_BELT1_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 18)
+#define EL_CONVEYOR_BELT1_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 19)
+#define EL_CONVEYOR_BELT2_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 20)
+#define EL_CONVEYOR_BELT2_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 21)
+#define EL_CONVEYOR_BELT2_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 22)
+#define EL_CONVEYOR_BELT3_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 23)
+#define EL_CONVEYOR_BELT3_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 24)
+#define EL_CONVEYOR_BELT3_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 25)
+#define EL_CONVEYOR_BELT4_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 26)
+#define EL_CONVEYOR_BELT4_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 27)
+#define EL_CONVEYOR_BELT4_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 28)
+#define EL_EXIT_OPENING (EL_FIRST_RUNTIME_REAL + 29)
+#define EL_SP_EXIT_OPEN (EL_FIRST_RUNTIME_REAL + 30)
+#define EL_SP_TERMINAL_ACTIVE (EL_FIRST_RUNTIME_REAL + 31)
+#define EL_SP_BUGGY_BASE_ACTIVATING (EL_FIRST_RUNTIME_REAL + 32)
+#define EL_SP_BUGGY_BASE_ACTIVE (EL_FIRST_RUNTIME_REAL + 33)
+#define EL_SP_MURPHY_CLONE (EL_FIRST_RUNTIME_REAL + 34)
+#define EL_AMOEBA_DRIPPING (EL_FIRST_RUNTIME_REAL + 35)
+#define EL_QUICKSAND_EMPTYING (EL_FIRST_RUNTIME_REAL + 36)
+#define EL_MAGIC_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 37)
+#define EL_BD_MAGIC_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 38)
+#define EL_MAGIC_WALL_FULL (EL_FIRST_RUNTIME_REAL + 39)
+#define EL_BD_MAGIC_WALL_FULL (EL_FIRST_RUNTIME_REAL + 40)
+#define EL_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 41)
+#define EL_BD_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 42)
+#define EL_MAGIC_WALL_DEAD (EL_FIRST_RUNTIME_REAL + 43)
+#define EL_BD_MAGIC_WALL_DEAD (EL_FIRST_RUNTIME_REAL + 44)
+
+/* "unreal" (and therefore not drawable) runtime elements */
+#define EL_FIRST_RUNTIME_UNREAL (EL_FIRST_RUNTIME_REAL + 45)
+
+#define EL_BLOCKED (EL_FIRST_RUNTIME_UNREAL + 0)
+#define EL_EXPLOSION (EL_FIRST_RUNTIME_UNREAL + 1)
+#define EL_NUT_CRACKING (EL_FIRST_RUNTIME_UNREAL + 2)
+#define EL_ACID_SPLASH_LEFT (EL_FIRST_RUNTIME_UNREAL + 3)
+#define EL_ACID_SPLASH_RIGHT (EL_FIRST_RUNTIME_UNREAL + 4)
+#define EL_AMOEBA_CREATING (EL_FIRST_RUNTIME_UNREAL + 5)
+#define EL_AMOEBA_SHRINKING (EL_FIRST_RUNTIME_UNREAL + 6)
+#define EL_WALL_GROWING_ACTIVE (EL_FIRST_RUNTIME_UNREAL + 7)
+#define EL_FLAMES (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_BD_MAGIC_WALL_FILLING (EL_FIRST_RUNTIME_UNREAL + 12)
+
+/* dummy (not drawable) runtime elements (internal use only) */
+#define EL_FIRST_DUMMY (EL_FIRST_RUNTIME_UNREAL + 13)
+
+#define EL_STEELWALL_TOPLEFT (EL_FIRST_DUMMY + 0)
+#define EL_STEELWALL_TOPRIGHT (EL_FIRST_DUMMY + 1)
+#define EL_STEELWALL_BOTTOMLEFT (EL_FIRST_DUMMY + 2)
+#define EL_STEELWALL_BOTTOMRIGHT (EL_FIRST_DUMMY + 3)
+#define EL_STEELWALL_HORIZONTAL (EL_FIRST_DUMMY + 4)
+#define EL_STEELWALL_VERTICAL (EL_FIRST_DUMMY + 5)
+#define EL_INVISIBLE_STEELWALL_TOPLEFT (EL_FIRST_DUMMY + 6)
+#define EL_INVISIBLE_STEELWALL_TOPRIGHT (EL_FIRST_DUMMY + 7)
+#define EL_INVISIBLE_STEELWALL_BOTTOMLEFT (EL_FIRST_DUMMY + 8)
+#define EL_INVISIBLE_STEELWALL_BOTTOMRIGHT (EL_FIRST_DUMMY + 9)
+#define EL_INVISIBLE_STEELWALL_HORIZONTAL (EL_FIRST_DUMMY + 10)
+#define EL_INVISIBLE_STEELWALL_VERTICAL (EL_FIRST_DUMMY + 11)
+#define EL_SAND_CRUMBLED (EL_FIRST_DUMMY + 12)
+#define EL_BD_AMOEBA_PART1 (EL_FIRST_DUMMY + 13)
+#define EL_BD_AMOEBA_PART2 (EL_FIRST_DUMMY + 14)
+#define EL_BD_AMOEBA_PART3 (EL_FIRST_DUMMY + 15)
+#define EL_BD_AMOEBA_PART4 (EL_FIRST_DUMMY + 16)
+#define EL_AMOEBA_WET_PART1 (EL_FIRST_DUMMY + 17)
+#define EL_AMOEBA_WET_PART2 (EL_FIRST_DUMMY + 18)
+#define EL_AMOEBA_WET_PART3 (EL_FIRST_DUMMY + 19)
+#define EL_AMOEBA_WET_PART4 (EL_FIRST_DUMMY + 20)
+#define EL_AMOEBA_DRY_PART1 (EL_FIRST_DUMMY + 21)
+#define EL_AMOEBA_DRY_PART2 (EL_FIRST_DUMMY + 22)
+#define EL_AMOEBA_DRY_PART3 (EL_FIRST_DUMMY + 23)
+#define EL_AMOEBA_DRY_PART4 (EL_FIRST_DUMMY + 24)
+#define EL_AMOEBA_FULL_PART1 (EL_FIRST_DUMMY + 25)
+#define EL_AMOEBA_FULL_PART2 (EL_FIRST_DUMMY + 26)
+#define EL_AMOEBA_FULL_PART3 (EL_FIRST_DUMMY + 27)
+#define EL_AMOEBA_FULL_PART4 (EL_FIRST_DUMMY + 28)
+#define EL_AMOEBA_DEAD_PART1 (EL_FIRST_DUMMY + 29)
+#define EL_AMOEBA_DEAD_PART2 (EL_FIRST_DUMMY + 30)
+#define EL_AMOEBA_DEAD_PART3 (EL_FIRST_DUMMY + 31)
+#define EL_AMOEBA_DEAD_PART4 (EL_FIRST_DUMMY + 32)
+#define EL_DYNABOMB_ACTIVE (EL_FIRST_DUMMY + 33)
+#define EL_SHIELD_NORMAL_ACTIVE (EL_FIRST_DUMMY + 34)
+#define EL_SHIELD_DEADLY_ACTIVE (EL_FIRST_DUMMY + 35)
+#define EL_ARROW_RED_LEFT (EL_FIRST_DUMMY + 36)
+#define EL_ARROW_RED_RIGHT (EL_FIRST_DUMMY + 37)
+#define EL_ARROW_RED_UP (EL_FIRST_DUMMY + 38)
+#define EL_ARROW_RED_DOWN (EL_FIRST_DUMMY + 39)
+
+#define MAX_NUM_ELEMENTS (EL_FIRST_DUMMY + 40)
+
+
+/* values for graphics/sounds action types */
+#define ACTION_DEFAULT 0
+#define ACTION_WAITING 1
+#define ACTION_FALLING 2
+#define ACTION_MOVING 3
+#define ACTION_DIGGING 4
+#define ACTION_SNAPPING 5
+#define ACTION_COLLECTING 6
+#define ACTION_PUSHING 7
+#define ACTION_PASSING 8
+#define ACTION_IMPACT 9
+#define ACTION_CRACKING 10
+#define ACTION_BREAKING 11
+#define ACTION_ACTIVATING 12
+#define ACTION_OPENING 13
+#define ACTION_CLOSING 14
+#define ACTION_EATING 15
+#define ACTION_ATTACKING 16
+#define ACTION_GROWING 17
+#define ACTION_SHRINKING 18
+#define ACTION_ACTIVE 19
+#define ACTION_OTHER 20
+
+#define NUM_ACTIONS 21
+
+/* values for special image configuration suffixes */
+#define GFX_SPECIAL_ARG_EDITOR 0
+
+#define NUM_SPECIAL_GFX_ARGS 1
+
+
+/* values for image configuration suffixes */
+#define GFX_ARG_XPOS 0
+#define GFX_ARG_YPOS 1
+#define GFX_ARG_OFFSET 2
+#define GFX_ARG_VERTICAL 3
+#define GFX_ARG_XOFFSET 4
+#define GFX_ARG_YOFFSET 5
+#define GFX_ARG_FRAMES 6
+#define GFX_ARG_START_FRAME 7
+#define GFX_ARG_DELAY 8
+#define GFX_ARG_MODE_LOOP 9
+#define GFX_ARG_MODE_LINEAR 10
+#define GFX_ARG_MODE_PINGPONG 11
+#define GFX_ARG_MODE_PINGPONG2 12
+#define GFX_ARG_MODE_RANDOM 13
+#define GFX_ARG_MODE_REVERSE 14
+#define GFX_ARG_GLOBAL_SYNC 15
+
+#define NUM_GFX_ARGS 16
+
+
+/* values for sound configuration suffixes */
+#define SND_ARG_MODE_LOOP 0
+
+#define NUM_SND_ARGS 1
+
+
+/* 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 2
+#define PROGRAM_VERSION_PATCH 0
+#define PROGRAM_VERSION_STRING "2.2.0rc3"
+
+#define PROGRAM_TITLE_STRING "Rocks'n'Diamonds"
+#define PROGRAM_AUTHOR_STRING "Holger Schemel"
+#define PROGRAM_RIGHTS_STRING "Copyright ^1995-2003 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)
+
+/* values for game_emulation */
+#define EMU_NONE 0
+#define EMU_BOULDERDASH 1
+#define EMU_SOKOBAN 2
+#define EMU_SUPAPLEX 3
+