version number set to 4.4.0.0-test-1
[rocksndiamonds.git] / src / main.h
index 9a21e95662cc2842f1e95c2d659d576be00bdc77..309229ee71c2fdce7670c5e19f65792c4ae6e009 100644 (file)
                                         (e) == EL_CRYSTAL        ? EL_CRYSTAL :    \
                                         EL_ROCK)
 
-#define IS_BD_PLAYER_ELEMENT(e)                ((e) == EL_BD_INBOX ||                  \
-                                        (e) == EL_BD_PLAYER ||                 \
-                                        (e) == EL_BD_PLAYER_WITH_BOMB ||       \
-                                        (e) == EL_BD_PLAYER_GLUED ||           \
-                                        (e) == EL_BD_PLAYER_STIRRING)
+#define IS_BDX_PLAYER_ELEMENT(e)       ((e) == EL_BDX_INBOX ||                 \
+                                        (e) == EL_BDX_PLAYER ||                \
+                                        (e) == EL_BDX_PLAYER_WITH_BOMB ||      \
+                                        (e) == EL_BDX_PLAYER_GLUED ||          \
+                                        (e) == EL_BDX_PLAYER_STIRRING)
 
 #define IS_BD_FIREFLY(e)               ((e) == EL_BD_FIREFLY ||                \
                                         (e) == EL_BD_FIREFLY_RIGHT ||          \
                                         (e) == EL_BD_FIREFLY_LEFT ||           \
                                         (e) == EL_BD_FIREFLY_DOWN)
 
-#define IS_BD_FIREFLY_1(e)             ((e) == EL_BD_FIREFLY_1 ||              \
-                                        (e) == EL_BD_FIREFLY_1_RIGHT ||        \
-                                        (e) == EL_BD_FIREFLY_1_UP ||           \
-                                        (e) == EL_BD_FIREFLY_1_LEFT ||         \
-                                        (e) == EL_BD_FIREFLY_1_DOWN)
+#define IS_BDX_FIREFLY_1(e)            ((e) == EL_BDX_FIREFLY_1 ||             \
+                                        (e) == EL_BDX_FIREFLY_1_RIGHT ||       \
+                                        (e) == EL_BDX_FIREFLY_1_UP ||          \
+                                        (e) == EL_BDX_FIREFLY_1_LEFT ||        \
+                                        (e) == EL_BDX_FIREFLY_1_DOWN)
 
-#define IS_BD_FIREFLY_2(e)             ((e) == EL_BD_FIREFLY_2 ||              \
-                                        (e) == EL_BD_FIREFLY_2_RIGHT ||        \
-                                        (e) == EL_BD_FIREFLY_2_UP ||           \
-                                        (e) == EL_BD_FIREFLY_2_LEFT ||         \
-                                        (e) == EL_BD_FIREFLY_2_DOWN)
+#define IS_BDX_FIREFLY_2(e)            ((e) == EL_BDX_FIREFLY_2 ||             \
+                                        (e) == EL_BDX_FIREFLY_2_RIGHT ||       \
+                                        (e) == EL_BDX_FIREFLY_2_UP ||          \
+                                        (e) == EL_BDX_FIREFLY_2_LEFT ||        \
+                                        (e) == EL_BDX_FIREFLY_2_DOWN)
 
 #define IS_BD_BUTTERFLY(e)             ((e) == EL_BD_BUTTERFLY ||              \
                                         (e) == EL_BD_BUTTERFLY_RIGHT ||        \
                                         (e) == EL_BD_BUTTERFLY_LEFT ||         \
                                         (e) == EL_BD_BUTTERFLY_DOWN)
 
