{ "bd_wall.EDITOR.xpos", "14" },
{ "bd_wall.EDITOR.ypos", "13" },
+ { "bd_wall_native", UNDEFINED_FILENAME },
+ { "bd_wall_native.clone_from", "bd_wall" },
+ { "bd_wall_native.EDITOR", UNDEFINED_FILENAME },
+ { "bd_wall_native.EDITOR.clone_from", "bd_wall.EDITOR" },
+
{ "bd_rock", "RocksDC.png" },
{ "bd_rock.xpos", "12" },
{ "bd_rock.ypos", "10" },
{ "bd_rock.EDITOR", "RocksDC.png" },
{ "bd_rock.EDITOR.xpos", "14" },
{ "bd_rock.EDITOR.ypos", "14" },
- { "bd_rock.falling.EDITOR", "RocksBD2.png" },
- { "bd_rock.falling.EDITOR.xpos", "1" },
- { "bd_rock.falling.EDITOR.ypos", "3" },
{ "bd_rock.moving.left", "RocksDC.png" },
{ "bd_rock.moving.left.xpos", "12" },
{ "bd_rock.moving.left.ypos", "10" },
{ "bd_rock.pushing.right.start_frame", "1" },
{ "bd_rock.pushing.right.delay", "2" },
+ { "bd_rock_native", UNDEFINED_FILENAME },
+ { "bd_rock_native.clone_from", "bd_rock" },
+ { "bd_rock_native.EDITOR", UNDEFINED_FILENAME },
+ { "bd_rock_native.EDITOR.clone_from", "bd_rock.EDITOR" },
+ { "bd_rock_native.moving.left", UNDEFINED_FILENAME },
+ { "bd_rock_native.moving.left.clone_from", "bd_rock.moving.left" },
+ { "bd_rock_native.moving.right", UNDEFINED_FILENAME },
+ { "bd_rock_native.moving.right.clone_from", "bd_rock.moving.right" },
+ { "bd_rock_native.pushing.left", UNDEFINED_FILENAME },
+ { "bd_rock_native.pushing.left.clone_from", "bd_rock.pushing.left" },
+ { "bd_rock_native.pushing.right", UNDEFINED_FILENAME },
+ { "bd_rock_native.pushing.right.clone_from", "bd_rock.pushing.right" },
+ { "bd_rock_native.falling.EDITOR", "RocksBD2.png" },
+ { "bd_rock_native.falling.EDITOR.xpos", "1" },
+ { "bd_rock_native.falling.EDITOR.ypos", "3" },
+
{ "bd_diamond", "RocksElements.png" },
{ "bd_diamond.xpos", "0" },
{ "bd_diamond.ypos", "10" },
{ "bd_diamond.falling.ypos", "10" },
{ "bd_diamond.falling.frames", "2" },
{ "bd_diamond.falling.delay", "4" },
- { "bd_diamond.falling.EDITOR", "RocksBD2.png" },
- { "bd_diamond.falling.EDITOR.xpos", "0" },
- { "bd_diamond.falling.EDITOR.ypos", "3" },
{ "bd_diamond.collecting", "RocksCollect.png" },
{ "bd_diamond.collecting.xpos", "0" },
{ "bd_diamond.collecting.ypos", "8" },
{ "bd_diamond.collecting.frames", "7" },
{ "bd_diamond.collecting.anim_mode", "linear" },
+ { "bd_diamond_native", UNDEFINED_FILENAME },
+ { "bd_diamond_native.clone_from", "bd_diamond" },
+ { "bd_diamond_native.moving", UNDEFINED_FILENAME },
+ { "bd_diamond_native.moving.clone_from", "bd_diamond.moving" },
+ { "bd_diamond_native.falling", UNDEFINED_FILENAME },
+ { "bd_diamond_native.falling.clone_from", "bd_diamond.falling" },
+ { "bd_diamond_native.collecting", UNDEFINED_FILENAME },
+ { "bd_diamond_native.collecting.clone_from", "bd_diamond.collecting" },
+ { "bd_diamond_native.falling.EDITOR", "RocksBD2.png" },
+ { "bd_diamond_native.falling.EDITOR.xpos", "0" },
+ { "bd_diamond_native.falling.EDITOR.ypos", "3" },
+
{ "bd_magic_wall", "RocksElements.png" },
{ "bd_magic_wall.xpos", "12" },
{ "bd_magic_wall.ypos", "10" },
{ "bd_magic_wall_dead.ypos", "10" },
{ "bd_magic_wall_dead.frames", "1" },
+ { "bd_magic_wall_native", UNDEFINED_FILENAME },
+ { "bd_magic_wall_native.clone_from", "bd_magic_wall" },
+ { "bd_magic_wall_native.active", UNDEFINED_FILENAME },
+ { "bd_magic_wall_native.active.clone_from", "bd_magic_wall.active" },
+
{ "bd_amoeba", "RocksElements.png" },
{ "bd_amoeba.xpos", "8" },
{ "bd_amoeba.ypos", "6" },
{ "bd_amoeba.EDITOR.xpos", "8" },
{ "bd_amoeba.EDITOR.ypos", "7" },
+ { "bd_amoeba_1", UNDEFINED_FILENAME },
+ { "bd_amoeba_1.clone_from", "bd_amoeba" },
+
{ "bd_amoeba_2", UNDEFINED_FILENAME },
{ "bd_amoeba_2.clone_from", "bd_amoeba" },
{ "bd_butterfly.down.EDITOR.xpos", "11" },
{ "bd_butterfly.down.EDITOR.ypos", "12" },
+ { "bd_butterfly_1", UNDEFINED_FILENAME },
+ { "bd_butterfly_1.clone_from", "bd_butterfly" },
+ { "bd_butterfly_1.right", UNDEFINED_FILENAME },
+ { "bd_butterfly_1.right.clone_from", "bd_butterfly.right" },
+ { "bd_butterfly_1.up", UNDEFINED_FILENAME },
+ { "bd_butterfly_1.up.clone_from", "bd_butterfly.up" },
+ { "bd_butterfly_1.left", UNDEFINED_FILENAME },
+ { "bd_butterfly_1.left.clone_from", "bd_butterfly.left" },
+ { "bd_butterfly_1.down", UNDEFINED_FILENAME },
+ { "bd_butterfly_1.down.clone_from", "bd_butterfly.down" },
+
{ "bd_butterfly_2", "RocksBD.png" },
{ "bd_butterfly_2.xpos", "0" },
{ "bd_butterfly_2.ypos", "0" },
{ "bd_firefly.down.EDITOR.xpos", "15" },
{ "bd_firefly.down.EDITOR.ypos", "12" },
+ { "bd_firefly_1", UNDEFINED_FILENAME },
+ { "bd_firefly_1.clone_from", "bd_firefly" },
+ { "bd_firefly_1.right", UNDEFINED_FILENAME },
+ { "bd_firefly_1.right.clone_from", "bd_firefly.right" },
+ { "bd_firefly_1.up", UNDEFINED_FILENAME },
+ { "bd_firefly_1.up.clone_from", "bd_firefly.up" },
+ { "bd_firefly_1.left", UNDEFINED_FILENAME },
+ { "bd_firefly_1.left.clone_from", "bd_firefly.left" },
+ { "bd_firefly_1.down", UNDEFINED_FILENAME },
+ { "bd_firefly_1.down.clone_from", "bd_firefly.down" },
+
{ "bd_firefly_2", "RocksBD.png" },
{ "bd_firefly_2.xpos", "2" },
{ "bd_firefly_2.ypos", "0" },
{ "bd_firefly_2.down.EDITOR.xpos", "11" },
{ "bd_firefly_2.down.EDITOR.ypos", "0" },
- { "bd_sand", UNDEFINED_FILENAME },
- { "bd_sand.clone_from", "sand" },
+ { "bd_sand_1", UNDEFINED_FILENAME },
+ { "bd_sand_1.clone_from", "sand" },
{ "bd_sand_2", UNDEFINED_FILENAME },
{ "bd_sand_2.clone_from", "emc_grass" },
{ "bd_sand_sloped_down_right.frames", "1" },
{ "bd_sand_glued", UNDEFINED_FILENAME },
- { "bd_sand_glued.clone_from", "bd_sand" },
+ { "bd_sand_glued.clone_from", "bd_sand_1" },
{ "bd_sand_glued.EDITOR", "RocksBD2.png" },
{ "bd_sand_glued.EDITOR.xpos", "2" },
{ "bd_sand_glued.EDITOR.ypos", "4" },
{ "bd_slime.anim_mode", "pingpong2" },
{ "bd_waiting_rock", UNDEFINED_FILENAME },
- { "bd_waiting_rock.clone_from", "bd_rock" },
+ { "bd_waiting_rock.clone_from", "bd_rock_native" },
{ "bd_waiting_rock.EDITOR", "RocksBD2.png" },
{ "bd_waiting_rock.EDITOR.xpos", "4" },
{ "bd_waiting_rock.EDITOR.ypos", "2" },
{ "bd_chasing_rock", UNDEFINED_FILENAME },
- { "bd_chasing_rock.clone_from", "bd_rock" },
+ { "bd_chasing_rock.clone_from", "bd_rock_native" },
{ "bd_ghost", "RocksBD.png" },
{ "bd_ghost.xpos", "0" },
{ "bd_diamond.collecting", "pong.wav" },
{ "bd_diamond.falling", UNDEFINED_FILENAME },
{ "bd_diamond.impact", "pling.wav" },
+ { "bd_diamond_native.collecting", "pong.wav" },
+ { "bd_diamond_native.falling", UNDEFINED_FILENAME },
+ { "bd_diamond_native.impact", "pling.wav" },
{ "bd_flying_diamond.collecting", "pong.wav" },
{ "bd_flying_diamond.falling", UNDEFINED_FILENAME },
{ "bd_flying_diamond.impact", "pling.wav" },
{ "bd_rock.pushing", "pusch.wav" },
{ "bd_rock.falling", UNDEFINED_FILENAME },
{ "bd_rock.impact", "klopf.wav" },
+ { "bd_rock_native.pushing", "pusch.wav" },
+ { "bd_rock_native.falling", UNDEFINED_FILENAME },
+ { "bd_rock_native.impact", "klopf.wav" },
{ "bd_flying_rock.pushing", "pusch.wav" },
{ "bd_flying_rock.falling", UNDEFINED_FILENAME },
{ "bd_flying_rock.impact", "klopf.wav" },
{ "bd_magic_wall.activating", "quirk.wav" },
{ "bd_magic_wall.active", "miep.wav" },
{ "bd_magic_wall.filling", "quirk.wav" },
+ { "bd_magic_wall_native.active", "miep.wav" },
{ "bd_amoeba.waiting", UNDEFINED_FILENAME },
{ "bd_amoeba.growing", "amoebe.wav" },
{ "bd_amoeba.turning_to_gem", "pling.wav" },
{ "bd_amoeba.turning_to_gem.mode_loop", "false" },
{ "bd_amoeba.turning_to_rock", "klopf.wav" },
{ "bd_amoeba.turning_to_rock.mode_loop", "false" },
- { "bd_amoeba.other", UNDEFINED_FILENAME },
+ { "bd_amoeba_1.active", UNDEFINED_FILENAME },
+ { "bd_amoeba_1.other", UNDEFINED_FILENAME },
+ { "bd_amoeba_2.active", UNDEFINED_FILENAME },
{ "bd_butterfly.moving", "klapper.wav" },
{ "bd_butterfly.waiting", "klapper.wav" },
{ "bd_firefly.moving", "roehr.wav" },
// keyword to stop parser: "NO_MORE_ELEMENT_SOUNDS" <-- do not change!
// sounds for Boulder Dash style elements and actions
- { "bd_diamond.falling.RANDOM_1", UNDEFINED_FILENAME },
- { "bd_diamond.falling.RANDOM_2", UNDEFINED_FILENAME },
- { "bd_diamond.falling.RANDOM_3", UNDEFINED_FILENAME },
- { "bd_diamond.falling.RANDOM_4", UNDEFINED_FILENAME },
- { "bd_diamond.falling.RANDOM_5", UNDEFINED_FILENAME },
- { "bd_diamond.falling.RANDOM_6", UNDEFINED_FILENAME },
- { "bd_diamond.falling.RANDOM_7", UNDEFINED_FILENAME },
- { "bd_diamond.falling.RANDOM_8", UNDEFINED_FILENAME },
- { "bd_diamond.impact.RANDOM_1", UNDEFINED_FILENAME },
- { "bd_diamond.impact.RANDOM_2", UNDEFINED_FILENAME },
- { "bd_diamond.impact.RANDOM_3", UNDEFINED_FILENAME },
- { "bd_diamond.impact.RANDOM_4", UNDEFINED_FILENAME },
- { "bd_diamond.impact.RANDOM_5", UNDEFINED_FILENAME },
- { "bd_diamond.impact.RANDOM_6", UNDEFINED_FILENAME },
- { "bd_diamond.impact.RANDOM_7", UNDEFINED_FILENAME },
- { "bd_diamond.impact.RANDOM_8", UNDEFINED_FILENAME },
+ { "bd_diamond_native.falling.RANDOM_1", UNDEFINED_FILENAME },
+ { "bd_diamond_native.falling.RANDOM_2", UNDEFINED_FILENAME },
+ { "bd_diamond_native.falling.RANDOM_3", UNDEFINED_FILENAME },
+ { "bd_diamond_native.falling.RANDOM_4", UNDEFINED_FILENAME },
+ { "bd_diamond_native.falling.RANDOM_5", UNDEFINED_FILENAME },
+ { "bd_diamond_native.falling.RANDOM_6", UNDEFINED_FILENAME },
+ { "bd_diamond_native.falling.RANDOM_7", UNDEFINED_FILENAME },
+ { "bd_diamond_native.falling.RANDOM_8", UNDEFINED_FILENAME },
+ { "bd_diamond_native.impact.RANDOM_1", UNDEFINED_FILENAME },
+ { "bd_diamond_native.impact.RANDOM_2", UNDEFINED_FILENAME },
+ { "bd_diamond_native.impact.RANDOM_3", UNDEFINED_FILENAME },
+ { "bd_diamond_native.impact.RANDOM_4", UNDEFINED_FILENAME },
+ { "bd_diamond_native.impact.RANDOM_5", UNDEFINED_FILENAME },
+ { "bd_diamond_native.impact.RANDOM_6", UNDEFINED_FILENAME },
+ { "bd_diamond_native.impact.RANDOM_7", UNDEFINED_FILENAME },
+ { "bd_diamond_native.impact.RANDOM_8", UNDEFINED_FILENAME },
{ "bd_flying_diamond.falling.RANDOM_1", UNDEFINED_FILENAME },
{ "bd_flying_diamond.falling.RANDOM_2", UNDEFINED_FILENAME },
{ "bd_flying_diamond.falling.RANDOM_3", UNDEFINED_FILENAME },
GADGET_ID_BD_MAGIC_WALL_NITRO_PACK_TO,
GADGET_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO,
GADGET_ID_BD_MAGIC_WALL_FLYING_ROCK_TO,
- GADGET_ID_BD_AMOEBA_CONTENT_TOO_BIG,
- GADGET_ID_BD_AMOEBA_CONTENT_ENCLOSED,
+ GADGET_ID_BD_AMOEBA_1_CONTENT_TOO_BIG,
+ GADGET_ID_BD_AMOEBA_1_CONTENT_ENCLOSED,
GADGET_ID_BD_AMOEBA_2_CONTENT_TOO_BIG,
GADGET_ID_BD_AMOEBA_2_CONTENT_ENCLOSED,
GADGET_ID_BD_AMOEBA_2_CONTENT_EXPLODING,
GADGET_ID_BD_ROCK_TURNS_TO_ON_IMPACT,
GADGET_ID_BD_DIAMOND_TURNS_TO_ON_FALLING,
GADGET_ID_BD_DIAMOND_TURNS_TO_ON_IMPACT,
- GADGET_ID_BD_FIREFLY_EXPLODES_TO,
+ GADGET_ID_BD_FIREFLY_1_EXPLODES_TO,
GADGET_ID_BD_FIREFLY_2_EXPLODES_TO,
- GADGET_ID_BD_BUTTERFLY_EXPLODES_TO,
+ GADGET_ID_BD_BUTTERFLY_1_EXPLODES_TO,
GADGET_ID_BD_BUTTERFLY_2_EXPLODES_TO,
GADGET_ID_BD_STONEFLY_EXPLODES_TO,
GADGET_ID_BD_DRAGONFLY_EXPLODES_TO,
ED_DRAWING_ID_BD_MAGIC_WALL_NITRO_PACK_TO,
ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO,
ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_ROCK_TO,
- ED_DRAWING_ID_BD_AMOEBA_CONTENT_TOO_BIG,
- ED_DRAWING_ID_BD_AMOEBA_CONTENT_ENCLOSED,
+ ED_DRAWING_ID_BD_AMOEBA_1_CONTENT_TOO_BIG,
+ ED_DRAWING_ID_BD_AMOEBA_1_CONTENT_ENCLOSED,
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_TOO_BIG,
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_ENCLOSED,
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_EXPLODING,
ED_DRAWING_ID_BD_ROCK_TURNS_TO_ON_IMPACT,
ED_DRAWING_ID_BD_DIAMOND_TURNS_TO_ON_FALLING,
ED_DRAWING_ID_BD_DIAMOND_TURNS_TO_ON_IMPACT,
- ED_DRAWING_ID_BD_FIREFLY_EXPLODES_TO,
+ ED_DRAWING_ID_BD_FIREFLY_1_EXPLODES_TO,
ED_DRAWING_ID_BD_FIREFLY_2_EXPLODES_TO,
- ED_DRAWING_ID_BD_BUTTERFLY_EXPLODES_TO,
+ ED_DRAWING_ID_BD_BUTTERFLY_1_EXPLODES_TO,
ED_DRAWING_ID_BD_BUTTERFLY_2_EXPLODES_TO,
ED_DRAWING_ID_BD_STONEFLY_EXPLODES_TO,
ED_DRAWING_ID_BD_DRAGONFLY_EXPLODES_TO,
"Changes flying rocks to:", NULL, NULL, NULL, "Element to turn flying rocks to"
},
- // ---------- BD amoeba content ---------------------------------------------
+ // ---------- BD amoeba 1 content -------------------------------------------
{
- ED_DRAWING_ID_BD_AMOEBA_CONTENT_TOO_BIG,
+ ED_DRAWING_ID_BD_AMOEBA_1_CONTENT_TOO_BIG,
ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(7),
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
- GADGET_ID_BD_AMOEBA_CONTENT_TOO_BIG, GADGET_ID_NONE,
- &level.bd_amoeba_content_too_big, 1, 1,
- "If too big, changes to:", NULL, NULL, NULL, "BD amoeba content if too big"
+ GADGET_ID_BD_AMOEBA_1_CONTENT_TOO_BIG, GADGET_ID_NONE,
+ &level.bd_amoeba_1_content_too_big, 1, 1,
+ "If too big, changes to:", NULL, NULL, NULL, "Amoeba 1 content if too big"
},
{
- ED_DRAWING_ID_BD_AMOEBA_CONTENT_ENCLOSED,
+ ED_DRAWING_ID_BD_AMOEBA_1_CONTENT_ENCLOSED,
ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(8),
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
- GADGET_ID_BD_AMOEBA_CONTENT_ENCLOSED, GADGET_ID_NONE,
- &level.bd_amoeba_content_enclosed, 1, 1,
- "If enclosed, changes to:", NULL, NULL, NULL, "BD amoeba content if enclosed"
+ GADGET_ID_BD_AMOEBA_1_CONTENT_ENCLOSED, GADGET_ID_NONE,
+ &level.bd_amoeba_1_content_enclosed, 1, 1,
+ "If enclosed, changes to:", NULL, NULL, NULL, "Amoeba 1 content if enclosed"
},
// ---------- BD amoeba 2 content -------------------------------------------
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_AMOEBA_2_CONTENT_TOO_BIG, GADGET_ID_NONE,
&level.bd_amoeba_2_content_too_big, 1, 1,
- "If too big, changes to:", NULL, NULL, NULL, "BD amoeba 2 content if too big"
+ "If too big, changes to:", NULL, NULL, NULL, "Amoeba 2 content if too big"
},
{
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_ENCLOSED,
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_AMOEBA_2_CONTENT_ENCLOSED, GADGET_ID_NONE,
&level.bd_amoeba_2_content_enclosed, 1, 1,
- "If enclosed, changes to:", NULL, NULL, NULL, "BD amoeba 2 content if enclosed"
+ "If enclosed, changes to:", NULL, NULL, NULL, "Amoeba 2 content if enclosed"
},
{
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_EXPLODING,
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_AMOEBA_2_CONTENT_EXPLODING, GADGET_ID_NONE,
&level.bd_amoeba_2_content_exploding, 1, 1,
- "If exploding, changes to:", NULL, NULL, NULL, "BD amoeba 2 content if exploding"
+ "If exploding, changes to:", NULL, NULL, NULL, "Amoeba 2 content if exploding"
},
{
ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_LOOKS_LIKE,
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_AMOEBA_2_CONTENT_LOOKS_LIKE, GADGET_ID_NONE,
&level.bd_amoeba_2_content_looks_like, 1, 1,
- "Use graphic of element:", NULL, NULL, NULL, "BD amoeba 2 looks like this element"
+ "Use graphic of element:", NULL, NULL, NULL, "Amoeba 2 looks like this element"
},
{
ED_DRAWING_ID_BD_SLIME_EATS_ELEMENT_1,
"Turns to on impact:", NULL, NULL, NULL, "Changes to this when falling stops"
},
{
- ED_DRAWING_ID_BD_FIREFLY_EXPLODES_TO,
+ ED_DRAWING_ID_BD_FIREFLY_1_EXPLODES_TO,
ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(0),
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
- GADGET_ID_BD_FIREFLY_EXPLODES_TO, GADGET_ID_NONE,
- &level.bd_firefly_explodes_to, 1, 1,
+ GADGET_ID_BD_FIREFLY_1_EXPLODES_TO, GADGET_ID_NONE,
+ &level.bd_firefly_1_explodes_to, 1, 1,
"Explodes to:", NULL, NULL, NULL, "Changes to this when exploding"
},
{
"Explodes to:", NULL, NULL, NULL, "Changes to this when exploding"
},
{
- ED_DRAWING_ID_BD_BUTTERFLY_EXPLODES_TO,
+ ED_DRAWING_ID_BD_BUTTERFLY_1_EXPLODES_TO,
ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(0),
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
- GADGET_ID_BD_BUTTERFLY_EXPLODES_TO, GADGET_ID_NONE,
- &level.bd_butterfly_explodes_to, 1, 1,
+ GADGET_ID_BD_BUTTERFLY_1_EXPLODES_TO, GADGET_ID_NONE,
+ &level.bd_butterfly_1_explodes_to, 1, 1,
"Explodes to:", NULL, NULL, NULL, "Changes to this when exploding"
},
{
static int editor_el_boulderdash_native[] =
{
EL_EMPTY,
- EL_BD_SAND,
- EL_BD_ROCK,
- EL_BD_DIAMOND,
+ EL_BD_SAND_1,
+ EL_BD_ROCK_NATIVE,
+ EL_BD_DIAMOND_NATIVE,
EL_BD_INBOX,
EL_BD_STEELWALL,
- EL_BD_WALL,
- EL_BD_MAGIC_WALL,
+ EL_BD_WALL_NATIVE,
+ EL_BD_MAGIC_WALL_NATIVE,
- EL_BD_AMOEBA,
- EL_BD_BUTTERFLY_UP,
- EL_BD_FIREFLY_UP,
+ EL_BD_AMOEBA_1,
+ EL_BD_BUTTERFLY_1_UP,
+ EL_BD_FIREFLY_1_UP,
EL_BD_EXIT_CLOSED,
- EL_BD_BUTTERFLY_LEFT,
- EL_BD_FIREFLY_LEFT,
- EL_BD_BUTTERFLY_RIGHT,
- EL_BD_FIREFLY_RIGHT,
+ EL_BD_BUTTERFLY_1_LEFT,
+ EL_BD_FIREFLY_1_LEFT,
+ EL_BD_BUTTERFLY_1_RIGHT,
+ EL_BD_FIREFLY_1_RIGHT,
EL_BD_SAND_2,
- EL_BD_BUTTERFLY_DOWN,
- EL_BD_FIREFLY_DOWN,
+ EL_BD_BUTTERFLY_1_DOWN,
+ EL_BD_FIREFLY_1_DOWN,
EL_BD_EXIT_OPEN,
EL_BD_AMOEBA_2,
static int editor_el_boulderdash_effects[] =
{
- EL_BD_DIAMOND_FALLING,
- EL_BD_ROCK_FALLING,
+ EL_BD_DIAMOND_NATIVE_FALLING,
+ EL_BD_ROCK_NATIVE_FALLING,
EL_BD_MEGA_ROCK_FALLING,
EL_BD_FLYING_DIAMOND_FLYING,
EL_BD_EXPLODING_5,
EL_BD_TIME_PENALTY,
- EL_BD_DIAMOND_GROWING_1,
- EL_BD_DIAMOND_GROWING_2,
+ EL_BD_DIAMOND_NATIVE_GROWING_1,
+ EL_BD_DIAMOND_NATIVE_GROWING_2,
- EL_BD_DIAMOND_GROWING_3,
- EL_BD_DIAMOND_GROWING_4,
- EL_BD_DIAMOND_GROWING_5,
+ EL_BD_DIAMOND_NATIVE_GROWING_3,
+ EL_BD_DIAMOND_NATIVE_GROWING_4,
+ EL_BD_DIAMOND_NATIVE_GROWING_5,
EL_BD_NITRO_PACK_EXPLODING,
EL_BD_NITRO_PACK_EXPLODING_1,
EL_BD_NITRO_PACK_EXPLODING_3,
EL_BD_NITRO_PACK_EXPLODING_4,
- EL_BD_ROCK_GROWING_1,
- EL_BD_ROCK_GROWING_2,
- EL_BD_ROCK_GROWING_3,
- EL_BD_ROCK_GROWING_4,
+ EL_BD_ROCK_NATIVE_GROWING_1,
+ EL_BD_ROCK_NATIVE_GROWING_2,
+ EL_BD_ROCK_NATIVE_GROWING_3,
+ EL_BD_ROCK_NATIVE_GROWING_4,
EL_BD_STEELWALL_GROWING_1,
EL_BD_STEELWALL_GROWING_2,
{
{ EL_EMERALD, &level.score[SC_EMERALD], TEXT_COLLECTING },
{ EL_BD_DIAMOND, &level.score[SC_EMERALD], TEXT_COLLECTING },
- { EL_BD_DIAMOND, &level.score[SC_DIAMOND_EXTRA], TEXT_COLLECTING_EXTRA },
+ { EL_BD_DIAMOND_NATIVE, &level.score[SC_EMERALD], TEXT_COLLECTING },
+ { EL_BD_DIAMOND_NATIVE, &level.score[SC_DIAMOND_EXTRA], TEXT_COLLECTING_EXTRA },
{ EL_EMERALD_YELLOW, &level.score[SC_EMERALD], TEXT_COLLECTING },
{ EL_EMERALD_RED, &level.score[SC_EMERALD], TEXT_COLLECTING },
{ EL_EMERALD_PURPLE, &level.score[SC_EMERALD], TEXT_COLLECTING },
{ EL_AMOEBA_FULL, &level.amoeba_speed, TEXT_AMOEBA_SPEED },
{ EL_BD_AMOEBA, &level.amoeba_speed, TEXT_AMOEBA_SPEED },
{ EL_EMC_DRIPPER, &level.amoeba_speed, TEXT_AMOEBA_SPEED },
- { EL_BD_AMOEBA, &level.bd_amoeba_threshold_too_big, TEXT_AMOEBA_THRESHOED },
- { EL_BD_AMOEBA, &level.bd_amoeba_slow_growth_time, TEXT_AMOEBA_SLOW_TIME },
- { EL_BD_AMOEBA, &level.bd_amoeba_slow_growth_rate, TEXT_AMOEBA_SLOW_RATE,
+ { EL_BD_AMOEBA_1, &level.bd_amoeba_1_threshold_too_big, TEXT_AMOEBA_THRESHOED },
+ { EL_BD_AMOEBA_1, &level.bd_amoeba_1_slow_growth_time, TEXT_AMOEBA_SLOW_TIME },
+ { EL_BD_AMOEBA_2, &level.bd_amoeba_1_slow_growth_rate, TEXT_AMOEBA_SLOW_RATE,
0, 100 },
- { EL_BD_AMOEBA, &level.bd_amoeba_fast_growth_rate, TEXT_AMOEBA_FAST_RATE,
+ { EL_BD_AMOEBA_1, &level.bd_amoeba_1_fast_growth_rate, TEXT_AMOEBA_FAST_RATE,
0, 100 },
{ EL_BD_AMOEBA_2, &level.bd_amoeba_2_threshold_too_big, TEXT_AMOEBA_THRESHOED },
{ EL_BD_AMOEBA_2, &level.bd_amoeba_2_slow_growth_time, TEXT_AMOEBA_SLOW_TIME },
{ EL_BD_AMOEBA_2, &level.bd_amoeba_2_fast_growth_rate, TEXT_AMOEBA_FAST_RATE,
0, 100 },
{ EL_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION },
- { EL_BD_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION },
{ EL_DC_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION },
+ { EL_BD_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION },
+ { EL_BD_MAGIC_WALL_NATIVE, &level.bd_magic_wall_time, TEXT_DURATION },
{ EL_ROBOT_WHEEL, &level.time_wheel, TEXT_DURATION },
{ EL_TIMEGATE_SWITCH, &level.time_timegate, TEXT_DURATION },
{ EL_DC_TIMEGATE_SWITCH, &level.time_timegate, TEXT_DURATION },
if (element == EL_EMPTY_SPACE && level.game_engine_type != GAME_ENGINE_TYPE_RND)
return FALSE;
- // special case: BD style rock customization only available in BD game engine
- if (element == EL_BD_ROCK && level.game_engine_type != GAME_ENGINE_TYPE_BD)
- return FALSE;
-
if (IS_GEM(element) ||
IS_CUSTOM_ELEMENT(element) ||
IS_GROUP_ELEMENT(element) ||
IS_PLAYER_ELEMENT(element) ||
IS_BD_PLAYER_ELEMENT(element) ||
IS_BD_FIREFLY(properties_element) ||
+ IS_BD_FIREFLY_1(properties_element) ||
IS_BD_FIREFLY_2(properties_element) ||
IS_BD_BUTTERFLY(properties_element) ||
+ IS_BD_BUTTERFLY_1(properties_element) ||
IS_BD_BUTTERFLY_2(properties_element) ||
IS_BD_STONEFLY(properties_element) ||
IS_BD_DRAGONFLY(properties_element) ||
CAN_GROW(element) ||
COULD_MOVE_INTO_ACID(element) ||
MAYBE_DONT_COLLIDE_WITH(element) ||
- element == EL_BD_SAND ||
- element == EL_BD_ROCK ||
+ element == EL_BD_SAND_1 ||
+ element == EL_BD_ROCK_NATIVE ||
element == EL_BD_MEGA_ROCK ||
element == EL_BD_BOMB ||
element == EL_BD_ROCKET_LAUNCHER ||
case EL_EMERALD_RED:
case EL_EMERALD_PURPLE:
case EL_BD_DIAMOND:
+ case EL_BD_DIAMOND_NATIVE:
case EL_WALL_EMERALD:
case EL_WALL_EMERALD_YELLOW:
case EL_WALL_EMERALD_RED:
if (elements_with_counter[i].element != properties_element)
continue;
- // special case: score for extra diamonds only available in BD game engine
- if (elements_with_counter[i].element == EL_BD_DIAMOND &&
- elements_with_counter[i].value == &level.score[SC_DIAMOND_EXTRA] &&
- level.game_engine_type != GAME_ENGINE_TYPE_BD)
- continue;
-
- // special case: some amoeba counters only available in BD game engine
- if (elements_with_counter[i].element == EL_BD_AMOEBA &&
- elements_with_counter[i].value != &level.amoeba_speed &&
- level.game_engine_type != GAME_ENGINE_TYPE_BD)
- continue;
-
- // special case: score for smashing only available in R'n'D game engine
- if ((IS_BD_FIREFLY(elements_with_counter[i].element) ||
- IS_BD_BUTTERFLY(elements_with_counter[i].element)) &&
- (elements_with_counter[i].value == &level.score[SC_BUG] ||
- elements_with_counter[i].value == &level.score[SC_SPACESHIP]) &&
- level.game_engine_type == GAME_ENGINE_TYPE_BD)
- continue;
-
- // special case: some amoeba counters only available in R'n'D game engine
- if (elements_with_counter[i].element == EL_BD_AMOEBA &&
- elements_with_counter[i].value == &level.amoeba_speed &&
- level.game_engine_type == GAME_ENGINE_TYPE_BD)
- continue;
-
int counter_id = ED_COUNTER_ID_ELEMENT_VALUE1 + num_element_counters;
counterbutton_info[counter_id].y =
- ED_ELEMENT_SETTINGS_YPOS((HAS_EDITOR_CONTENT(properties_element) ? 1 : 0) +
- (CAN_GROW(properties_element) ? 1 : 0) +
- (COULD_MOVE_INTO_ACID(properties_element) ? 1 : 0) +
- (MAYBE_DONT_COLLIDE_WITH(properties_element) ? 1 : 0) +
- (properties_element == EL_BD_VOODOO_DOLL ? 4 : 0) +
- (properties_element == EL_BD_SLIME ? 1 : 0) +
- (properties_element == EL_BD_ACID ? 1 : 0) +
- (properties_element == EL_BD_REPLICATOR ? 1 : 0) +
- (properties_element == EL_BD_CREATURE_SWITCH ? 1 : 0) +
- (properties_element == EL_BD_GRAVITY_SWITCH ? 2 : 0) +
- (properties_element == EL_EMC_MAGIC_BALL ? 2 : 0) +
+ ED_ELEMENT_SETTINGS_YPOS((HAS_EDITOR_CONTENT(properties_element) ? 1 : 0) +
+ (CAN_GROW(properties_element) ? 1 : 0) +
+ (COULD_MOVE_INTO_ACID(properties_element) ? 1 : 0) +
+ (MAYBE_DONT_COLLIDE_WITH(properties_element) ? 1 : 0) +
+ (properties_element == EL_BD_AMOEBA_1 ? 3 : 0) +
+ (properties_element == EL_BD_AMOEBA_2 ? 3 : 0) +
+ (properties_element == EL_BD_MAGIC_WALL_NATIVE ? 1 : 0) +
+ (properties_element == EL_BD_VOODOO_DOLL ? 4 : 0) +
+ (properties_element == EL_BD_SLIME ? 1 : 0) +
+ (properties_element == EL_BD_ACID ? 1 : 0) +
+ (properties_element == EL_BD_REPLICATOR ? 1 : 0) +
+ (properties_element == EL_BD_CREATURE_SWITCH ? 1 : 0) +
+ (properties_element == EL_BD_GRAVITY_SWITCH ? 2 : 0) +
+ (properties_element == EL_EMC_MAGIC_BALL ? 2 : 0) +
num_element_counters);
- // special case: set magic wall counter for BD game engine separately
- if (properties_element == EL_BD_MAGIC_WALL && level.game_engine_type == GAME_ENGINE_TYPE_BD)
- counterbutton_info[counter_id].y = ED_ELEMENT_SETTINGS_YPOS(1);
-
- // special case: set amoeba counters for BD game engine separately
- if ((properties_element == EL_BD_AMOEBA && level.game_engine_type == GAME_ENGINE_TYPE_BD) ||
- (properties_element == EL_BD_AMOEBA_2))
- counterbutton_info[counter_id].y = ED_ELEMENT_SETTINGS_YPOS(3 + num_element_counters);
-
// special case: set position for delay counter for reappearing hammered walls
if (properties_element == EL_BD_PNEUMATIC_HAMMER && num_element_counters > 0)
counterbutton_info[counter_id].y += 1;
break;
}
- if (properties_element == EL_BD_MAGIC_WALL && level.game_engine_type == GAME_ENGINE_TYPE_BD)
+ if (properties_element == EL_BD_MAGIC_WALL_NATIVE)
{
// draw stickybutton gadget
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_STICK_ELEMENT);
// draw stickybutton gadget
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_STICK_ELEMENT);
- if (properties_element == EL_BD_AMOEBA && level.game_engine_type == GAME_ENGINE_TYPE_BD)
+ if (properties_element == EL_BD_AMOEBA_1)
{
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_AMOEBA_WAIT_FOR_HATCHING);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_AMOEBA_START_IMMEDIATELY);
- MapDrawingArea(ED_DRAWING_ID_BD_AMOEBA_CONTENT_TOO_BIG);
- MapDrawingArea(ED_DRAWING_ID_BD_AMOEBA_CONTENT_ENCLOSED);
+ MapDrawingArea(ED_DRAWING_ID_BD_AMOEBA_1_CONTENT_TOO_BIG);
+ MapDrawingArea(ED_DRAWING_ID_BD_AMOEBA_1_CONTENT_ENCLOSED);
}
else if (properties_element == EL_BD_AMOEBA_2)
{
MapDrawingArea(ED_DRAWING_ID_BD_SNAP_ELEMENT);
}
- if (properties_element == EL_BD_SAND)
+ if (properties_element == EL_BD_SAND_1)
{
MapDrawingArea(ED_DRAWING_ID_BD_SAND_LOOKS_LIKE);
}
- if (properties_element == EL_BD_ROCK && level.game_engine_type == GAME_ENGINE_TYPE_BD)
+ if (properties_element == EL_BD_ROCK_NATIVE)
{
counterbutton_info[ED_COUNTER_ID_BD_PUSHING_PROB].y =
ED_ELEMENT_SETTINGS_YPOS(0);
MapDrawingArea(ED_DRAWING_ID_BD_ROCK_TURNS_TO_ON_IMPACT);
}
- if (properties_element == EL_BD_DIAMOND && level.game_engine_type == GAME_ENGINE_TYPE_BD)
+ if (properties_element == EL_BD_DIAMOND_NATIVE)
{
MapDrawingArea(ED_DRAWING_ID_BD_DIAMOND_TURNS_TO_ON_FALLING);
MapDrawingArea(ED_DRAWING_ID_BD_DIAMOND_TURNS_TO_ON_IMPACT);
if (level.game_engine_type == GAME_ENGINE_TYPE_BD)
{
- if (IS_BD_FIREFLY(properties_element))
+ if (IS_BD_FIREFLY_1(properties_element))
{
- MapDrawingArea(ED_DRAWING_ID_BD_FIREFLY_EXPLODES_TO);
+ MapDrawingArea(ED_DRAWING_ID_BD_FIREFLY_1_EXPLODES_TO);
MapDrawingArea(ED_DRAWING_ID_BD_EXPLOSION_TURNS_TO);
}
else if (IS_BD_FIREFLY_2(properties_element))
MapDrawingArea(ED_DRAWING_ID_BD_FIREFLY_2_EXPLODES_TO);
MapDrawingArea(ED_DRAWING_ID_BD_EXPLOSION_TURNS_TO);
}
- else if (IS_BD_BUTTERFLY(properties_element))
+ else if (IS_BD_BUTTERFLY_1(properties_element))
{
- MapDrawingArea(ED_DRAWING_ID_BD_BUTTERFLY_EXPLODES_TO);
+ MapDrawingArea(ED_DRAWING_ID_BD_BUTTERFLY_1_EXPLODES_TO);
MapDrawingArea(ED_DRAWING_ID_BD_DIAMOND_BIRTH_TURNS_TO);
}
else if (IS_BD_BUTTERFLY_2(properties_element))
int graphic;
int frame;
- if (IS_BD_RUNTIME_ELEMENT(properties_element))
+ if (IS_BD_NATIVE_RUNTIME_ELEMENT(properties_element))
{
el2edimg_with_frame(properties_element, &graphic, &frame);
{ EL_EMERALD_PURPLE, EL_WALL_EMERALD_PURPLE },
{ EL_DIAMOND, EL_WALL_DIAMOND },
{ EL_BD_DIAMOND, EL_WALL_BD_DIAMOND },
+ { EL_BD_DIAMOND_NATIVE, EL_BD_WALL_DIAMOND },
{ EL_GATE_1, EL_GATE_1_GRAY },
{ EL_GATE_2, EL_GATE_2_GRAY },
{ EL_GATE_3, EL_GATE_3_GRAY },
},
{
- EL_BD_SAND, -1,
+ EL_BD_SAND_1, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
- &li.bd_sand_looks_like, EL_BD_SAND
+ &li.bd_sand_looks_like, EL_BD_SAND_1
},
{
- EL_BD_ROCK, -1,
+ EL_BD_ROCK_NATIVE, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
- &li.bd_rock_turns_to_on_falling, EL_BD_ROCK_FALLING
+ &li.bd_rock_turns_to_on_falling, EL_BD_ROCK_NATIVE_FALLING
},
{
- EL_BD_ROCK, -1,
+ EL_BD_ROCK_NATIVE, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(2),
- &li.bd_rock_turns_to_on_impact, EL_BD_ROCK
+ &li.bd_rock_turns_to_on_impact, EL_BD_ROCK_NATIVE
},
{
- EL_BD_DIAMOND, -1,
+ EL_BD_DIAMOND_NATIVE, -1,
TYPE_INTEGER, CONF_VALUE_16_BIT(1),
&li.score[SC_DIAMOND_EXTRA], 20
},
{
- EL_BD_DIAMOND, -1,
+ EL_BD_DIAMOND_NATIVE, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(2),
- &li.bd_diamond_turns_to_on_falling, EL_BD_DIAMOND_FALLING
+ &li.bd_diamond_turns_to_on_falling, EL_BD_DIAMOND_NATIVE_FALLING
},
{
- EL_BD_DIAMOND, -1,
+ EL_BD_DIAMOND_NATIVE, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(3),
- &li.bd_diamond_turns_to_on_impact, EL_BD_DIAMOND
+ &li.bd_diamond_turns_to_on_impact, EL_BD_DIAMOND_NATIVE
},
{
- EL_BD_FIREFLY, -1,
+ EL_BD_FIREFLY_1, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
- &li.bd_firefly_explodes_to, EL_BD_EXPLODING_1
+ &li.bd_firefly_1_explodes_to, EL_BD_EXPLODING_1
},
{
},
{
- EL_BD_BUTTERFLY, -1,
+ EL_BD_BUTTERFLY_1, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
- &li.bd_butterfly_explodes_to, EL_BD_DIAMOND_GROWING_1
+ &li.bd_butterfly_1_explodes_to, EL_BD_DIAMOND_NATIVE_GROWING_1
},
{
EL_BD_BUTTERFLY_2, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
- &li.bd_butterfly_2_explodes_to, EL_BD_DIAMOND_GROWING_1
+ &li.bd_butterfly_2_explodes_to, EL_BD_DIAMOND_NATIVE_GROWING_1
},
{
EL_BD_STONEFLY, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
- &li.bd_stonefly_explodes_to, EL_BD_ROCK_GROWING_1
+ &li.bd_stonefly_explodes_to, EL_BD_ROCK_NATIVE_GROWING_1
},
{
},
{
- EL_BD_DIAMOND_GROWING_5, -1,
+ EL_BD_DIAMOND_NATIVE_GROWING_5, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
- &li.bd_diamond_birth_turns_to, EL_BD_DIAMOND
+ &li.bd_diamond_birth_turns_to, EL_BD_DIAMOND_NATIVE
},
{
},
{
- EL_BD_MAGIC_WALL, -1,
+ EL_BD_MAGIC_WALL_NATIVE, -1,
TYPE_BOOLEAN, CONF_VALUE_8_BIT(1),
&li.bd_magic_wall_wait_hatching, FALSE
},
{
- EL_BD_MAGIC_WALL, -1,
+ EL_BD_MAGIC_WALL_NATIVE, -1,
TYPE_BOOLEAN, CONF_VALUE_8_BIT(2),
&li.bd_magic_wall_stops_amoeba, TRUE
},
{
- EL_BD_MAGIC_WALL, -1,
+ EL_BD_MAGIC_WALL_NATIVE, -1,
TYPE_BOOLEAN, CONF_VALUE_8_BIT(3),
&li.bd_magic_wall_zero_infinite, TRUE
},
{
- EL_BD_MAGIC_WALL, -1,
+ EL_BD_MAGIC_WALL_NATIVE, -1,
TYPE_BOOLEAN, CONF_VALUE_8_BIT(4),
&li.bd_magic_wall_break_scan, FALSE
},
{
- EL_BD_MAGIC_WALL, -1,
- TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
- &li.bd_magic_wall_diamond_to, EL_BD_ROCK_FALLING
+ EL_BD_MAGIC_WALL_NATIVE, -1,
+ TYPE_INTEGER, CONF_VALUE_16_BIT(1),
+ &li.bd_magic_wall_time, 999
},
{
- EL_BD_MAGIC_WALL, -1,
+ EL_BD_MAGIC_WALL_NATIVE, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(2),
- &li.bd_magic_wall_rock_to, EL_BD_DIAMOND_FALLING
+ &li.bd_magic_wall_diamond_to, EL_BD_ROCK_NATIVE_FALLING
},
{
- EL_BD_MAGIC_WALL, -1,
+ EL_BD_MAGIC_WALL_NATIVE, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(3),
- &li.bd_magic_wall_mega_rock_to, EL_BD_NITRO_PACK_FALLING
+ &li.bd_magic_wall_rock_to, EL_BD_DIAMOND_NATIVE_FALLING
},
{
- EL_BD_MAGIC_WALL, -1,
+ EL_BD_MAGIC_WALL_NATIVE, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(4),
- &li.bd_magic_wall_nut_to, EL_BD_NUT_FALLING
+ &li.bd_magic_wall_mega_rock_to, EL_BD_NITRO_PACK_FALLING
},
{
- EL_BD_MAGIC_WALL, -1,
+ EL_BD_MAGIC_WALL_NATIVE, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(5),
- &li.bd_magic_wall_nitro_pack_to, EL_BD_MEGA_ROCK_FALLING
+ &li.bd_magic_wall_nut_to, EL_BD_NUT_FALLING
},
{
- EL_BD_MAGIC_WALL, -1,
+ EL_BD_MAGIC_WALL_NATIVE, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(6),
- &li.bd_magic_wall_flying_diamond_to, EL_BD_FLYING_ROCK_FLYING
+ &li.bd_magic_wall_nitro_pack_to, EL_BD_MEGA_ROCK_FALLING
},
{
- EL_BD_MAGIC_WALL, -1,
+ EL_BD_MAGIC_WALL_NATIVE, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(7),
+ &li.bd_magic_wall_flying_diamond_to, EL_BD_FLYING_ROCK_FLYING
+ },
+ {
+ EL_BD_MAGIC_WALL_NATIVE, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(8),
&li.bd_magic_wall_flying_rock_to, EL_BD_FLYING_DIAMOND_FLYING
},
{
EL_BD_SLIME, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
- &li.bd_slime_eats_element_1, EL_BD_DIAMOND
+ &li.bd_slime_eats_element_1, EL_BD_DIAMOND_NATIVE
},
{
EL_BD_SLIME, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(2),
- &li.bd_slime_converts_to_element_1, EL_BD_DIAMOND_FALLING
+ &li.bd_slime_converts_to_element_1, EL_BD_DIAMOND_NATIVE_FALLING
},
{
EL_BD_SLIME, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(3),
- &li.bd_slime_eats_element_2, EL_BD_ROCK
+ &li.bd_slime_eats_element_2, EL_BD_ROCK_NATIVE
},
{
EL_BD_SLIME, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(4),
- &li.bd_slime_converts_to_element_2, EL_BD_ROCK_FALLING
+ &li.bd_slime_converts_to_element_2, EL_BD_ROCK_NATIVE_FALLING
},
{
EL_BD_SLIME, -1,
{
EL_BD_ACID, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
- &li.bd_acid_eats_element, EL_BD_SAND
+ &li.bd_acid_eats_element, EL_BD_SAND_1
},
{
EL_BD_ACID, -1,
{
EL_BD_BITER, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
- &li.bd_biter_eats_element, EL_BD_DIAMOND
+ &li.bd_biter_eats_element, EL_BD_DIAMOND_NATIVE
},
{
&li.score[SC_CRYSTAL], 10
},
- // (amoeba values used by R'n'D game engine only)
{
EL_BD_AMOEBA, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
TYPE_BOOLEAN, CONF_VALUE_8_BIT(1),
&li.grow_into_diggable, TRUE
},
- // (amoeba values used by BD game engine only)
- {
- EL_BD_AMOEBA, -1,
- TYPE_BOOLEAN, CONF_VALUE_8_BIT(2),
- &li.bd_amoeba_wait_for_hatching, FALSE
- },
+
{
- EL_BD_AMOEBA, -1,
- TYPE_BOOLEAN, CONF_VALUE_8_BIT(3),
- &li.bd_amoeba_start_immediately, TRUE
+ EL_BD_AMOEBA_1, -1,
+ TYPE_INTEGER, CONF_VALUE_16_BIT(1),
+ &li.bd_amoeba_1_threshold_too_big, 200
},
{
- EL_BD_AMOEBA, -1,
- TYPE_BOOLEAN, CONF_VALUE_8_BIT(4),
- &li.bd_amoeba_2_explode_by_amoeba, TRUE
+ EL_BD_AMOEBA_1, -1,
+ TYPE_INTEGER, CONF_VALUE_16_BIT(2),
+ &li.bd_amoeba_1_slow_growth_time, 200
},
{
- EL_BD_AMOEBA, -1,
- TYPE_INTEGER, CONF_VALUE_16_BIT(3),
- &li.bd_amoeba_threshold_too_big, 200
+ EL_BD_AMOEBA_1, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(3),
+ &li.bd_amoeba_1_content_too_big, EL_BD_ROCK_NATIVE
},
{
- EL_BD_AMOEBA, -1,
- TYPE_INTEGER, CONF_VALUE_16_BIT(4),
- &li.bd_amoeba_slow_growth_time, 200
+ EL_BD_AMOEBA_1, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(4),
+ &li.bd_amoeba_1_content_enclosed, EL_BD_DIAMOND_NATIVE
},
{
- EL_BD_AMOEBA, -1,
- TYPE_INTEGER, CONF_VALUE_8_BIT(5),
- &li.bd_amoeba_slow_growth_rate, 3
+ EL_BD_AMOEBA_1, -1,
+ TYPE_INTEGER, CONF_VALUE_8_BIT(1),
+ &li.bd_amoeba_1_slow_growth_rate, 3
},
{
- EL_BD_AMOEBA, -1,
- TYPE_INTEGER, CONF_VALUE_8_BIT(6),
- &li.bd_amoeba_fast_growth_rate, 25
+ EL_BD_AMOEBA_1, -1,
+ TYPE_INTEGER, CONF_VALUE_8_BIT(2),
+ &li.bd_amoeba_1_fast_growth_rate, 25
},
{
- EL_BD_AMOEBA, -1,
- TYPE_ELEMENT, CONF_VALUE_16_BIT(5),
- &li.bd_amoeba_content_too_big, EL_BD_ROCK
+ EL_BD_AMOEBA_1, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(3),
+ &li.bd_amoeba_wait_for_hatching, FALSE
},
{
- EL_BD_AMOEBA, -1,
- TYPE_ELEMENT, CONF_VALUE_16_BIT(6),
- &li.bd_amoeba_content_enclosed, EL_BD_DIAMOND
+ EL_BD_AMOEBA_1, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(4),
+ &li.bd_amoeba_start_immediately, TRUE
},
{
EL_BD_AMOEBA_2, -1,
- TYPE_INTEGER, CONF_VALUE_16_BIT(3),
+ TYPE_INTEGER, CONF_VALUE_16_BIT(1),
&li.bd_amoeba_2_threshold_too_big, 200
},
{
EL_BD_AMOEBA_2, -1,
- TYPE_INTEGER, CONF_VALUE_16_BIT(4),
+ TYPE_INTEGER, CONF_VALUE_16_BIT(2),
&li.bd_amoeba_2_slow_growth_time, 200
},
{
EL_BD_AMOEBA_2, -1,
- TYPE_INTEGER, CONF_VALUE_8_BIT(5),
- &li.bd_amoeba_2_slow_growth_rate, 3
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(3),
+ &li.bd_amoeba_2_content_too_big, EL_BD_ROCK_NATIVE
},
{
EL_BD_AMOEBA_2, -1,
- TYPE_INTEGER, CONF_VALUE_8_BIT(6),
- &li.bd_amoeba_2_fast_growth_rate, 25
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(4),
+ &li.bd_amoeba_2_content_enclosed, EL_BD_DIAMOND_NATIVE
},
{
EL_BD_AMOEBA_2, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(5),
- &li.bd_amoeba_2_content_too_big, EL_BD_ROCK
+ &li.bd_amoeba_2_content_exploding, EL_EMPTY
},
{
EL_BD_AMOEBA_2, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(6),
- &li.bd_amoeba_2_content_enclosed, EL_BD_DIAMOND
+ &li.bd_amoeba_2_content_looks_like, EL_BD_AMOEBA_2
},
{
EL_BD_AMOEBA_2, -1,
- TYPE_ELEMENT, CONF_VALUE_16_BIT(7),
- &li.bd_amoeba_2_content_exploding, EL_EMPTY
+ TYPE_INTEGER, CONF_VALUE_8_BIT(1),
+ &li.bd_amoeba_2_slow_growth_rate, 3
},
{
EL_BD_AMOEBA_2, -1,
- TYPE_ELEMENT, CONF_VALUE_16_BIT(8),
- &li.bd_amoeba_2_content_looks_like, EL_BD_AMOEBA_2
+ TYPE_INTEGER, CONF_VALUE_8_BIT(2),
+ &li.bd_amoeba_2_fast_growth_rate, 25
+ },
+ {
+ EL_BD_AMOEBA_2, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(3),
+ &li.bd_amoeba_2_explode_by_amoeba, TRUE
},
{
cave->voodoo_dies_by_stone = level->bd_voodoo_dies_by_rock;
cave->voodoo_disappear_in_explosion = level->bd_voodoo_vanish_by_explosion;
cave->level_penalty_time[0] = level->bd_voodoo_penalty_time;
- cave->level_magic_wall_time[0] = level->time_magic_wall;
+ cave->level_magic_wall_time[0] = level->bd_magic_wall_time;
cave->magic_timer_zero_is_infinite = level->bd_magic_wall_zero_infinite;
cave->magic_timer_wait_for_hatching = level->bd_magic_wall_wait_hatching;
cave->magic_wall_stops_amoeba = level->bd_magic_wall_stops_amoeba;
cave->amoeba_timer_wait_for_hatching = level->bd_amoeba_wait_for_hatching;
cave->amoeba_timer_started_immediately= level->bd_amoeba_start_immediately;
cave->amoeba_2_explodes_by_amoeba = level->bd_amoeba_2_explode_by_amoeba;
- cave->level_amoeba_threshold[0] = level->bd_amoeba_threshold_too_big;
- cave->level_amoeba_time[0] = level->bd_amoeba_slow_growth_time;
- cave->amoeba_growth_prob = level->bd_amoeba_slow_growth_rate * 10000;
- cave->amoeba_fast_growth_prob = level->bd_amoeba_fast_growth_rate * 10000;
+ cave->level_amoeba_threshold[0] = level->bd_amoeba_1_threshold_too_big;
+ cave->level_amoeba_time[0] = level->bd_amoeba_1_slow_growth_time;
+ cave->amoeba_growth_prob = level->bd_amoeba_1_slow_growth_rate * 10000;
+ cave->amoeba_fast_growth_prob = level->bd_amoeba_1_fast_growth_rate * 10000;
cave->level_amoeba_2_threshold[0] = level->bd_amoeba_2_threshold_too_big;
cave->level_amoeba_2_time[0] = level->bd_amoeba_2_slow_growth_time;
cave->amoeba_2_growth_prob = level->bd_amoeba_2_slow_growth_rate * 10000;
cave->amoeba_2_fast_growth_prob = level->bd_amoeba_2_fast_growth_rate * 10000;
- cave->amoeba_too_big_effect = LEVEL_TO_CAVE(level->bd_amoeba_content_too_big);
- cave->amoeba_enclosed_effect = LEVEL_TO_CAVE(level->bd_amoeba_content_enclosed);
+ cave->amoeba_too_big_effect = LEVEL_TO_CAVE(level->bd_amoeba_1_content_too_big);
+ cave->amoeba_enclosed_effect = LEVEL_TO_CAVE(level->bd_amoeba_1_content_enclosed);
cave->amoeba_2_too_big_effect = LEVEL_TO_CAVE(level->bd_amoeba_2_content_too_big);
cave->amoeba_2_enclosed_effect = LEVEL_TO_CAVE(level->bd_amoeba_2_content_enclosed);
cave->amoeba_2_explosion_effect = LEVEL_TO_CAVE(level->bd_amoeba_2_content_exploding);
cave->diamond_falling_effect = LEVEL_TO_CAVE(level->bd_diamond_turns_to_on_falling);
cave->diamond_bouncing_effect = LEVEL_TO_CAVE(level->bd_diamond_turns_to_on_impact);
- cave->firefly_explode_to = LEVEL_TO_CAVE(level->bd_firefly_explodes_to);
+ cave->firefly_explode_to = LEVEL_TO_CAVE(level->bd_firefly_1_explodes_to);
cave->alt_firefly_explode_to = LEVEL_TO_CAVE(level->bd_firefly_2_explodes_to);
- cave->butterfly_explode_to = LEVEL_TO_CAVE(level->bd_butterfly_explodes_to);
+ cave->butterfly_explode_to = LEVEL_TO_CAVE(level->bd_butterfly_1_explodes_to);
cave->alt_butterfly_explode_to = LEVEL_TO_CAVE(level->bd_butterfly_2_explodes_to);
cave->stonefly_explode_to = LEVEL_TO_CAVE(level->bd_stonefly_explodes_to);
cave->dragonfly_explode_to = LEVEL_TO_CAVE(level->bd_dragonfly_explodes_to);
level->bd_voodoo_dies_by_rock = cave->voodoo_dies_by_stone;
level->bd_voodoo_vanish_by_explosion = cave->voodoo_disappear_in_explosion;
level->bd_voodoo_penalty_time = cave->level_penalty_time[bd_level_nr];
- level->time_magic_wall = cave->level_magic_wall_time[bd_level_nr];
+ level->bd_magic_wall_time = cave->level_magic_wall_time[bd_level_nr];
level->bd_magic_wall_zero_infinite = cave->magic_timer_zero_is_infinite;
level->bd_magic_wall_wait_hatching = cave->magic_timer_wait_for_hatching;
level->bd_magic_wall_stops_amoeba = cave->magic_wall_stops_amoeba;
level->bd_amoeba_wait_for_hatching = cave->amoeba_timer_wait_for_hatching;
level->bd_amoeba_start_immediately = cave->amoeba_timer_started_immediately;
level->bd_amoeba_2_explode_by_amoeba = cave->amoeba_2_explodes_by_amoeba;
- level->bd_amoeba_threshold_too_big = cave->level_amoeba_threshold[bd_level_nr];
- level->bd_amoeba_slow_growth_time = cave->level_amoeba_time[bd_level_nr];
- level->bd_amoeba_slow_growth_rate = cave->amoeba_growth_prob / 10000;
- level->bd_amoeba_fast_growth_rate = cave->amoeba_fast_growth_prob / 10000;
+ level->bd_amoeba_1_threshold_too_big = cave->level_amoeba_threshold[bd_level_nr];
+ level->bd_amoeba_1_slow_growth_time = cave->level_amoeba_time[bd_level_nr];
+ level->bd_amoeba_1_slow_growth_rate = cave->amoeba_growth_prob / 10000;
+ level->bd_amoeba_1_fast_growth_rate = cave->amoeba_fast_growth_prob / 10000;
level->bd_amoeba_2_threshold_too_big = cave->level_amoeba_2_threshold[bd_level_nr];
level->bd_amoeba_2_slow_growth_time = cave->level_amoeba_2_time[bd_level_nr];
level->bd_amoeba_2_slow_growth_rate = cave->amoeba_2_growth_prob / 10000;
level->bd_amoeba_2_fast_growth_rate = cave->amoeba_2_fast_growth_prob / 10000;
- level->bd_amoeba_content_too_big = CAVE_TO_LEVEL(cave->amoeba_too_big_effect);
- level->bd_amoeba_content_enclosed = CAVE_TO_LEVEL(cave->amoeba_enclosed_effect);
+ level->bd_amoeba_1_content_too_big = CAVE_TO_LEVEL(cave->amoeba_too_big_effect);
+ level->bd_amoeba_1_content_enclosed = CAVE_TO_LEVEL(cave->amoeba_enclosed_effect);
level->bd_amoeba_2_content_too_big = CAVE_TO_LEVEL(cave->amoeba_2_too_big_effect);
level->bd_amoeba_2_content_enclosed = CAVE_TO_LEVEL(cave->amoeba_2_enclosed_effect);
level->bd_amoeba_2_content_exploding = CAVE_TO_LEVEL(cave->amoeba_2_explosion_effect);
level->bd_diamond_turns_to_on_falling = CAVE_TO_LEVEL(cave->diamond_falling_effect);
level->bd_diamond_turns_to_on_impact = CAVE_TO_LEVEL(cave->diamond_bouncing_effect);
- level->bd_firefly_explodes_to = CAVE_TO_LEVEL(cave->firefly_explode_to);
+ level->bd_firefly_1_explodes_to = CAVE_TO_LEVEL(cave->firefly_explode_to);
level->bd_firefly_2_explodes_to = CAVE_TO_LEVEL(cave->alt_firefly_explode_to);
- level->bd_butterfly_explodes_to = CAVE_TO_LEVEL(cave->butterfly_explode_to);
+ level->bd_butterfly_1_explodes_to = CAVE_TO_LEVEL(cave->butterfly_explode_to);
level->bd_butterfly_2_explodes_to = CAVE_TO_LEVEL(cave->alt_butterfly_explode_to);
level->bd_stonefly_explodes_to = CAVE_TO_LEVEL(cave->stonefly_explode_to);
level->bd_dragonfly_explodes_to = CAVE_TO_LEVEL(cave->dragonfly_explode_to);
element = (element == EL_BD_EMPTY ? EL_EMPTY :
element == EL_BD_PLAYER ? EL_PLAYER_1 :
element == EL_BD_INBOX ? EL_PLAYER_1 :
- element == EL_BD_SAND ? EL_SAND :
+ element == EL_BD_SAND_1 ? EL_SAND :
element == EL_BD_STEELWALL ? EL_STEELWALL :
element == EL_BD_EXIT_CLOSED ? EL_EXIT_CLOSED :
element == EL_BD_EXIT_OPEN ? EL_EXIT_OPEN :
case GD_S_DIAMOND_FALLING_8:
nr = (sample == GD_S_DIAMOND_FALLING_RANDOM ? GetSimpleRandom(8) :
sample - GD_S_DIAMOND_FALLING_1);
- sound_effect = SND_BD_DIAMOND_FALLING_RANDOM_1 + nr;
+ sound_effect = SND_BD_DIAMOND_NATIVE_FALLING_RANDOM_1 + nr;
if (getSoundInfoEntryFilename(sound_effect) == NULL)
- sound_effect = SND_BD_DIAMOND_FALLING;
+ sound_effect = SND_BD_DIAMOND_NATIVE_FALLING;
break;
case GD_S_DIAMOND_IMPACT_RANDOM:
case GD_S_DIAMOND_IMPACT_8:
nr = (sample == GD_S_DIAMOND_IMPACT_RANDOM ? GetSimpleRandom(8) :
sample - GD_S_DIAMOND_IMPACT_1);
- sound_effect = SND_BD_DIAMOND_IMPACT_RANDOM_1 + nr;
+ sound_effect = SND_BD_DIAMOND_NATIVE_IMPACT_RANDOM_1 + nr;
if (getSoundInfoEntryFilename(sound_effect) == NULL)
- sound_effect = SND_BD_DIAMOND_IMPACT;
+ sound_effect = SND_BD_DIAMOND_NATIVE_IMPACT;
break;
case GD_S_FLYING_DIAMOND_FALLING_RANDOM:
break;
case GD_S_AMOEBA_MAGIC:
- sound_effect = SND_BD_AMOEBA_OTHER;
+ sound_effect = SND_BD_AMOEBA_1_OTHER;
break;
case GD_S_FINISHED:
// look for special default action graphic (classic game specific)
if (IS_BD_ELEMENT(i) && element_info[EL_BD_DEFAULT].graphic[act] != -1)
default_action_graphic = element_info[EL_BD_DEFAULT].graphic[act];
+ if (IS_BD_NATIVE_ELEMENT(i) && element_info[EL_BD_NATIVE_DEFAULT].graphic[act] != -1)
+ default_action_graphic = element_info[EL_BD_NATIVE_DEFAULT].graphic[act];
if (IS_SP_ELEMENT(i) && element_info[EL_SP_DEFAULT].graphic[act] != -1)
default_action_graphic = element_info[EL_SP_DEFAULT].graphic[act];
if (IS_SB_ELEMENT(i) && element_info[EL_SB_DEFAULT].graphic[act] != -1)
if (IS_BD_ELEMENT(i) && element_info[EL_BD_DEFAULT].crumbled[act] != -1)
default_action_crumbled = element_info[EL_BD_DEFAULT].crumbled[act];
+ if (IS_BD_NATIVE_ELEMENT(i) && element_info[EL_BD_NATIVE_DEFAULT].crumbled[act] != -1)
+ default_action_crumbled = element_info[EL_BD_NATIVE_DEFAULT].crumbled[act];
if (IS_SP_ELEMENT(i) && element_info[EL_SP_DEFAULT].crumbled[act] != -1)
default_action_crumbled = element_info[EL_SP_DEFAULT].crumbled[act];
if (IS_SB_ELEMENT(i) && element_info[EL_SB_DEFAULT].crumbled[act] != -1)
// look for special default action sound (classic game specific)
if (IS_BD_ELEMENT(i) && element_info[EL_BD_DEFAULT].sound[act] != -1)
default_action_sound = element_info[EL_BD_DEFAULT].sound[act];
+ if (IS_BD_NATIVE_ELEMENT(i) && element_info[EL_BD_NATIVE_DEFAULT].sound[act] != -1)
+ default_action_sound = element_info[EL_BD_NATIVE_DEFAULT].sound[act];
if (IS_SP_ELEMENT(i) && element_info[EL_SP_DEFAULT].sound[act] != -1)
default_action_sound = element_info[EL_SP_DEFAULT].sound[act];
if (IS_SB_ELEMENT(i) && element_info[EL_SB_DEFAULT].sound[act] != -1)
"Empty space"
},
{
- "bd_sand",
+ "bd_sand_1",
"bd_sand",
"Sand"
},
{
"bd_nut",
"bd_nut",
- "Nut (BD style)"
+ "Nut"
+ },
+ {
+ "bd_amoeba_1",
+ "bd_amoeba",
+ "Amoeba 1"
},
{
"bd_amoeba_2",
"bd_amoeba",
- "Amoeba 2 (BD style)"
+ "Amoeba 2"
},
{
"bd_bladder",
"bd_cow",
"Cow (starts moving down)"
},
+ {
+ "bd_butterfly_1",
+ "bd_butterfly",
+ "Butterfly 1 (random start direction)"
+ },
+ {
+ "bd_butterfly_1.right",
+ "bd_butterfly",
+ "Butterfly 1 (starts moving right)"
+ },
+ {
+ "bd_butterfly_1.up",
+ "bd_butterfly",
+ "Butterfly 1 (starts moving up)"
+ },
+ {
+ "bd_butterfly_1.left",
+ "bd_butterfly",
+ "Butterfly 1 (starts moving left)"
+ },
+ {
+ "bd_butterfly_1.down",
+ "bd_butterfly",
+ "Butterfly 1 (starts moving down)"
+ },
{
"bd_butterfly_2",
"bd_butterfly",
"bd_butterfly",
"Butterfly 2 (starts moving down)"
},
+ {
+ "bd_firefly_1",
+ "bd_firefly",
+ "Firefly 1 (random start direction)"
+ },
+ {
+ "bd_firefly_1.right",
+ "bd_firefly",
+ "Firefly 1 (starts moving right)"
+ },
+ {
+ "bd_firefly_1.up",
+ "bd_firefly",
+ "Firefly 1 (starts moving up)"
+ },
+ {
+ "bd_firefly_1.left",
+ "bd_firefly",
+ "Firefly 1 (starts moving left)"
+ },
+ {
+ "bd_firefly_1.down",
+ "bd_firefly",
+ "Firefly 1 (starts moving down)"
+ },
{
"bd_firefly_2",
"bd_firefly",
"bd_covered",
"Covered"
},
+ {
+ "bd_wall_native",
+ "wall",
+ "Normal wall"
+ },
+ {
+ "bd_rock_native",
+ "bd_rock",
+ "Rock"
+ },
+ {
+ "bd_diamond_native",
+ "bd_diamond",
+ "Diamond"
+ },
+ {
+ "bd_magic_wall_native",
+ "bd_magic_wall",
+ "Magic wall"
+ },
{
"bd_sand_ball.falling",
"bd_sand_ball",
"Loose sand (falling)"
},
{
- "bd_rock.falling",
+ "bd_rock_native.falling",
"bd_rock",
"Rock (falling)"
},
"Mega rock (falling)"
},
{
- "bd_diamond.falling",
+ "bd_diamond_native.falling",
"bd_diamond",
"Diamond (falling)"
},
"Clock birth (4)"
},
{
- "bd_diamond.growing_1",
+ "bd_diamond_native.growing_1",
"bd_diamond",
"Diamond birth (1)"
},
{
- "bd_diamond.growing_2",
+ "bd_diamond_native.growing_2",
"bd_diamond",
"Diamond birth (2)"
},
{
- "bd_diamond.growing_3",
+ "bd_diamond_native.growing_3",
"bd_diamond",
"Diamond birth (3)"
},
{
- "bd_diamond.growing_4",
+ "bd_diamond_native.growing_4",
"bd_diamond",
"Diamond birth (4)"
},
{
- "bd_diamond.growing_5",
+ "bd_diamond_native.growing_5",
"bd_diamond",
"Diamond birth (5)"
},
"Explosion (5)"
},
{
- "bd_rock.growing_1",
+ "bd_rock_native.growing_1",
"bd_rock",
"Rock birth (1)"
},
{
- "bd_rock.growing_2",
+ "bd_rock_native.growing_2",
"bd_rock",
"Rock birth (2)"
},
{
- "bd_rock.growing_3",
+ "bd_rock_native.growing_3",
"bd_rock",
"Rock birth (3)"
},
{
- "bd_rock.growing_4",
+ "bd_rock_native.growing_4",
"bd_rock",
"Rock birth (4)"
},
"df_mine",
"Active mine"
},
+ {
+ "bd_magic_wall_native.active",
+ "magic_wall",
+ "-"
+ },
// --------------------------------------------------------------------------
// "unreal" (and therefore not drawable) runtime elements
"bd_default",
"-"
},
+ {
+ "[bd_native_default]",
+ "bd_native_default",
+ "-"
+ },
{
"[sp_default]",
"sp_default",
(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_BD_FIREFLY_2(e) ((e) == EL_BD_FIREFLY_2 || \
(e) == EL_BD_FIREFLY_2_RIGHT || \
(e) == EL_BD_FIREFLY_2_UP || \
(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_CONVEYOR_DIR_SWITCH || \
(e) == EL_BD_CONVEYOR_DIR_SWITCH_ACTIVE)
-#define IS_BD_RUNTIME_ELEMENT(e) ((e) >= EL_BD_RUNTIME_START && \
- (e) <= EL_BD_RUNTIME_END)
+#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_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_START 1253
-#define EL_BD_EMPTY_SPACE EL_BD_START
+#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 1254
+#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_DIAMOND_KEY 1299
#define EL_BD_TRAPPED_DIAMOND 1300
#define EL_BD_NUT 1301
-#define EL_BD_AMOEBA_2 1302
-#define EL_BD_BLADDER 1303
-#define EL_BD_BLADDER_SPENDER 1304
-#define EL_BD_CREATURE_SWITCH 1305
-#define EL_BD_CREATURE_SWITCH_ACTIVE 1306
-#define EL_BD_BITER_SWITCH_1 1307
-#define EL_BD_BITER_SWITCH_2 1308
-#define EL_BD_BITER_SWITCH_3 1309
-#define EL_BD_BITER_SWITCH_4 1310
-#define EL_BD_REPLICATOR 1311
-#define EL_BD_REPLICATOR_ACTIVE 1312
-#define EL_BD_REPLICATOR_SWITCH 1313
-#define EL_BD_REPLICATOR_SWITCH_ACTIVE 1314
-#define EL_BD_CONVEYOR_LEFT 1315
-#define EL_BD_CONVEYOR_LEFT_ACTIVE 1316
-#define EL_BD_CONVEYOR_RIGHT 1317
-#define EL_BD_CONVEYOR_RIGHT_ACTIVE 1318
-#define EL_BD_CONVEYOR_SWITCH 1319
-#define EL_BD_CONVEYOR_SWITCH_ACTIVE 1320
-#define EL_BD_CONVEYOR_DIR_SWITCH 1321
-#define EL_BD_CONVEYOR_DIR_SWITCH_ACTIVE 1322
-#define EL_BD_GRAVITY_SWITCH 1323
-#define EL_BD_GRAVITY_SWITCH_ACTIVE 1324
-#define EL_BD_ACID 1325
-#define EL_BD_BOX 1326
-#define EL_BD_TIME_PENALTY 1327
-#define EL_BD_GRAVESTONE 1328
-#define EL_BD_CLOCK 1329
-#define EL_BD_POT 1330
-#define EL_BD_PNEUMATIC_HAMMER 1331
-#define EL_BD_TELEPORTER 1332
-#define EL_BD_SKELETON 1333
-#define EL_BD_WATER 1334
-#define EL_BD_KEY_1 1335
-#define EL_BD_KEY_2 1336
-#define EL_BD_KEY_3 1337
-#define EL_BD_GATE_1 1338
-#define EL_BD_GATE_2 1339
-#define EL_BD_GATE_3 1340
-#define EL_BD_LAVA 1341
-#define EL_BD_SWEET 1342
-#define EL_BD_VOODOO_DOLL 1343
-#define EL_BD_SLIME 1344
-#define EL_BD_WAITING_ROCK 1345
-#define EL_BD_CHASING_ROCK 1346
-#define EL_BD_GHOST 1347
-#define EL_BD_COW 1348
-#define EL_BD_COW_LEFT 1349
-#define EL_BD_COW_UP 1350
-#define EL_BD_COW_RIGHT 1351
-#define EL_BD_COW_DOWN 1352
-#define EL_BD_BUTTERFLY_2 1353
-#define EL_BD_BUTTERFLY_2_RIGHT 1354
-#define EL_BD_BUTTERFLY_2_UP 1355
-#define EL_BD_BUTTERFLY_2_LEFT 1356
-#define EL_BD_BUTTERFLY_2_DOWN 1357
-#define EL_BD_FIREFLY_2 1358
-#define EL_BD_FIREFLY_2_RIGHT 1359
-#define EL_BD_FIREFLY_2_UP 1360
-#define EL_BD_FIREFLY_2_LEFT 1361
-#define EL_BD_FIREFLY_2_DOWN 1362
-#define EL_BD_STONEFLY 1363
-#define EL_BD_STONEFLY_RIGHT 1364
-#define EL_BD_STONEFLY_UP 1365
-#define EL_BD_STONEFLY_LEFT 1366
-#define EL_BD_STONEFLY_DOWN 1367
-#define EL_BD_BITER 1368
-#define EL_BD_BITER_RIGHT 1369
-#define EL_BD_BITER_UP 1370
-#define EL_BD_BITER_LEFT 1371
-#define EL_BD_BITER_DOWN 1372
-#define EL_BD_DRAGONFLY 1373
-#define EL_BD_DRAGONFLY_RIGHT 1374
-#define EL_BD_DRAGONFLY_UP 1375
-#define EL_BD_DRAGONFLY_LEFT 1376
-#define EL_BD_DRAGONFLY_DOWN 1377
-#define EL_BD_BOMB 1378
-#define EL_BD_NITRO_PACK 1379
-#define EL_BD_PLAYER 1380
-#define EL_BD_PLAYER_WITH_BOMB 1381
-#define EL_BD_PLAYER_WITH_ROCKET_LAUNCHER 1382
-#define EL_BD_PLAYER_GLUED 1383
-#define EL_BD_PLAYER_STIRRING 1384
-#define EL_BD_ROCKET_LAUNCHER 1385
-#define EL_BD_ROCKET 1386
-#define EL_BD_ROCKET_RIGHT 1387
-#define EL_BD_ROCKET_UP 1388
-#define EL_BD_ROCKET_LEFT 1389
-#define EL_BD_ROCKET_DOWN 1390
-#define EL_BD_FAKE_BONUS 1391
-#define EL_BD_COVERED 1392
+#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
// BD style elements ("effects"; mostly runtime elements, but can also be stored in level file)
-#define EL_BD_SAND_BALL_FALLING 1393
-#define EL_BD_SAND_LOOSE_FALLING 1394
-#define EL_BD_ROCK_FALLING 1395
-#define EL_BD_FLYING_ROCK_FLYING 1396
-#define EL_BD_MEGA_ROCK_FALLING 1397
-#define EL_BD_DIAMOND_FALLING 1398
-#define EL_BD_FLYING_DIAMOND_FLYING 1399
-#define EL_BD_NUT_FALLING 1400
-#define EL_BD_FALLING_WALL_FALLING 1401
-#define EL_BD_NITRO_PACK_FALLING 1402
-#define EL_BD_WATER_1 1403
-#define EL_BD_WATER_2 1404
-#define EL_BD_WATER_3 1405
-#define EL_BD_WATER_4 1406
-#define EL_BD_WATER_5 1407
-#define EL_BD_WATER_6 1408
-#define EL_BD_WATER_7 1409
-#define EL_BD_WATER_8 1410
-#define EL_BD_WATER_9 1411
-#define EL_BD_WATER_10 1412
-#define EL_BD_WATER_11 1413
-#define EL_BD_WATER_12 1414
-#define EL_BD_WATER_13 1415
-#define EL_BD_WATER_14 1416
-#define EL_BD_WATER_15 1417
-#define EL_BD_WATER_16 1418
-#define EL_BD_COW_ENCLOSED_1 1419
-#define EL_BD_COW_ENCLOSED_2 1420
-#define EL_BD_COW_ENCLOSED_3 1421
-#define EL_BD_COW_ENCLOSED_4 1422
-#define EL_BD_COW_ENCLOSED_5 1423
-#define EL_BD_COW_ENCLOSED_6 1424
-#define EL_BD_COW_ENCLOSED_7 1425
-#define EL_BD_BLADDER_1 1426
-#define EL_BD_BLADDER_2 1427
-#define EL_BD_BLADDER_3 1428
-#define EL_BD_BLADDER_4 1429
-#define EL_BD_BLADDER_5 1430
-#define EL_BD_BLADDER_6 1431
-#define EL_BD_BLADDER_7 1432
-#define EL_BD_BLADDER_8 1433
-#define EL_BD_PLAYER_GROWING_1 1434
-#define EL_BD_PLAYER_GROWING_2 1435
-#define EL_BD_PLAYER_GROWING_3 1436
-#define EL_BD_BOMB_TICKING_1 1437
-#define EL_BD_BOMB_TICKING_2 1438
-#define EL_BD_BOMB_TICKING_3 1439
-#define EL_BD_BOMB_TICKING_4 1440
-#define EL_BD_BOMB_TICKING_5 1441
-#define EL_BD_BOMB_TICKING_6 1442
-#define EL_BD_BOMB_TICKING_7 1443
-#define EL_BD_CLOCK_GROWING_1 1444
-#define EL_BD_CLOCK_GROWING_2 1445
-#define EL_BD_CLOCK_GROWING_3 1446
-#define EL_BD_CLOCK_GROWING_4 1447
-#define EL_BD_DIAMOND_GROWING_1 1448
-#define EL_BD_DIAMOND_GROWING_2 1449
-#define EL_BD_DIAMOND_GROWING_3 1450
-#define EL_BD_DIAMOND_GROWING_4 1451
-#define EL_BD_DIAMOND_GROWING_5 1452
-#define EL_BD_EXPLODING_1 1453
-#define EL_BD_EXPLODING_2 1454
-#define EL_BD_EXPLODING_3 1455
-#define EL_BD_EXPLODING_4 1456
-#define EL_BD_EXPLODING_5 1457
-#define EL_BD_ROCK_GROWING_1 1458
-#define EL_BD_ROCK_GROWING_2 1459
-#define EL_BD_ROCK_GROWING_3 1460
-#define EL_BD_ROCK_GROWING_4 1461
-#define EL_BD_STEELWALL_GROWING_1 1462
-#define EL_BD_STEELWALL_GROWING_2 1463
-#define EL_BD_STEELWALL_GROWING_3 1464
-#define EL_BD_STEELWALL_GROWING_4 1465
-#define EL_BD_GHOST_EXPLODING_1 1466
-#define EL_BD_GHOST_EXPLODING_2 1467
-#define EL_BD_GHOST_EXPLODING_3 1468
-#define EL_BD_GHOST_EXPLODING_4 1469
-#define EL_BD_BOMB_EXPLODING_1 1470
-#define EL_BD_BOMB_EXPLODING_2 1471
-#define EL_BD_BOMB_EXPLODING_3 1472
-#define EL_BD_BOMB_EXPLODING_4 1473
-#define EL_BD_NITRO_PACK_EXPLODING 1474
-#define EL_BD_NITRO_PACK_EXPLODING_1 1475
-#define EL_BD_NITRO_PACK_EXPLODING_2 1476
-#define EL_BD_NITRO_PACK_EXPLODING_3 1477
-#define EL_BD_NITRO_PACK_EXPLODING_4 1478
-#define EL_BD_AMOEBA_2_EXPLODING_1 1479
-#define EL_BD_AMOEBA_2_EXPLODING_2 1480
-#define EL_BD_AMOEBA_2_EXPLODING_3 1481
-#define EL_BD_AMOEBA_2_EXPLODING_4 1482
-#define EL_BD_NUT_BREAKING_1 1483
-#define EL_BD_NUT_BREAKING_2 1484
-#define EL_BD_NUT_BREAKING_3 1485
-#define EL_BD_NUT_BREAKING_4 1486
-#define EL_BD_END EL_BD_NUT_BREAKING_4
-
-#define EL_BD_RUNTIME_START EL_BD_SAND_BALL_FALLING
-#define EL_BD_RUNTIME_END EL_BD_NUT_BREAKING_4
-
-#define NUM_FILE_ELEMENTS 1487
+#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 NUM_FILE_ELEMENTS 1502
// "real" (and therefore drawable) runtime elements
#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 NUM_DRAWABLE_ELEMENTS (EL_FIRST_RUNTIME_REAL + 84)
+#define NUM_DRAWABLE_ELEMENTS (EL_FIRST_RUNTIME_REAL + 85)
#define EL_MM_RUNTIME_START EL_MM_EXIT_OPENING
#define EL_MM_RUNTIME_END EL_MM_AMOEBA_WALL_GROWING
#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_SP_DEFAULT (EL_FIRST_DUMMY + 26)
-#define EL_SB_DEFAULT (EL_FIRST_DUMMY + 27)
-#define EL_MM_DEFAULT (EL_FIRST_DUMMY + 28)
-#define EL_GRAPHIC_1 (EL_FIRST_DUMMY + 29)
-#define EL_GRAPHIC_2 (EL_FIRST_DUMMY + 30)
-#define EL_GRAPHIC_3 (EL_FIRST_DUMMY + 31)
-#define EL_GRAPHIC_4 (EL_FIRST_DUMMY + 32)
-#define EL_GRAPHIC_5 (EL_FIRST_DUMMY + 33)
-#define EL_GRAPHIC_6 (EL_FIRST_DUMMY + 34)
-#define EL_GRAPHIC_7 (EL_FIRST_DUMMY + 35)
-#define EL_GRAPHIC_8 (EL_FIRST_DUMMY + 36)
-#define EL_BD_GAME_GRAPHICS_COLOR_TEMPLATE (EL_FIRST_DUMMY + 37)
+#define EL_BD_NATIVE_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_1 (EL_FIRST_DUMMY + 30)
+#define EL_GRAPHIC_2 (EL_FIRST_DUMMY + 31)
+#define EL_GRAPHIC_3 (EL_FIRST_DUMMY + 32)
+#define EL_GRAPHIC_4 (EL_FIRST_DUMMY + 33)
+#define EL_GRAPHIC_5 (EL_FIRST_DUMMY + 34)
+#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)
// internal elements (only used for internal purposes like copying)
-#define EL_FIRST_INTERNAL (EL_FIRST_DUMMY + 38)
+#define EL_FIRST_INTERNAL (EL_FIRST_DUMMY + 39)
#define EL_INTERNAL_CLIPBOARD_CUSTOM (EL_FIRST_INTERNAL + 0)
#define EL_INTERNAL_CLIPBOARD_CHANGE (EL_FIRST_INTERNAL + 1)
boolean bd_magic_wall_wait_hatching; // BD magic wall waits for player's birth
boolean bd_magic_wall_stops_amoeba; // BD magic wall can stop amoeba and turn to diamonds
boolean bd_magic_wall_break_scan; // BD magic wall setting to implement buggy BD1 behaviour
+ int bd_magic_wall_time; // BD magic wall time
int bd_magic_wall_diamond_to; // BD magic wall turns diamonds to specified element
int bd_magic_wall_rock_to; // BD magic wall turns rocks to specified element
int bd_magic_wall_mega_rock_to; // BD magic wall turns mega rocks to specified element
boolean bd_amoeba_wait_for_hatching; // BD amoeba waits for player's birth
boolean bd_amoeba_start_immediately; // BD amoeba growth starts immediately
boolean bd_amoeba_2_explode_by_amoeba;// BD amoeba 2 explodes if touched by BD amoeba
- int bd_amoeba_threshold_too_big; // BD amoeba turns to stones if threshold reached
- int bd_amoeba_slow_growth_time; // BD amoeba slow growth time (in seconds)
- int bd_amoeba_slow_growth_rate; // BD amoeba slow growth rate (in percent)
- int bd_amoeba_fast_growth_rate; // BD amoeba fast growth rate (in percent)
- int bd_amoeba_content_too_big; // BD amoeba changes to this element if too big
- int bd_amoeba_content_enclosed; // BD amoeba changes to this element if enclosed
+ int bd_amoeba_1_threshold_too_big; // BD amoeba 1 turns to stones if threshold reached
+ int bd_amoeba_1_slow_growth_time; // BD amoeba 1 slow growth time (in seconds)
+ int bd_amoeba_1_slow_growth_rate; // BD amoeba 1 slow growth rate (in percent)
+ int bd_amoeba_1_fast_growth_rate; // BD amoeba 1 fast growth rate (in percent)
+ int bd_amoeba_1_content_too_big; // BD amoeba 1 changes to this element if too big
+ int bd_amoeba_1_content_enclosed; // BD amoeba 1 changes to this element if enclosed
int bd_amoeba_2_threshold_too_big; // BD amoeba 2 turns to stones if threshold reached
int bd_amoeba_2_slow_growth_time; // BD amoeba 2 slow growth time (in seconds)
int bd_amoeba_2_slow_growth_rate; // BD amoeba 2 slow growth rate (in percent)
int bd_rock_turns_to_on_impact; // BD rock changes to specified element on impact
int bd_diamond_turns_to_on_falling; // BD diamond changes to specified element when falling
int bd_diamond_turns_to_on_impact; // BD diamond changes to specified element on impact
- int bd_firefly_explodes_to; // BD firefly explodes to specified element
+ int bd_firefly_1_explodes_to; // BD firefly 1 explodes to specified element
int bd_firefly_2_explodes_to; // BD firefly 2 explodes to specified element
- int bd_butterfly_explodes_to; // BD butterfly explodes to specified element
+ int bd_butterfly_1_explodes_to; // BD butterfly 1 explodes to specified element
int bd_butterfly_2_explodes_to; // BD butterfly 2 explodes to specified element
int bd_stonefly_explodes_to; // BD stonefly explodes to specified element
int bd_dragonfly_explodes_to; // BD dragonfly explodes to specified element
int src_x, src_y;
int element_template = EL_BD_GAME_GRAPHICS_COLOR_TEMPLATE;
int graphic_template = el2preimg(element_template);
- int element_default = EL_BD_ROCK;
+ int element_default = EL_BD_ROCK_NATIVE;
int graphic_default = el2preimg(element_default);
// create special preview bitmap and scale it down to preview tile size
{
el_empty = EL_EMPTY;
el_player = EL_BD_PLAYER;
- el_sand = EL_BD_SAND;
- el_wall = EL_BD_WALL;
+ el_sand = EL_BD_SAND_1;
+ el_wall = EL_BD_WALL_NATIVE;
el_steelwall = EL_BD_STEELWALL;
el_exit_closed = EL_BD_EXIT_CLOSED;
}
},
{
O_DIRT, TRUE,
- EL_BD_SAND, -1, -1
+ EL_BD_SAND_1, -1, -1
},
{
O_DIRT_SLOPED_UP_RIGHT, TRUE,
},
{
O_BRICK, TRUE,
- EL_BD_WALL, -1, -1
+ EL_BD_WALL_NATIVE, -1, -1
},
{
O_BRICK_SLOPED_UP_RIGHT, TRUE,
},
{
O_MAGIC_WALL, TRUE,
- EL_BD_MAGIC_WALL, ACTION_ACTIVE, -1
+ EL_BD_MAGIC_WALL_NATIVE, ACTION_ACTIVE, -1
},
{
O_PRE_OUTBOX, TRUE,
},
{
O_STONE, TRUE,
- EL_BD_ROCK, -1, -1
+ EL_BD_ROCK_NATIVE, -1, -1
},
{
O_STONE_F, TRUE,
- EL_BD_ROCK_FALLING, -1, -1
+ EL_BD_ROCK_NATIVE_FALLING, -1, -1
},
{
O_STONE_F, FALSE,
- EL_BD_ROCK, ACTION_FALLING, -1
+ EL_BD_ROCK_NATIVE, ACTION_FALLING, -1
},
{
O_FLYING_STONE, TRUE,
},
{
O_DIAMOND, TRUE,
- EL_BD_DIAMOND, -1, -1
+ EL_BD_DIAMOND_NATIVE, -1, -1
},
{
O_DIAMOND_F, TRUE,
- EL_BD_DIAMOND_FALLING, -1, -1
+ EL_BD_DIAMOND_NATIVE_FALLING, -1, -1
},
{
O_DIAMOND_F, FALSE,
- EL_BD_DIAMOND, ACTION_FALLING, -1
+ EL_BD_DIAMOND_NATIVE, ACTION_FALLING, -1
},
{
O_FLYING_DIAMOND, TRUE,
},
{
O_AMOEBA, TRUE,
- EL_BD_AMOEBA, -1, -1
+ EL_BD_AMOEBA_1, -1, -1
},
{
O_AMOEBA_2, TRUE,
},
{
O_FIREFLY_1, TRUE,
- EL_BD_FIREFLY_LEFT, -1, -1
+ EL_BD_FIREFLY_1_LEFT, -1, -1
},
{
O_FIREFLY_2, TRUE,
- EL_BD_FIREFLY_UP, -1, -1
+ EL_BD_FIREFLY_1_UP, -1, -1
},
{
O_FIREFLY_3, TRUE,
- EL_BD_FIREFLY_RIGHT, -1, -1
+ EL_BD_FIREFLY_1_RIGHT, -1, -1
},
{
O_FIREFLY_4, TRUE,
- EL_BD_FIREFLY_DOWN, -1, -1
+ EL_BD_FIREFLY_1_DOWN, -1, -1
},
{
O_ALT_FIREFLY_1, TRUE,
},
{
O_BUTTER_1, TRUE,
- EL_BD_BUTTERFLY_LEFT, -1, -1
+ EL_BD_BUTTERFLY_1_LEFT, -1, -1
},
{
O_BUTTER_2, TRUE,
- EL_BD_BUTTERFLY_UP, -1, -1
+ EL_BD_BUTTERFLY_1_UP, -1, -1
},
{
O_BUTTER_3, TRUE,
- EL_BD_BUTTERFLY_RIGHT, -1, -1
+ EL_BD_BUTTERFLY_1_RIGHT, -1, -1
},
{
O_BUTTER_4, TRUE,
- EL_BD_BUTTERFLY_DOWN, -1, -1
+ EL_BD_BUTTERFLY_1_DOWN, -1, -1
},
{
O_ALT_BUTTER_1, TRUE,
},
{
O_PRE_DIA_1, TRUE,
- EL_BD_DIAMOND_GROWING_1, -1, -1
+ EL_BD_DIAMOND_NATIVE_GROWING_1, -1, -1
},
{
O_PRE_DIA_1, FALSE,
- EL_BD_DIAMOND, ACTION_GROWING, -1
+ EL_BD_DIAMOND_NATIVE, ACTION_GROWING, -1
},
{
O_PRE_DIA_2, TRUE,
- EL_BD_DIAMOND_GROWING_2, -1, -1
+ EL_BD_DIAMOND_NATIVE_GROWING_2, -1, -1
},
{
O_PRE_DIA_2, FALSE,
- EL_BD_DIAMOND, ACTION_GROWING, -1
+ EL_BD_DIAMOND_NATIVE, ACTION_GROWING, -1
},
{
O_PRE_DIA_3, TRUE,
- EL_BD_DIAMOND_GROWING_3, -1, -1
+ EL_BD_DIAMOND_NATIVE_GROWING_3, -1, -1
},
{
O_PRE_DIA_3, FALSE,
- EL_BD_DIAMOND, ACTION_GROWING, -1
+ EL_BD_DIAMOND_NATIVE, ACTION_GROWING, -1
},
{
O_PRE_DIA_4, TRUE,
- EL_BD_DIAMOND_GROWING_4, -1, -1
+ EL_BD_DIAMOND_NATIVE_GROWING_4, -1, -1
},
{
O_PRE_DIA_4, FALSE,
- EL_BD_DIAMOND, ACTION_GROWING, -1
+ EL_BD_DIAMOND_NATIVE, ACTION_GROWING, -1
},
{
O_PRE_DIA_5, TRUE,
- EL_BD_DIAMOND_GROWING_5, -1, -1
+ EL_BD_DIAMOND_NATIVE_GROWING_5, -1, -1
},
{
O_PRE_DIA_5, FALSE,
- EL_BD_DIAMOND, ACTION_GROWING, -1
+ EL_BD_DIAMOND_NATIVE, ACTION_GROWING, -1
},
{
O_EXPLODE_1, TRUE,
},
{
O_PRE_STONE_1, TRUE,
- EL_BD_ROCK_GROWING_1, -1, -1
+ EL_BD_ROCK_NATIVE_GROWING_1, -1, -1
},
{
O_PRE_STONE_1, FALSE,
- EL_BD_ROCK, ACTION_GROWING, -1
+ EL_BD_ROCK_NATIVE, ACTION_GROWING, -1
},
{
O_PRE_STONE_2, TRUE,
- EL_BD_ROCK_GROWING_2, -1, -1
+ EL_BD_ROCK_NATIVE_GROWING_2, -1, -1
},
{
O_PRE_STONE_2, FALSE,
- EL_BD_ROCK, ACTION_GROWING, -1
+ EL_BD_ROCK_NATIVE, ACTION_GROWING, -1
},
{
O_PRE_STONE_3, TRUE,
- EL_BD_ROCK_GROWING_3, -1, -1
+ EL_BD_ROCK_NATIVE_GROWING_3, -1, -1
},
{
O_PRE_STONE_3, FALSE,
- EL_BD_ROCK, ACTION_GROWING, -1
+ EL_BD_ROCK_NATIVE, ACTION_GROWING, -1
},
{
O_PRE_STONE_4, TRUE,
- EL_BD_ROCK_GROWING_4, -1, -1
+ EL_BD_ROCK_NATIVE_GROWING_4, -1, -1
},
{
O_PRE_STONE_4, FALSE,
- EL_BD_ROCK, ACTION_GROWING, -1
+ EL_BD_ROCK_NATIVE, ACTION_GROWING, -1
},
{
O_PRE_STEEL_1, TRUE,
},
{
O_MAGIC_WALL_ACTIVE, FALSE,
- EL_BD_MAGIC_WALL_ACTIVE, -1, -1
+ EL_BD_MAGIC_WALL_NATIVE_ACTIVE, -1, -1
},
{
O_REPLICATOR_ACTIVE, FALSE,