-#define IS_BD_BUTTERFLY_1(e)           ((e) == EL_BD_BUTTERFLY_1 ||            \
-                                        (e) == EL_BD_BUTTERFLY_1_RIGHT ||      \
-                                        (e) == EL_BD_BUTTERFLY_1_UP ||         \
-                                        (e) == EL_BD_BUTTERFLY_1_LEFT ||       \
-                                        (e) == EL_BD_BUTTERFLY_1_DOWN)
-
-#define IS_BD_BUTTERFLY_2(e)           ((e) == EL_BD_BUTTERFLY_2 ||            \
-                                        (e) == EL_BD_BUTTERFLY_2_RIGHT ||      \
-                                        (e) == EL_BD_BUTTERFLY_2_UP ||         \
-                                        (e) == EL_BD_BUTTERFLY_2_LEFT ||       \
-                                        (e) == EL_BD_BUTTERFLY_2_DOWN)
-
-#define IS_BD_STONEFLY(e)              ((e) == EL_BD_STONEFLY ||               \
-                                        (e) == EL_BD_STONEFLY_RIGHT ||         \
-                                        (e) == EL_BD_STONEFLY_UP ||            \
-                                        (e) == EL_BD_STONEFLY_LEFT ||          \
-                                        (e) == EL_BD_STONEFLY_DOWN)
-
-#define IS_BD_DRAGONFLY(e)             ((e) == EL_BD_DRAGONFLY ||              \
-                                        (e) == EL_BD_DRAGONFLY_RIGHT ||                \
-                                        (e) == EL_BD_DRAGONFLY_UP ||           \
-                                        (e) == EL_BD_DRAGONFLY_LEFT ||         \
-                                        (e) == EL_BD_DRAGONFLY_DOWN)
-
-#define IS_BD_BITER(e)                 ((e) == EL_BD_BITER ||                  \
-                                        (e) == EL_BD_BITER_RIGHT ||            \
-                                        (e) == EL_BD_BITER_UP ||               \
-                                        (e) == EL_BD_BITER_LEFT ||             \
-                                        (e) == EL_BD_BITER_DOWN)
-
-#define IS_BD_EXPANDABLE_WALL(e)       ((e) == EL_BD_EXPANDABLE_WALL_HORIZONTAL ||     \
-                                        (e) == EL_BD_EXPANDABLE_WALL_VERTICAL ||       \
-                                        (e) == EL_BD_EXPANDABLE_WALL_ANY)
-
-#define IS_BD_EXPANDABLE_STEELWALL(e)  ((e) == EL_BD_EXPANDABLE_STEELWALL_HORIZONTAL ||\
-                                        (e) == EL_BD_EXPANDABLE_STEELWALL_VERTICAL ||  \
-                                        (e) == EL_BD_EXPANDABLE_STEELWALL_ANY)
-
-#define IS_BD_CONVEYOR_BELT(e)         ((e) == EL_BD_CONVEYOR_LEFT ||          \
-                                        (e) == EL_BD_CONVEYOR_LEFT_ACTIVE ||   \
-                                        (e) == EL_BD_CONVEYOR_RIGHT ||         \
-                                        (e) == EL_BD_CONVEYOR_RIGHT_ACTIVE)
-
-#define IS_BD_CONVEYOR_BELT_SWITCH(e)  ((e) == EL_BD_CONVEYOR_SWITCH ||        \
-                                        (e) == EL_BD_CONVEYOR_SWITCH_ACTIVE || \
-                                        (e) == EL_BD_CONVEYOR_DIR_SWITCH ||    \
-                                        (e) == EL_BD_CONVEYOR_DIR_SWITCH_ACTIVE)
-
-#define IS_BD_NATIVE_ELEMENT(e)                ((e) >= EL_BD_NATIVE_START &&           \
-                                        (e) <= EL_BD_NATIVE_END)
-
-#define IS_BD_NATIVE_RUNTIME_ELEMENT(e)        ((e) >= EL_BD_NATIVE_RUNTIME_START &&   \
-                                        (e) <= EL_BD_NATIVE_RUNTIME_END)
+#define IS_BDX_BUTTERFLY_1(e)          ((e) == EL_BDX_BUTTERFLY_1 ||           \
+                                        (e) == EL_BDX_BUTTERFLY_1_RIGHT ||     \
+                                        (e) == EL_BDX_BUTTERFLY_1_UP ||        \
+                                        (e) == EL_BDX_BUTTERFLY_1_LEFT ||      \
+                                        (e) == EL_BDX_BUTTERFLY_1_DOWN)
+
+#define IS_BDX_BUTTERFLY_2(e)          ((e) == EL_BDX_BUTTERFLY_2 ||           \
+                                        (e) == EL_BDX_BUTTERFLY_2_RIGHT ||     \
+                                        (e) == EL_BDX_BUTTERFLY_2_UP ||        \
+                                        (e) == EL_BDX_BUTTERFLY_2_LEFT ||      \
+                                        (e) == EL_BDX_BUTTERFLY_2_DOWN)
+
+#define IS_BDX_STONEFLY(e)             ((e) == EL_BDX_STONEFLY ||              \
+                                        (e) == EL_BDX_STONEFLY_RIGHT ||        \
+                                        (e) == EL_BDX_STONEFLY_UP ||           \
+                                        (e) == EL_BDX_STONEFLY_LEFT ||         \
+                                        (e) == EL_BDX_STONEFLY_DOWN)
+
+#define IS_BDX_DRAGONFLY(e)            ((e) == EL_BDX_DRAGONFLY ||             \
+                                        (e) == EL_BDX_DRAGONFLY_RIGHT ||       \
+                                        (e) == EL_BDX_DRAGONFLY_UP ||          \
+                                        (e) == EL_BDX_DRAGONFLY_LEFT ||        \
+                                        (e) == EL_BDX_DRAGONFLY_DOWN)
+
+#define IS_BDX_BITER(e)                        ((e) == EL_BDX_BITER ||                 \
+                                        (e) == EL_BDX_BITER_RIGHT ||           \
+                                        (e) == EL_BDX_BITER_UP ||              \
+                                        (e) == EL_BDX_BITER_LEFT ||            \
+                                        (e) == EL_BDX_BITER_DOWN)
+
+#define IS_BDX_EXPANDABLE_WALL(e)      ((e) == EL_BDX_EXPANDABLE_WALL_HORIZONTAL ||            \
+                                        (e) == EL_BDX_EXPANDABLE_WALL_VERTICAL ||              \
+                                        (e) == EL_BDX_EXPANDABLE_WALL_ANY)
+
+#define IS_BDX_EXPANDABLE_STEELWALL(e) ((e) == EL_BDX_EXPANDABLE_STEELWALL_HORIZONTAL ||       \
+                                        (e) == EL_BDX_EXPANDABLE_STEELWALL_VERTICAL ||         \
+                                        (e) == EL_BDX_EXPANDABLE_STEELWALL_ANY)
+
+#define IS_BDX_CONVEYOR_BELT(e)                ((e) == EL_BDX_CONVEYOR_LEFT ||         \
+                                        (e) == EL_BDX_CONVEYOR_LEFT_ACTIVE ||  \
+                                        (e) == EL_BDX_CONVEYOR_RIGHT ||        \
+                                        (e) == EL_BDX_CONVEYOR_RIGHT_ACTIVE)
+
+#define IS_BDX_CONVEYOR_BELT_SWITCH(e) ((e) == EL_BDX_CONVEYOR_SWITCH ||       \
+                                        (e) == EL_BDX_CONVEYOR_SWITCH_ACTIVE ||\
+                                        (e) == EL_BDX_CONVEYOR_DIR_SWITCH ||   \
+                                        (e) == EL_BDX_CONVEYOR_DIR_SWITCH_ACTIVE)
+
+#define IS_BDX_ELEMENT(e)              ((e) >= EL_BDX_START &&                 \
+                                        (e) <= EL_BDX_END)
+
+#define IS_BDX_RUNTIME_ELEMENT(e)      ((e) >= EL_BDX_RUNTIME_START &&         \
+                                        (e) <= EL_BDX_RUNTIME_END)
 
 #define IS_SOKOBAN_OBJECT_OR_FIELD(e)  ((e) == EL_SOKOBAN_OBJECT ||            \
                                         (e) == EL_SOKOBAN_FIELD_EMPTY ||       \
 #define EL_DF_END_2                            EL_DF_SLOPE_END
 
 // BD style elements (normal)
-#define EL_BD_NATIVE_START                     1253
-#define EL_BD_EMPTY_SPACE                      EL_BD_NATIVE_START
-#define EL_BD_EMPTY                            EL_BD_EMPTY_SPACE
-#define EL_BD_SAND_1                           1254
-#define EL_BD_SAND_2                           1255
-#define EL_BD_SAND_BALL                                1256
-#define EL_BD_SAND_LOOSE                       1257
-#define EL_BD_SAND_SLOPED_UP_RIGHT             1258
-#define EL_BD_SAND_SLOPED_UP_LEFT              1259
-#define EL_BD_SAND_SLOPED_DOWN_LEFT            1260
-#define EL_BD_SAND_SLOPED_DOWN_RIGHT           1261
-#define EL_BD_SAND_GLUED                       1262
-#define EL_BD_WALL_SLOPED_UP_RIGHT             1263
-#define EL_BD_WALL_SLOPED_UP_LEFT              1264
-#define EL_BD_WALL_SLOPED_DOWN_LEFT            1265
-#define EL_BD_WALL_SLOPED_DOWN_RIGHT           1266
-#define EL_BD_WALL_NON_SLOPED                  1267
-#define EL_BD_WALL_DIGGABLE                    1268
-#define EL_BD_WALL_DIAMOND                     1269
-#define EL_BD_WALL_KEY_1                       1270
-#define EL_BD_WALL_KEY_2                       1271
-#define EL_BD_WALL_KEY_3                       1272
-#define EL_BD_FALLING_WALL                     1273
-#define EL_BD_STEELWALL                                1274
-#define EL_BD_STEELWALL_SLOPED_UP_RIGHT                1275
-#define EL_BD_STEELWALL_SLOPED_UP_LEFT         1276
-#define EL_BD_STEELWALL_SLOPED_DOWN_LEFT       1277
-#define EL_BD_STEELWALL_SLOPED_DOWN_RIGHT      1278
-#define EL_BD_STEELWALL_EXPLODABLE             1279
-#define EL_BD_STEELWALL_DIGGABLE               1280
-#define EL_BD_EXPANDABLE_WALL_HORIZONTAL       1281
-#define EL_BD_EXPANDABLE_WALL_VERTICAL         1282
-#define EL_BD_EXPANDABLE_WALL_ANY              1283
-#define EL_BD_EXPANDABLE_STEELWALL_HORIZONTAL  1284
-#define EL_BD_EXPANDABLE_STEELWALL_VERTICAL    1285
-#define EL_BD_EXPANDABLE_STEELWALL_ANY         1286
-#define EL_BD_EXPANDABLE_WALL_SWITCH           1287
-#define EL_BD_EXPANDABLE_WALL_SWITCH_ACTIVE    1288
-#define EL_BD_INBOX                            1289
-#define EL_BD_EXIT_CLOSED                      1290
-#define EL_BD_EXIT_OPEN                                1291
-#define EL_BD_INVISIBLE_EXIT_CLOSED            1292
-#define EL_BD_INVISIBLE_EXIT_OPEN              1293
-#define EL_BD_FLYING_ROCK                      1294
-#define EL_BD_MEGA_ROCK                                1295
-#define EL_BD_ROCK_GLUED                       1296
-#define EL_BD_FLYING_DIAMOND                   1297
-#define EL_BD_DIAMOND_GLUED                    1298
-#define EL_BD_DIAMOND_KEY                      1299
-#define EL_BD_TRAPPED_DIAMOND                  1300
-#define EL_BD_NUT                              1301
-#define EL_BD_AMOEBA_1                         1302
-#define EL_BD_AMOEBA_2                         1303
-#define EL_BD_BLADDER                          1304
-#define EL_BD_BLADDER_SPENDER                  1305
-#define EL_BD_CREATURE_SWITCH                  1306
-#define EL_BD_CREATURE_SWITCH_ACTIVE           1307
-#define EL_BD_BITER_SWITCH_1                   1308
-#define EL_BD_BITER_SWITCH_2                   1309
-#define EL_BD_BITER_SWITCH_3                   1310
-#define EL_BD_BITER_SWITCH_4                   1311
-#define EL_BD_REPLICATOR                       1312
-#define EL_BD_REPLICATOR_ACTIVE                        1313
-#define EL_BD_REPLICATOR_SWITCH                        1314
-#define EL_BD_REPLICATOR_SWITCH_ACTIVE         1315
-#define EL_BD_CONVEYOR_LEFT                    1316
-#define EL_BD_CONVEYOR_LEFT_ACTIVE             1317
-#define EL_BD_CONVEYOR_RIGHT                   1318
-#define EL_BD_CONVEYOR_RIGHT_ACTIVE            1319
-#define EL_BD_CONVEYOR_SWITCH                  1320
-#define EL_BD_CONVEYOR_SWITCH_ACTIVE           1321
-#define EL_BD_CONVEYOR_DIR_SWITCH              1322
-#define EL_BD_CONVEYOR_DIR_SWITCH_ACTIVE       1323
-#define EL_BD_GRAVITY_SWITCH                   1324
-#define EL_BD_GRAVITY_SWITCH_ACTIVE            1325
-#define EL_BD_ACID                             1326
-#define EL_BD_BOX                              1327
-#define EL_BD_TIME_PENALTY                     1328
-#define EL_BD_GRAVESTONE                       1329
-#define EL_BD_CLOCK                            1330
-#define EL_BD_POT                              1331
-#define EL_BD_PNEUMATIC_HAMMER                 1332
-#define EL_BD_TELEPORTER                       1333
-#define EL_BD_SKELETON                         1334
-#define EL_BD_WATER                            1335
-#define EL_BD_KEY_1                            1336
-#define EL_BD_KEY_2                            1337
-#define EL_BD_KEY_3                            1338
-#define EL_BD_GATE_1                           1339
-#define EL_BD_GATE_2                           1340
-#define EL_BD_GATE_3                           1341
-#define EL_BD_LAVA                             1342
-#define EL_BD_SWEET                            1343
-#define EL_BD_VOODOO_DOLL                      1344
-#define EL_BD_SLIME                            1345
-#define EL_BD_WAITING_ROCK                     1346
-#define EL_BD_CHASING_ROCK                     1347
-#define EL_BD_GHOST                            1348
-#define EL_BD_COW                              1349
-#define EL_BD_COW_LEFT                         1350
-#define EL_BD_COW_UP                           1351
-#define EL_BD_COW_RIGHT                                1352
-#define EL_BD_COW_DOWN                         1353
-#define EL_BD_BUTTERFLY_1                      1354
-#define EL_BD_BUTTERFLY_1_RIGHT                        1355
-#define EL_BD_BUTTERFLY_1_UP                   1356
-#define EL_BD_BUTTERFLY_1_LEFT                 1357
-#define EL_BD_BUTTERFLY_1_DOWN                 1358
-#define EL_BD_BUTTERFLY_2                      1359
-#define EL_BD_BUTTERFLY_2_RIGHT                        1360
-#define EL_BD_BUTTERFLY_2_UP                   1361
-#define EL_BD_BUTTERFLY_2_LEFT                 1362
-#define EL_BD_BUTTERFLY_2_DOWN                 1363
-#define EL_BD_FIREFLY_1                                1364
-#define EL_BD_FIREFLY_1_RIGHT                  1365
-#define EL_BD_FIREFLY_1_UP                     1366
-#define EL_BD_FIREFLY_1_LEFT                   1367
-#define EL_BD_FIREFLY_1_DOWN                   1368
-#define EL_BD_FIREFLY_2                                1369
-#define EL_BD_FIREFLY_2_RIGHT                  1370
-#define EL_BD_FIREFLY_2_UP                     1371
-#define EL_BD_FIREFLY_2_LEFT                   1372
-#define EL_BD_FIREFLY_2_DOWN                   1373
-#define EL_BD_STONEFLY                         1374
-#define EL_BD_STONEFLY_RIGHT                   1375
-#define EL_BD_STONEFLY_UP                      1376
-#define EL_BD_STONEFLY_LEFT                    1377
-#define EL_BD_STONEFLY_DOWN                    1378
-#define EL_BD_BITER                            1379
-#define EL_BD_BITER_RIGHT                      1380
-#define EL_BD_BITER_UP                         1381
-#define EL_BD_BITER_LEFT                       1382
-#define EL_BD_BITER_DOWN                       1383
-#define EL_BD_DRAGONFLY                                1384
-#define EL_BD_DRAGONFLY_RIGHT                  1385
-#define EL_BD_DRAGONFLY_UP                     1386
-#define EL_BD_DRAGONFLY_LEFT                   1387
-#define EL_BD_DRAGONFLY_DOWN                   1388
-#define EL_BD_BOMB                             1389
-#define EL_BD_NITRO_PACK                       1390
-#define EL_BD_PLAYER                           1391
-#define EL_BD_PLAYER_WITH_BOMB                 1392
-#define EL_BD_PLAYER_WITH_ROCKET_LAUNCHER      1393
-#define EL_BD_PLAYER_GLUED                     1394
-#define EL_BD_PLAYER_STIRRING                  1395
-#define EL_BD_ROCKET_LAUNCHER                  1396
-#define EL_BD_ROCKET                           1397
-#define EL_BD_ROCKET_RIGHT                     1398
-#define EL_BD_ROCKET_UP                                1399
-#define EL_BD_ROCKET_LEFT                      1400
-#define EL_BD_ROCKET_DOWN                      1401
-#define EL_BD_FAKE_BONUS                       1402
-#define EL_BD_COVERED                          1403
-#define EL_BD_WALL_NATIVE                      1404
-#define EL_BD_ROCK_NATIVE                      1405
-#define EL_BD_DIAMOND_NATIVE                   1406
-#define EL_BD_MAGIC_WALL_NATIVE                        1407
+#define EL_BDX_START                           1253
+#define EL_BDX_EMPTY_SPACE                     EL_BDX_START
+#define EL_BDX_EMPTY                           EL_BDX_EMPTY_SPACE
+#define EL_BDX_SAND_1                          1254
+#define EL_BDX_SAND_2                          1255
+#define EL_BDX_SAND_BALL                       1256
+#define EL_BDX_SAND_LOOSE                      1257
+#define EL_BDX_SAND_SLOPED_UP_RIGHT            1258
+#define EL_BDX_SAND_SLOPED_UP_LEFT             1259
+#define EL_BDX_SAND_SLOPED_DOWN_LEFT           1260
+#define EL_BDX_SAND_SLOPED_DOWN_RIGHT          1261
+#define EL_BDX_SAND_GLUED                      1262
+#define EL_BDX_WALL_SLOPED_UP_RIGHT            1263
+#define EL_BDX_WALL_SLOPED_UP_LEFT             1264
+#define EL_BDX_WALL_SLOPED_DOWN_LEFT           1265
+#define EL_BDX_WALL_SLOPED_DOWN_RIGHT          1266
+#define EL_BDX_WALL_NON_SLOPED                 1267
+#define EL_BDX_WALL_DIGGABLE                   1268
+#define EL_BDX_WALL_DIAMOND                    1269
+#define EL_BDX_WALL_KEY_1                      1270
+#define EL_BDX_WALL_KEY_2                      1271
+#define EL_BDX_WALL_KEY_3                      1272
+#define EL_BDX_FALLING_WALL                    1273
+#define EL_BDX_STEELWALL                       1274
+#define EL_BDX_STEELWALL_SLOPED_UP_RIGHT       1275
+#define EL_BDX_STEELWALL_SLOPED_UP_LEFT                1276
+#define EL_BDX_STEELWALL_SLOPED_DOWN_LEFT      1277
+#define EL_BDX_STEELWALL_SLOPED_DOWN_RIGHT     1278
+#define EL_BDX_STEELWALL_EXPLODABLE            1279
+#define EL_BDX_STEELWALL_DIGGABLE              1280
+#define EL_BDX_EXPANDABLE_WALL_HORIZONTAL      1281
+#define EL_BDX_EXPANDABLE_WALL_VERTICAL                1282
+#define EL_BDX_EXPANDABLE_WALL_ANY             1283
+#define EL_BDX_EXPANDABLE_STEELWALL_HORIZONTAL 1284
+#define EL_BDX_EXPANDABLE_STEELWALL_VERTICAL   1285
+#define EL_BDX_EXPANDABLE_STEELWALL_ANY                1286
+#define EL_BDX_EXPANDABLE_WALL_SWITCH          1287
+#define EL_BDX_EXPANDABLE_WALL_SWITCH_ACTIVE   1288
+#define EL_BDX_INBOX                           1289
+#define EL_BDX_EXIT_CLOSED                     1290
+#define EL_BDX_EXIT_OPEN                       1291
+#define EL_BDX_INVISIBLE_EXIT_CLOSED           1292
+#define EL_BDX_INVISIBLE_EXIT_OPEN             1293
+#define EL_BDX_FLYING_ROCK                     1294
+#define EL_BDX_MEGA_ROCK                       1295
+#define EL_BDX_ROCK_GLUED                      1296
+#define EL_BDX_FLYING_DIAMOND                  1297
+#define EL_BDX_DIAMOND_GLUED                   1298
+#define EL_BDX_DIAMOND_KEY                     1299
+#define EL_BDX_TRAPPED_DIAMOND                 1300
+#define EL_BDX_NUT                             1301
+#define EL_BDX_AMOEBA_1                                1302
+#define EL_BDX_AMOEBA_2                                1303
+#define EL_BDX_BLADDER                         1304
+#define EL_BDX_BLADDER_SPENDER                 1305
+#define EL_BDX_CREATURE_SWITCH                 1306
+#define EL_BDX_CREATURE_SWITCH_ACTIVE          1307
+#define EL_BDX_BITER_SWITCH_1                  1308
+#define EL_BDX_BITER_SWITCH_2                  1309
+#define EL_BDX_BITER_SWITCH_3                  1310
+#define EL_BDX_BITER_SWITCH_4                  1311
+#define EL_BDX_REPLICATOR                      1312
+#define EL_BDX_REPLICATOR_ACTIVE               1313
+#define EL_BDX_REPLICATOR_SWITCH               1314
+#define EL_BDX_REPLICATOR_SWITCH_ACTIVE                1315
+#define EL_BDX_CONVEYOR_LEFT                   1316
+#define EL_BDX_CONVEYOR_LEFT_ACTIVE            1317
+#define EL_BDX_CONVEYOR_RIGHT                  1318
+#define EL_BDX_CONVEYOR_RIGHT_ACTIVE           1319
+#define EL_BDX_CONVEYOR_SWITCH                 1320
+#define EL_BDX_CONVEYOR_SWITCH_ACTIVE          1321
+#define EL_BDX_CONVEYOR_DIR_SWITCH             1322
+#define EL_BDX_CONVEYOR_DIR_SWITCH_ACTIVE      1323
+#define EL_BDX_GRAVITY_SWITCH                  1324
+#define EL_BDX_GRAVITY_SWITCH_ACTIVE           1325
+#define EL_BDX_ACID                            1326
+#define EL_BDX_BOX                             1327
+#define EL_BDX_TIME_PENALTY                    1328
+#define EL_BDX_GRAVESTONE                      1329
+#define EL_BDX_CLOCK                           1330
+#define EL_BDX_POT                             1331
+#define EL_BDX_PNEUMATIC_HAMMER                        1332
+#define EL_BDX_TELEPORTER                      1333
+#define EL_BDX_SKELETON                                1334
+#define EL_BDX_WATER                           1335
+#define EL_BDX_KEY_1                           1336
+#define EL_BDX_KEY_2                           1337
+#define EL_BDX_KEY_3                           1338
+#define EL_BDX_GATE_1                          1339
+#define EL_BDX_GATE_2                          1340
+#define EL_BDX_GATE_3                          1341
+#define EL_BDX_LAVA                            1342
+#define EL_BDX_SWEET                           1343
+#define EL_BDX_VOODOO_DOLL                     1344
+#define EL_BDX_SLIME                           1345
+#define EL_BDX_WAITING_ROCK                    1346
+#define EL_BDX_CHASING_ROCK                    1347
+#define EL_BDX_GHOST                           1348
+#define EL_BDX_COW                             1349
+#define EL_BDX_COW_LEFT                                1350
+#define EL_BDX_COW_UP                          1351
+#define EL_BDX_COW_RIGHT                       1352
+#define EL_BDX_COW_DOWN                                1353
+#define EL_BDX_BUTTERFLY_1                     1354
+#define EL_BDX_BUTTERFLY_1_RIGHT               1355
+#define EL_BDX_BUTTERFLY_1_UP                  1356
+#define EL_BDX_BUTTERFLY_1_LEFT                        1357
+#define EL_BDX_BUTTERFLY_1_DOWN                        1358
+#define EL_BDX_BUTTERFLY_2                     1359
+#define EL_BDX_BUTTERFLY_2_RIGHT               1360
+#define EL_BDX_BUTTERFLY_2_UP                  1361
+#define EL_BDX_BUTTERFLY_2_LEFT                        1362
+#define EL_BDX_BUTTERFLY_2_DOWN                        1363
+#define EL_BDX_FIREFLY_1                       1364
+#define EL_BDX_FIREFLY_1_RIGHT                 1365
+#define EL_BDX_FIREFLY_1_UP                    1366
+#define EL_BDX_FIREFLY_1_LEFT                  1367
+#define EL_BDX_FIREFLY_1_DOWN                  1368
+#define EL_BDX_FIREFLY_2                       1369
+#define EL_BDX_FIREFLY_2_RIGHT                 1370
+#define EL_BDX_FIREFLY_2_UP                    1371
+#define EL_BDX_FIREFLY_2_LEFT                  1372
+#define EL_BDX_FIREFLY_2_DOWN                  1373
+#define EL_BDX_STONEFLY                                1374
+#define EL_BDX_STONEFLY_RIGHT                  1375
+#define EL_BDX_STONEFLY_UP                     1376
+#define EL_BDX_STONEFLY_LEFT                   1377
+#define EL_BDX_STONEFLY_DOWN                   1378
+#define EL_BDX_BITER                           1379
+#define EL_BDX_BITER_RIGHT                     1380
+#define EL_BDX_BITER_UP                                1381
+#define EL_BDX_BITER_LEFT                      1382
+#define EL_BDX_BITER_DOWN                      1383
+#define EL_BDX_DRAGONFLY                       1384
+#define EL_BDX_DRAGONFLY_RIGHT                 1385
+#define EL_BDX_DRAGONFLY_UP                    1386
+#define EL_BDX_DRAGONFLY_LEFT                  1387
+#define EL_BDX_DRAGONFLY_DOWN                  1388
+#define EL_BDX_BOMB                            1389
+#define EL_BDX_NITRO_PACK                      1390
+#define EL_BDX_PLAYER                          1391
+#define EL_BDX_PLAYER_WITH_BOMB                        1392
+#define EL_BDX_PLAYER_WITH_ROCKET_LAUNCHER     1393
+#define EL_BDX_PLAYER_GLUED                    1394
+#define EL_BDX_PLAYER_STIRRING                 1395
+#define EL_BDX_ROCKET_LAUNCHER                 1396
+#define EL_BDX_ROCKET                          1397
+#define EL_BDX_ROCKET_RIGHT                    1398
+#define EL_BDX_ROCKET_UP                       1399
+#define EL_BDX_ROCKET_LEFT                     1400
+#define EL_BDX_ROCKET_DOWN                     1401
+#define EL_BDX_FAKE_BONUS                      1402
+#define EL_BDX_COVERED                         1403
+#define EL_BDX_WALL                            1404
+#define EL_BDX_ROCK                            1405
+#define EL_BDX_DIAMOND                         1406
+#define EL_BDX_MAGIC_WALL                      1407
 
 // BD style elements ("effects"; mostly runtime elements, but can also be stored in level file)
-#define EL_BD_NATIVE_RUNTIME_START             1408
-#define EL_BD_SAND_BALL_FALLING                        EL_BD_NATIVE_RUNTIME_START
-#define EL_BD_SAND_LOOSE_FALLING               1409
-#define EL_BD_ROCK_NATIVE_FALLING              1410
-#define EL_BD_FLYING_ROCK_FLYING               1411
-#define EL_BD_MEGA_ROCK_FALLING                        1412
-#define EL_BD_DIAMOND_NATIVE_FALLING           1413
-#define EL_BD_FLYING_DIAMOND_FLYING            1414
-#define EL_BD_NUT_FALLING                      1415
-#define EL_BD_FALLING_WALL_FALLING             1416
-#define EL_BD_NITRO_PACK_FALLING               1417
-#define EL_BD_WATER_1                          1418
-#define EL_BD_WATER_2                          1419
-#define EL_BD_WATER_3                          1420
-#define EL_BD_WATER_4                          1421
-#define EL_BD_WATER_5                          1422
-#define EL_BD_WATER_6                          1423
-#define EL_BD_WATER_7                          1424
-#define EL_BD_WATER_8                          1425
-#define EL_BD_WATER_9                          1426
-#define EL_BD_WATER_10                         1427
-#define EL_BD_WATER_11                         1428
-#define EL_BD_WATER_12                         1429
-#define EL_BD_WATER_13                         1430
-#define EL_BD_WATER_14                         1431
-#define EL_BD_WATER_15                         1432
-#define EL_BD_WATER_16                         1433
-#define EL_BD_COW_ENCLOSED_1                   1434
-#define EL_BD_COW_ENCLOSED_2                   1435
-#define EL_BD_COW_ENCLOSED_3                   1436
-#define EL_BD_COW_ENCLOSED_4                   1437
-#define EL_BD_COW_ENCLOSED_5                   1438
-#define EL_BD_COW_ENCLOSED_6                   1439
-#define EL_BD_COW_ENCLOSED_7                   1440
-#define EL_BD_BLADDER_1                                1441
-#define EL_BD_BLADDER_2                                1442
-#define EL_BD_BLADDER_3                                1443
-#define EL_BD_BLADDER_4                                1444
-#define EL_BD_BLADDER_5                                1445
-#define EL_BD_BLADDER_6                                1446
-#define EL_BD_BLADDER_7                                1447
-#define EL_BD_BLADDER_8                                1448
-#define EL_BD_PLAYER_GROWING_1                 1449
-#define EL_BD_PLAYER_GROWING_2                 1450
-#define EL_BD_PLAYER_GROWING_3                 1451
-#define EL_BD_BOMB_TICKING_1                   1452
-#define EL_BD_BOMB_TICKING_2                   1453
-#define EL_BD_BOMB_TICKING_3                   1454
-#define EL_BD_BOMB_TICKING_4                   1455
-#define EL_BD_BOMB_TICKING_5                   1456
-#define EL_BD_BOMB_TICKING_6                   1457
-#define EL_BD_BOMB_TICKING_7                   1458
-#define EL_BD_CLOCK_GROWING_1                  1459
-#define EL_BD_CLOCK_GROWING_2                  1460
-#define EL_BD_CLOCK_GROWING_3                  1461
-#define EL_BD_CLOCK_GROWING_4                  1462
-#define EL_BD_DIAMOND_NATIVE_GROWING_1         1463
-#define EL_BD_DIAMOND_NATIVE_GROWING_2         1464
-#define EL_BD_DIAMOND_NATIVE_GROWING_3         1465
-#define EL_BD_DIAMOND_NATIVE_GROWING_4         1466
-#define EL_BD_DIAMOND_NATIVE_GROWING_5         1467
-#define EL_BD_EXPLODING_1                      1468
-#define EL_BD_EXPLODING_2                      1469
-#define EL_BD_EXPLODING_3                      1470
-#define EL_BD_EXPLODING_4                      1471
-#define EL_BD_EXPLODING_5                      1472
-#define EL_BD_ROCK_NATIVE_GROWING_1            1473
-#define EL_BD_ROCK_NATIVE_GROWING_2            1474
-#define EL_BD_ROCK_NATIVE_GROWING_3            1475
-#define EL_BD_ROCK_NATIVE_GROWING_4            1476
-#define EL_BD_STEELWALL_GROWING_1              1477
-#define EL_BD_STEELWALL_GROWING_2              1478
-#define EL_BD_STEELWALL_GROWING_3              1479
-#define EL_BD_STEELWALL_GROWING_4              1480
-#define EL_BD_GHOST_EXPLODING_1                        1481
-#define EL_BD_GHOST_EXPLODING_2                        1482
-#define EL_BD_GHOST_EXPLODING_3                        1483
-#define EL_BD_GHOST_EXPLODING_4                        1484
-#define EL_BD_BOMB_EXPLODING_1                 1485
-#define EL_BD_BOMB_EXPLODING_2                 1486
-#define EL_BD_BOMB_EXPLODING_3                 1487
-#define EL_BD_BOMB_EXPLODING_4                 1488
-#define EL_BD_NITRO_PACK_EXPLODING             1489
-#define EL_BD_NITRO_PACK_EXPLODING_1           1490
-#define EL_BD_NITRO_PACK_EXPLODING_2           1491
-#define EL_BD_NITRO_PACK_EXPLODING_3           1492
-#define EL_BD_NITRO_PACK_EXPLODING_4           1493
-#define EL_BD_AMOEBA_2_EXPLODING_1             1494
-#define EL_BD_AMOEBA_2_EXPLODING_2             1495
-#define EL_BD_AMOEBA_2_EXPLODING_3             1496
-#define EL_BD_AMOEBA_2_EXPLODING_4             1497
-#define EL_BD_NUT_BREAKING_1                   1498
-#define EL_BD_NUT_BREAKING_2                   1499
-#define EL_BD_NUT_BREAKING_3                   1500
-#define EL_BD_NUT_BREAKING_4                   1501
-#define EL_BD_NATIVE_RUNTIME_END               EL_BD_NUT_BREAKING_4
-#define EL_BD_NATIVE_END                       EL_BD_NATIVE_RUNTIME_END
+#define EL_BDX_RUNTIME_START                   1408
+#define EL_BDX_SAND_BALL_FALLING               EL_BDX_RUNTIME_START
+#define EL_BDX_SAND_LOOSE_FALLING              1409
+#define EL_BDX_ROCK_FALLING                    1410
+#define EL_BDX_FLYING_ROCK_FLYING              1411
+#define EL_BDX_MEGA_ROCK_FALLING               1412
+#define EL_BDX_DIAMOND_FALLING                 1413
+#define EL_BDX_FLYING_DIAMOND_FLYING           1414
+#define EL_BDX_NUT_FALLING                     1415
+#define EL_BDX_FALLING_WALL_FALLING            1416
+#define EL_BDX_NITRO_PACK_FALLING              1417
+#define EL_BDX_WATER_1                         1418
+#define EL_BDX_WATER_2                         1419
+#define EL_BDX_WATER_3                         1420
+#define EL_BDX_WATER_4                         1421
+#define EL_BDX_WATER_5                         1422
+#define EL_BDX_WATER_6                         1423
+#define EL_BDX_WATER_7                         1424
+#define EL_BDX_WATER_8                         1425
+#define EL_BDX_WATER_9                         1426
+#define EL_BDX_WATER_10                                1427
+#define EL_BDX_WATER_11                                1428
+#define EL_BDX_WATER_12                                1429
+#define EL_BDX_WATER_13                                1430
+#define EL_BDX_WATER_14                                1431
+#define EL_BDX_WATER_15                                1432
+#define EL_BDX_WATER_16                                1433
+#define EL_BDX_COW_ENCLOSED_1                  1434
+#define EL_BDX_COW_ENCLOSED_2                  1435
+#define EL_BDX_COW_ENCLOSED_3                  1436
+#define EL_BDX_COW_ENCLOSED_4                  1437
+#define EL_BDX_COW_ENCLOSED_5                  1438
+#define EL_BDX_COW_ENCLOSED_6                  1439
+#define EL_BDX_COW_ENCLOSED_7                  1440
+#define EL_BDX_BLADDER_1                       1441
+#define EL_BDX_BLADDER_2                       1442
+#define EL_BDX_BLADDER_3                       1443
+#define EL_BDX_BLADDER_4                       1444
+#define EL_BDX_BLADDER_5                       1445
+#define EL_BDX_BLADDER_6                       1446
+#define EL_BDX_BLADDER_7                       1447
+#define EL_BDX_BLADDER_8                       1448
+#define EL_BDX_PLAYER_GROWING_1                        1449
+#define EL_BDX_PLAYER_GROWING_2                        1450
+#define EL_BDX_PLAYER_GROWING_3                        1451
+#define EL_BDX_BOMB_TICKING_1                  1452
+#define EL_BDX_BOMB_TICKING_2                  1453
+#define EL_BDX_BOMB_TICKING_3                  1454
+#define EL_BDX_BOMB_TICKING_4                  1455
+#define EL_BDX_BOMB_TICKING_5                  1456
+#define EL_BDX_BOMB_TICKING_6                  1457
+#define EL_BDX_BOMB_TICKING_7                  1458
+#define EL_BDX_CLOCK_GROWING_1                 1459
+#define EL_BDX_CLOCK_GROWING_2                 1460
+#define EL_BDX_CLOCK_GROWING_3                 1461
+#define EL_BDX_CLOCK_GROWING_4                 1462
+#define EL_BDX_DIAMOND_GROWING_1               1463
+#define EL_BDX_DIAMOND_GROWING_2               1464
+#define EL_BDX_DIAMOND_GROWING_3               1465
+#define EL_BDX_DIAMOND_GROWING_4               1466
+#define EL_BDX_DIAMOND_GROWING_5               1467
+#define EL_BDX_EXPLODING_1                     1468
+#define EL_BDX_EXPLODING_2                     1469
+#define EL_BDX_EXPLODING_3                     1470
+#define EL_BDX_EXPLODING_4                     1471
+#define EL_BDX_EXPLODING_5                     1472
+#define EL_BDX_ROCK_GROWING_1                  1473
+#define EL_BDX_ROCK_GROWING_2                  1474
+#define EL_BDX_ROCK_GROWING_3                  1475
+#define EL_BDX_ROCK_GROWING_4                  1476
+#define EL_BDX_STEELWALL_GROWING_1             1477
+#define EL_BDX_STEELWALL_GROWING_2             1478
+#define EL_BDX_STEELWALL_GROWING_3             1479
+#define EL_BDX_STEELWALL_GROWING_4             1480
+#define EL_BDX_GHOST_EXPLODING_1               1481
+#define EL_BDX_GHOST_EXPLODING_2               1482
+#define EL_BDX_GHOST_EXPLODING_3               1483
+#define EL_BDX_GHOST_EXPLODING_4               1484
+#define EL_BDX_BOMB_EXPLODING_1                        1485
+#define EL_BDX_BOMB_EXPLODING_2                        1486
+#define EL_BDX_BOMB_EXPLODING_3                        1487
+#define EL_BDX_BOMB_EXPLODING_4                        1488
+#define EL_BDX_NITRO_PACK_EXPLODING            1489
+#define EL_BDX_NITRO_PACK_EXPLODING_1          1490
+#define EL_BDX_NITRO_PACK_EXPLODING_2          1491
+#define EL_BDX_NITRO_PACK_EXPLODING_3          1492
+#define EL_BDX_NITRO_PACK_EXPLODING_4          1493
+#define EL_BDX_AMOEBA_2_EXPLODING_1            1494
+#define EL_BDX_AMOEBA_2_EXPLODING_2            1495
+#define EL_BDX_AMOEBA_2_EXPLODING_3            1496
+#define EL_BDX_AMOEBA_2_EXPLODING_4            1497
+#define EL_BDX_NUT_BREAKING_1                  1498
+#define EL_BDX_NUT_BREAKING_2                  1499
+#define EL_BDX_NUT_BREAKING_3                  1500
+#define EL_BDX_NUT_BREAKING_4                  1501
+#define EL_BDX_RUNTIME_END                     EL_BDX_NUT_BREAKING_4
+#define EL_BDX_END                             EL_BDX_RUNTIME_END
 
 #define NUM_FILE_ELEMENTS                      1502
 
 #define EL_MM_PACMAN_EATING_DOWN               (EL_FIRST_RUNTIME_REAL + 81)
 #define EL_MM_BOMB_ACTIVE                      (EL_FIRST_RUNTIME_REAL + 82)
 #define EL_DF_MINE_ACTIVE                      (EL_FIRST_RUNTIME_REAL + 83)
-#define EL_BD_MAGIC_WALL_NATIVE_ACTIVE         (EL_FIRST_RUNTIME_REAL + 84)
+#define EL_BDX_MAGIC_WALL_ACTIVE               (EL_FIRST_RUNTIME_REAL + 84)
 
 #define NUM_DRAWABLE_ELEMENTS                  (EL_FIRST_RUNTIME_REAL + 85)
 
 #define EL_MM_LIGHTBALL_YELLOW                 (EL_FIRST_DUMMY + 23)
 #define EL_DEFAULT                             (EL_FIRST_DUMMY + 24)
 #define EL_BD_DEFAULT                          (EL_FIRST_DUMMY + 25)
-#define EL_BD_NATIVE_DEFAULT                   (EL_FIRST_DUMMY + 26)
+#define EL_BDX_DEFAULT                         (EL_FIRST_DUMMY + 26)
 #define EL_SP_DEFAULT                          (EL_FIRST_DUMMY + 27)
 #define EL_SB_DEFAULT                          (EL_FIRST_DUMMY + 28)
 #define EL_MM_DEFAULT                          (EL_FIRST_DUMMY + 29)
 #define EL_GRAPHIC_6                           (EL_FIRST_DUMMY + 35)
 #define EL_GRAPHIC_7                           (EL_FIRST_DUMMY + 36)
 #define EL_GRAPHIC_8                           (EL_FIRST_DUMMY + 37)
-#define EL_BD_GAME_GRAPHICS_COLOR_TEMPLATE     (EL_FIRST_DUMMY + 38)
+#define EL_BDX_GAME_GRAPHICS_COLOR_TEMPLATE    (EL_FIRST_DUMMY + 38)
 
 // internal elements (only used for internal purposes like copying)
 #define EL_FIRST_INTERNAL                      (EL_FIRST_DUMMY + 39)
 
 #define EL_INTERNAL_CASCADE_BD                 (EL_FIRST_INTERNAL + 4)
 #define EL_INTERNAL_CASCADE_BD_ACTIVE          (EL_FIRST_INTERNAL + 5)
-#define EL_INTERNAL_CASCADE_BD_NATIVE          (EL_FIRST_INTERNAL + 6)
-#define EL_INTERNAL_CASCADE_BD_NATIVE_ACTIVE   (EL_FIRST_INTERNAL + 7)
-#define EL_INTERNAL_CASCADE_BD_EFFECTS         (EL_FIRST_INTERNAL + 8)
-#define EL_INTERNAL_CASCADE_BD_EFFECTS_ACTIVE  (EL_FIRST_INTERNAL + 9)
+#define EL_INTERNAL_CASCADE_BDX                        (EL_FIRST_INTERNAL + 6)
+#define EL_INTERNAL_CASCADE_BDX_ACTIVE         (EL_FIRST_INTERNAL + 7)
+#define EL_INTERNAL_CASCADE_BDX_EFFECTS                (EL_FIRST_INTERNAL + 8)
+#define EL_INTERNAL_CASCADE_BDX_EFFECTS_ACTIVE (EL_FIRST_INTERNAL + 9)
 #define EL_INTERNAL_CASCADE_EM                 (EL_FIRST_INTERNAL + 10)
 #define EL_INTERNAL_CASCADE_EM_ACTIVE          (EL_FIRST_INTERNAL + 11)
 #define EL_INTERNAL_CASCADE_EMC                        (EL_FIRST_INTERNAL + 12)
@@ -3023,7 +3023,7 @@ enum
 #define PROGRAM_VERSION_MAJOR          4
 #define PROGRAM_VERSION_MINOR          0
 #define PROGRAM_VERSION_PATCH          0
-#define PROGRAM_VERSION_EXTRA          ""
+#define PROGRAM_VERSION_EXTRA          "-test-1"
 
 #define PROGRAM_TITLE_STRING           "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING          "Holger Schemel"
@@ -3884,6 +3884,8 @@ struct GlobalInfo
   char *convert_leveldir;
   int convert_level_nr;
 
+  char *dumplevelset_leveldir;
+
   char *dumplevel_leveldir;
   int dumplevel_level_nr;