From 6b8725835d5397aadb73411c6f48b5f861256181 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Sun, 11 Feb 2024 00:37:54 +0100 Subject: [PATCH] added game elements for native Boulder Dash game engine --- graphics/gfx_classic/RocksBD.png | Bin 0 -> 25125 bytes src/conf_gfx.c | 671 +++++++++++++++++++++++++++++++ src/editor.c | 197 ++++++++- src/files.c | 6 + src/libgame/system.h | 2 + src/main.c | 670 ++++++++++++++++++++++++++++++ src/main.h | 210 ++++++++-- src/screens.c | 1 + 8 files changed, 1719 insertions(+), 38 deletions(-) create mode 100644 graphics/gfx_classic/RocksBD.png diff --git a/graphics/gfx_classic/RocksBD.png b/graphics/gfx_classic/RocksBD.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1a05c4b1881404396b21bccaa7a1ccd94f81ef GIT binary patch literal 25125 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 J%2iQe{{vNM2x9;M literal 0 HcmV?d00001 diff --git a/src/conf_gfx.c b/src/conf_gfx.c index 62bdab0e..47353694 100644 --- a/src/conf_gfx.c +++ b/src/conf_gfx.c @@ -103,6 +103,9 @@ struct ConfigInfo image_config[] = // images for Boulder Dash style elements and actions + { "bd_player", UNDEFINED_FILENAME }, + { "bd_player.clone_from", "player_1" }, + { "bd_wall", "RocksDC.png" }, { "bd_wall.xpos", "12" }, { "bd_wall.ypos", "9" }, @@ -211,6 +214,11 @@ struct ConfigInfo image_config[] = { "bd_amoeba.EDITOR.xpos", "8" }, { "bd_amoeba.EDITOR.ypos", "7" }, + { "bd_amoeba_2", UNDEFINED_FILENAME }, + { "bd_amoeba_2.clone_from", "bd_amoeba" }, + { "bd_amoeba_2.EDITOR", UNDEFINED_FILENAME }, + { "bd_amoeba_2.EDITOR.clone_from", "bd_amoeba.EDITOR" }, + { "bd_butterfly", "RocksElements.png" }, { "bd_butterfly.xpos", "4" }, { "bd_butterfly.ypos", "12" }, @@ -259,6 +267,27 @@ struct ConfigInfo image_config[] = { "bd_butterfly.down.EDITOR.xpos", "11" }, { "bd_butterfly.down.EDITOR.ypos", "12" }, + { "bd_butterfly_2", UNDEFINED_FILENAME }, + { "bd_butterfly_2.clone_from", "bd_butterfly.up" }, + { "bd_butterfly_2.EDITOR", UNDEFINED_FILENAME }, + { "bd_butterfly_2.EDITOR.clone_from", "bd_butterfly.up.EDITOR" }, + { "bd_butterfly_2.right", UNDEFINED_FILENAME }, + { "bd_butterfly_2.right.clone_from", "bd_butterfly.right" }, + { "bd_butterfly_2.right.EDITOR", UNDEFINED_FILENAME }, + { "bd_butterfly_2.right.EDITOR.clone_from", "bd_butterfly.right.EDITOR" }, + { "bd_butterfly_2.up", UNDEFINED_FILENAME }, + { "bd_butterfly_2.up.clone_from", "bd_butterfly.up" }, + { "bd_butterfly_2.up.EDITOR", UNDEFINED_FILENAME }, + { "bd_butterfly_2.up.EDITOR.clone_from", "bd_butterfly.up.EDITOR" }, + { "bd_butterfly_2.left", UNDEFINED_FILENAME }, + { "bd_butterfly_2.left.clone_from", "bd_butterfly.left" }, + { "bd_butterfly_2.left.EDITOR", UNDEFINED_FILENAME }, + { "bd_butterfly_2.left.EDITOR.clone_from", "bd_butterfly.left.EDITOR" }, + { "bd_butterfly_2.down", UNDEFINED_FILENAME }, + { "bd_butterfly_2.down.clone_from", "bd_butterfly.down" }, + { "bd_butterfly_2.down.EDITOR", UNDEFINED_FILENAME }, + { "bd_butterfly_2.down.EDITOR.clone_from", "bd_butterfly.down.EDITOR" }, + { "bd_firefly", "RocksElements.png" }, { "bd_firefly.xpos", "6" }, { "bd_firefly.ypos", "12" }, @@ -307,6 +336,648 @@ struct ConfigInfo image_config[] = { "bd_firefly.down.EDITOR.xpos", "15" }, { "bd_firefly.down.EDITOR.ypos", "12" }, + { "bd_firefly_2", UNDEFINED_FILENAME }, + { "bd_firefly_2.clone_from", "bd_firefly.up" }, + { "bd_firefly_2.EDITOR", UNDEFINED_FILENAME }, + { "bd_firefly_2.EDITOR.clone_from", "bd_firefly.up.EDITOR" }, + { "bd_firefly_2.right", UNDEFINED_FILENAME }, + { "bd_firefly_2.right.clone_from", "bd_firefly.right" }, + { "bd_firefly_2.right.EDITOR", UNDEFINED_FILENAME }, + { "bd_firefly_2.right.EDITOR.clone_from", "bd_firefly.right.EDITOR" }, + { "bd_firefly_2.up", UNDEFINED_FILENAME }, + { "bd_firefly_2.up.clone_from", "bd_firefly.up" }, + { "bd_firefly_2.up.EDITOR", UNDEFINED_FILENAME }, + { "bd_firefly_2.up.EDITOR.clone_from", "bd_firefly.up.EDITOR" }, + { "bd_firefly_2.left", UNDEFINED_FILENAME }, + { "bd_firefly_2.left.clone_from", "bd_firefly.left" }, + { "bd_firefly_2.left.EDITOR", UNDEFINED_FILENAME }, + { "bd_firefly_2.left.EDITOR.clone_from", "bd_firefly.left.EDITOR" }, + { "bd_firefly_2.down", UNDEFINED_FILENAME }, + { "bd_firefly_2.down.clone_from", "bd_firefly.down" }, + { "bd_firefly_2.down.EDITOR", UNDEFINED_FILENAME }, + { "bd_firefly_2.down.EDITOR.clone_from", "bd_firefly.down.EDITOR" }, + + { "bd_sand", UNDEFINED_FILENAME }, + { "bd_sand.clone_from", "sand" }, + + { "bd_sand_2", UNDEFINED_FILENAME }, + { "bd_sand_2.clone_from", "emc_grass" }, + + { "bd_sand_ball", "RocksBD.png" }, + { "bd_sand_ball.xpos", "1" }, + { "bd_sand_ball.ypos", "36" }, + { "bd_sand_ball.frames", "1" }, + { "bd_sand_ball.scale_up_factor", "2" }, + + { "bd_sand_loose", "RocksBD.png" }, + { "bd_sand_loose.xpos", "0" }, + { "bd_sand_loose.ypos", "44" }, + { "bd_sand_loose.frames", "1" }, + { "bd_sand_loose.scale_up_factor", "2" }, + + { "bd_sand_sloped_up_right", "RocksBD.png" }, + { "bd_sand_sloped_up_right.xpos", "0" }, + { "bd_sand_sloped_up_right.ypos", "35" }, + { "bd_sand_sloped_up_right.frames", "1" }, + { "bd_sand_sloped_up_right.scale_up_factor", "2" }, + { "bd_sand_sloped_up_left", "RocksBD.png" }, + { "bd_sand_sloped_up_left.xpos", "1" }, + { "bd_sand_sloped_up_left.ypos", "35" }, + { "bd_sand_sloped_up_left.frames", "1" }, + { "bd_sand_sloped_up_left.scale_up_factor", "2" }, + { "bd_sand_sloped_down_left", "RocksBD.png" }, + { "bd_sand_sloped_down_left.xpos", "2" }, + { "bd_sand_sloped_down_left.ypos", "35" }, + { "bd_sand_sloped_down_left.frames", "1" }, + { "bd_sand_sloped_down_left.scale_up_factor","2" }, + { "bd_sand_sloped_down_right", "RocksBD.png" }, + { "bd_sand_sloped_down_right.xpos", "3" }, + { "bd_sand_sloped_down_right.ypos", "35" }, + { "bd_sand_sloped_down_right.frames", "1" }, + { "bd_sand_sloped_down_right.scale_up_factor","2" }, + + { "bd_sand_glued", UNDEFINED_FILENAME }, + { "bd_sand_glued.clone_from", "sand" }, + + { "bd_wall_sloped_up_right", "RocksBD.png" }, + { "bd_wall_sloped_up_right.xpos", "4" }, + { "bd_wall_sloped_up_right.ypos", "34" }, + { "bd_wall_sloped_up_right.frames", "1" }, + { "bd_wall_sloped_up_right.scale_up_factor", "2" }, + { "bd_wall_sloped_up_left", "RocksBD.png" }, + { "bd_wall_sloped_up_left.xpos", "5" }, + { "bd_wall_sloped_up_left.ypos", "34" }, + { "bd_wall_sloped_up_left.frames", "1" }, + { "bd_wall_sloped_up_left.scale_up_factor", "2" }, + { "bd_wall_sloped_down_left", "RocksBD.png" }, + { "bd_wall_sloped_down_left.xpos", "6" }, + { "bd_wall_sloped_down_left.ypos", "34" }, + { "bd_wall_sloped_down_left.frames", "1" }, + { "bd_wall_sloped_down_left.scale_up_factor","2" }, + { "bd_wall_sloped_down_right", "RocksBD.png" }, + { "bd_wall_sloped_down_right.xpos", "7" }, + { "bd_wall_sloped_down_right.ypos", "34" }, + { "bd_wall_sloped_down_right.frames", "1" }, + { "bd_wall_sloped_down_right.scale_up_factor","2" }, + + { "bd_wall_non_sloped", UNDEFINED_FILENAME }, + { "bd_wall_non_sloped.clone_from", "wall" }, + + { "bd_wall_diggable", UNDEFINED_FILENAME }, + { "bd_wall_diggable.clone_from", "bd_wall" }, + + { "bd_wall_diamond", UNDEFINED_FILENAME }, + { "bd_wall_diamond.clone_from", "wall_bd_diamond" }, + + { "bd_wall_key_1", UNDEFINED_FILENAME }, + { "bd_wall_key_1.clone_from", "bd_wall" }, + + { "bd_wall_key_2", UNDEFINED_FILENAME }, + { "bd_wall_key_2.clone_from", "bd_wall" }, + + { "bd_wall_key_3", UNDEFINED_FILENAME }, + { "bd_wall_key_4.clone_from", "bd_wall" }, + + { "bd_falling_wall", UNDEFINED_FILENAME }, + { "bd_falling_wall.clone_from", "bd_wall" }, + + { "bd_steelwall", UNDEFINED_FILENAME }, + { "bd_steelwall.clone_from", "steelwall" }, + + { "bd_steelwall_sloped_up_right", "RocksBD.png" }, + { "bd_steelwall_sloped_up_right.xpos", "4" }, + { "bd_steelwall_sloped_up_right.ypos", "35" }, + { "bd_steelwall_sloped_up_right.frames", "1" }, + { "bd_steelwall_sloped_up_right.scale_up_factor", "2" }, + { "bd_steelwall_sloped_up_left", "RocksBD.png" }, + { "bd_steelwall_sloped_up_left.xpos", "5" }, + { "bd_steelwall_sloped_up_left.ypos", "35" }, + { "bd_steelwall_sloped_up_left.frames", "1" }, + { "bd_steelwall_sloped_up_left.scale_up_factor", "2" }, + { "bd_steelwall_sloped_down_left", "RocksBD.png" }, + { "bd_steelwall_sloped_down_left.xpos", "6" }, + { "bd_steelwall_sloped_down_left.ypos", "35" }, + { "bd_steelwall_sloped_down_left.frames", "1" }, + { "bd_steelwall_sloped_down_left.scale_up_factor", "2" }, + { "bd_steelwall_sloped_down_right", "RocksBD.png" }, + { "bd_steelwall_sloped_down_right.xpos", "7" }, + { "bd_steelwall_sloped_down_right.ypos", "35" }, + { "bd_steelwall_sloped_down_right.frames", "1" }, + { "bd_steelwall_sloped_down_right.scale_up_factor", "2" }, + + { "bd_steelwall_explodable", UNDEFINED_FILENAME }, + { "bd_steelwall_explodable.clone_from", "bd_steelwall" }, + + { "bd_steelwall_diggable", UNDEFINED_FILENAME }, + { "bd_steelwall_diggable.clone_from", "bd_steelwall" }, + + { "bd_expandable_wall_horizontal", UNDEFINED_FILENAME }, + { "bd_expandable_wall_horizontal.clone_from", "expandable_wall_horizontal" }, + { "bd_expandable_wall_horizontal.EDITOR", UNDEFINED_FILENAME }, + { "bd_expandable_wall_horizontal.EDITOR.clone_from", "expandable_wall_horizontal.EDITOR" }, + + { "bd_expandable_wall_vertical", UNDEFINED_FILENAME }, + { "bd_expandable_wall_vertical.clone_from", "expandable_wall_vertical" }, + { "bd_expandable_wall_vertical.EDITOR", UNDEFINED_FILENAME }, + { "bd_expandable_wall_vertical.EDITOR.clone_from", "expandable_wall_vertical.EDITOR" }, + + { "bd_expandable_wall_any", UNDEFINED_FILENAME }, + { "bd_expandable_wall_any.clone_from", "expandable_wall_any" }, + { "bd_expandable_wall_any.EDITOR", UNDEFINED_FILENAME }, + { "bd_expandable_wall_any.EDITOR.clone_from", "expandable_wall_any.EDITOR" }, + + { "bd_expandable_steelwall_horizontal", UNDEFINED_FILENAME }, + { "bd_expandable_steelwall_horizontal.clone_from", "expandable_steelwall_horizontal" }, + { "bd_expandable_steelwall_horizontal.EDITOR", UNDEFINED_FILENAME }, + { "bd_expandable_steelwall_horizontal.EDITOR.clone_from", "expandable_steelwall_horizontal.EDITOR" }, + + { "bd_expandable_steelwall_vertical", UNDEFINED_FILENAME }, + { "bd_expandable_steelwall_vertical.clone_from", "expandable_steelwall_vertical" }, + { "bd_expandable_steelwall_vertical.EDITOR", UNDEFINED_FILENAME }, + { "bd_expandable_steelwall_vertical.EDITOR.clone_from", "expandable_steelwall_vertical.EDITOR" }, + + { "bd_expandable_steelwall_any", UNDEFINED_FILENAME }, + { "bd_expandable_steelwall_any.clone_from", "expandable_steelwall_any" }, + { "bd_expandable_steelwall_any.EDITOR", UNDEFINED_FILENAME }, + { "bd_expandable_steelwall_any.EDITOR.clone_from", "expandable_steelwall_any.EDITOR" }, + + { "bd_expandable_wall_switch_horizontal", "RocksBD.png" }, + { "bd_expandable_wall_switch_horizontal.xpos", "0" }, + { "bd_expandable_wall_switch_horizontal.ypos", "5" }, + { "bd_expandable_wall_switch_horizontal.frames", "1" }, + { "bd_expandable_wall_switch_horizontal.scale_up_factor", "2" }, + + { "bd_expandable_wall_switch_vertical", "RocksBD.png" }, + { "bd_expandable_wall_switch_vertical.xpos", "1" }, + { "bd_expandable_wall_switch_vertical.ypos", "5" }, + { "bd_expandable_wall_switch_vertical.frames", "1" }, + { "bd_expandable_wall_switch_vertical.scale_up_factor", "2" }, + + { "bd_inbox", "RocksBD.png" }, + { "bd_inbox.xpos", "6" }, + { "bd_inbox.ypos", "2" }, + { "bd_inbox.frames", "1" }, + { "bd_inbox.scale_up_factor", "2" }, + { "bd_inbox.opening", "RocksBD.png" }, + { "bd_inbox.opening.xpos", "6" }, + { "bd_inbox.opening.ypos", "2" }, + { "bd_inbox.opening.frames", "2" }, + { "bd_inbox.opening.delay", "8" }, + { "bd_inbox.opening.scale_up_factor", "2" }, + { "bd_inbox.EDITOR", "RocksBD.png" }, + { "bd_inbox.EDITOR.xpos", "3" }, + { "bd_inbox.EDITOR.ypos", "4" }, + { "bd_inbox.EDITOR.scale_up_factor", "2" }, + + { "bd_exit_closed", UNDEFINED_FILENAME }, + { "bd_exit_closed.clone_from", "exit_closed" }, + + { "bd_exit_open", UNDEFINED_FILENAME }, + { "bd_exit_openm.clone_from", "exit_open" }, + + { "bd_invisible_exit_closed", UNDEFINED_FILENAME }, + { "bd_invisible_exit_closed.clone_from", "invisible_wall" }, + { "bd_invisible_exit_closed.EDITOR", UNDEFINED_FILENAME }, + { "bd_invisible_exit_closed.EDITOR.clone_from", "bd_exit_closed" }, + + { "bd_invisible_exit_open", UNDEFINED_FILENAME }, + { "bd_invisible_exit_open.clone_from", "invisible_wall" }, + { "bd_invisible_exit_open.EDITOR", UNDEFINED_FILENAME }, + { "bd_invisible_exit_open.EDITOR.clone_from", "bd_exit_open" }, + + { "bd_flying_rock", UNDEFINED_FILENAME }, + { "bd_flying_rock.clone_from", "bd_rock" }, + + { "bd_mega_rock", UNDEFINED_FILENAME }, + { "bd_mega_rock.clone_from", "bd_rock" }, + + { "bd_rock_glued", UNDEFINED_FILENAME }, + { "bd_rock_glued.clone_from", "bd_rock" }, + + { "bd_flying_diamond", UNDEFINED_FILENAME }, + { "bd_flying_diamond.clone_from", "bd_diamond" }, + + { "bd_diamond_glued", UNDEFINED_FILENAME }, + { "bd_diamond_glued.clone_from", "bd_diamond" }, + + { "bd_diamond_key", "RocksBD.png" }, + { "bd_diamond_key.xpos", "3" }, + { "bd_diamond_key.ypos", "1" }, + { "bd_diamond_key.frames", "1" }, + { "bd_diamond_key.scale_up_factor", "2" }, + + { "bd_trapped_diamond", "RocksBD.png" }, + { "bd_trapped_diamond.xpos", "2" }, + { "bd_trapped_diamond.ypos", "1" }, + { "bd_trapped_diamond.frames", "1" }, + { "bd_trapped_diamond.scale_up_factor", "2" }, + + { "bd_nut", UNDEFINED_FILENAME }, + { "bd_nut.clone_from", "nut" }, + + { "bd_bladder", "RocksBD.png" }, + { "bd_bladder.xpos", "0" }, + { "bd_bladder.ypos", "22" }, + { "bd_bladder.frames", "1" }, + { "bd_bladder.scale_up_factor", "2" }, + + { "bd_bladder_spender", "RocksBD.png" }, + { "bd_bladder_spender.xpos", "6" }, + { "bd_bladder_spender.ypos", "0" }, + { "bd_bladder_spender.frames", "1" }, + { "bd_bladder_spender.scale_up_factor", "2" }, + + { "bd_creature_switch", "RocksBD.png" }, + { "bd_creature_switch.xpos", "2" }, + { "bd_creature_switch.ypos", "2" }, + { "bd_creature_switch.frames", "1" }, + { "bd_creature_switch.scale_up_factor", "2" }, + { "bd_creature_switch.active", "RocksBD.png" }, + { "bd_creature_switch.active.xpos", "3" }, + { "bd_creature_switch.active.ypos", "2" }, + { "bd_creature_switch.active.frames", "1" }, + { "bd_creature_switch.active.scale_up_factor", "2" }, + + { "bd_biter_switch_1", "RocksBD.png" }, + { "bd_biter_switch_1.xpos", "4" }, + { "bd_biter_switch_1.ypos", "1" }, + { "bd_biter_switch_1.frames", "1" }, + { "bd_biter_switch_1.scale_up_factor", "2" }, + + { "bd_biter_switch_2", "RocksBD.png" }, + { "bd_biter_switch_2.xpos", "4" }, + { "bd_biter_switch_2.ypos", "1" }, + { "bd_biter_switch_2.frames", "1" }, + { "bd_biter_switch_2.scale_up_factor", "2" }, + + { "bd_biter_switch_3", "RocksBD.png" }, + { "bd_biter_switch_3.xpos", "4" }, + { "bd_biter_switch_3.ypos", "1" }, + { "bd_biter_switch_3.frames", "1" }, + { "bd_biter_switch_3.scale_up_factor", "2" }, + + { "bd_biter_switch_4", "RocksBD.png" }, + { "bd_biter_switch_4.xpos", "4" }, + { "bd_biter_switch_4.ypos", "1" }, + { "bd_biter_switch_4.frames", "1" }, + { "bd_biter_switch_4.scale_up_factor", "2" }, + + { "bd_replicator", "RocksBD.png" }, + { "bd_replicator.xpos", "0" }, + { "bd_replicator.ypos", "38" }, + { "bd_replicator.frames", "1" }, + { "bd_replicator.scale_up_factor", "2" }, + { "bd_replicator.active", "RocksBD.png" }, + { "bd_replicator.active.xpos", "0" }, + { "bd_replicator.active.ypos", "38" }, + { "bd_replicator.active.frames", "8" }, + { "bd_replicator.active.delay", "2" }, + { "bd_replicator.active.scale_up_factor", "2" }, + + { "bd_replicator_switch", "RocksBD.png" }, + { "bd_replicator_switch.xpos", "3" }, + { "bd_replicator_switch.ypos", "36" }, + { "bd_replicator_switch.frames", "1" }, + { "bd_replicator_switch.scale_up_factor", "2" }, + { "bd_replicator_switch.active", "RocksBD.png" }, + { "bd_replicator_switch.active.xpos", "2" }, + { "bd_replicator_switch.active.ypos", "36" }, + { "bd_replicator_switch.active.frames", "1" }, + { "bd_replicator_switch.active.scale_up_factor", "2" }, + + { "bd_conveyor_left", "RocksBD.png" }, + { "bd_conveyor_left.xpos", "0" }, + { "bd_conveyor_left.ypos", "41" }, + { "bd_conveyor_left.frames", "1" }, + { "bd_conveyor_left.scale_up_factor", "2" }, + { "bd_conveyor_left.active", "RocksBD.png" }, + { "bd_conveyor_left.active.xpos", "0" }, + { "bd_conveyor_left.active.ypos", "41" }, + { "bd_conveyor_left.active.frames", "8" }, + { "bd_conveyor_left.active.delay", "2" }, + { "bd_conveyor_left.active.scale_up_factor", "2" }, + + { "bd_conveyor_right", "RocksBD.png" }, + { "bd_conveyor_right.xpos", "0" }, + { "bd_conveyor_right.ypos", "40" }, + { "bd_conveyor_right.frames", "1" }, + { "bd_conveyor_right.scale_up_factor", "2" }, + { "bd_conveyor_right.active", "RocksBD.png" }, + { "bd_conveyor_right.active.xpos", "0" }, + { "bd_conveyor_right.active.ypos", "40" }, + { "bd_conveyor_right.active.frames", "8" }, + { "bd_conveyor_right.active.delay", "2" }, + { "bd_conveyor_right.active.scale_up_factor", "2" }, + + { "bd_conveyor_switch", "RocksBD.png" }, + { "bd_conveyor_switch.xpos", "3" }, + { "bd_conveyor_switch.ypos", "44" }, + { "bd_conveyor_switch.frames", "1" }, + { "bd_conveyor_switch.scale_up_factor", "2" }, + { "bd_conveyor_switch.active", "RocksBD.png" }, + { "bd_conveyor_switch.active.xpos", "4" }, + { "bd_conveyor_switch.active.ypos", "44" }, + { "bd_conveyor_switch.active.frames", "1" }, + { "bd_conveyor_switch.active.scale_up_factor", "2" }, + + { "bd_conveyor_dir_switch_left", "RocksBD.png" }, + { "bd_conveyor_dir_switch_left.xpos", "2" }, + { "bd_conveyor_dir_switch_left.ypos", "44" }, + { "bd_conveyor_dir_switch_left.frames", "1" }, + { "bd_conveyor_dir_switch_left.scale_up_factor", "2" }, + + { "bd_conveyor_dir_switch_right", "RocksBD.png" }, + { "bd_conveyor_dir_switch_right.xpos", "1" }, + { "bd_conveyor_dir_switch_right.ypos", "44" }, + { "bd_conveyor_dir_switch_right.frames", "1" }, + { "bd_conveyor_dir_switch_right.scale_up_factor", "2" }, + + { "bd_gravity_switch", "RocksBD.png" }, + { "bd_gravity_switch.xpos", "2" }, + { "bd_gravity_switch.ypos", "34" }, + { "bd_gravity_switch.frames", "1" }, + { "bd_gravity_switch.scale_up_factor", "2" }, + { "bd_gravity_switch.active", "RocksBD.png" }, + { "bd_gravity_switch.active.xpos", "3" }, + { "bd_gravity_switch.active.ypos", "34" }, + { "bd_gravity_switch.active.frames", "1" }, + { "bd_gravity_switch.active.scale_up_factor","2" }, + + { "bd_acid", "RocksBD.png" }, + { "bd_acid.xpos", "4" }, + { "bd_acid.ypos", "2" }, + { "bd_acid.frames", "1" }, + { "bd_acid.scale_up_factor", "2" }, + + { "bd_box", "RocksBD.png" }, + { "bd_box.xpos", "5" }, + { "bd_box.ypos", "2" }, + { "bd_box.frames", "1" }, + { "bd_box.scale_up_factor", "2" }, + + { "bd_time_penalty", "RocksBD.png" }, + { "bd_time_penalty.xpos", "1" }, + { "bd_time_penalty.ypos", "1" }, + { "bd_time_penalty.frames", "1" }, + { "bd_time_penalty.scale_up_factor", "2" }, + + { "bd_gravestone", "RocksBD.png" }, + { "bd_gravestone.xpos", "1" }, + { "bd_gravestone.ypos", "1" }, + { "bd_gravestone.frames", "1" }, + { "bd_gravestone.scale_up_factor", "2" }, + + { "bd_clock", "RocksBD.png" }, + { "bd_clock.xpos", "0" }, + { "bd_clock.ypos", "2" }, + { "bd_clock.frames", "1" }, + { "bd_clock.scale_up_factor", "2" }, + + { "bd_pot", "RocksBD.png" }, + { "bd_pot.xpos", "7" }, + { "bd_pot.ypos", "7" }, + { "bd_pot.frames", "1" }, + { "bd_pot.scale_up_factor", "2" }, + + { "bd_pneumatic_hammer", "RocksBD.png" }, + { "bd_pneumatic_hammer.xpos", "6" }, + { "bd_pneumatic_hammer.ypos", "7" }, + { "bd_pneumatic_hammer.frames", "1" }, + { "bd_pneumatic_hammer.scale_up_factor", "2" }, + + { "bd_teleporter", "RocksBD.png" }, + { "bd_teleporter.xpos", "5" }, + { "bd_teleporter.ypos", "7" }, + { "bd_teleporter.frames", "1" }, + { "bd_teleporter.scale_up_factor", "2" }, + + { "bd_skeleton", "RocksBD.png" }, + { "bd_skeleton.xpos", "1" }, + { "bd_skeleton.ypos", "34" }, + { "bd_skeleton.frames", "1" }, + { "bd_skeleton.scale_up_factor", "2" }, + + { "bd_water", "RocksBD.png" }, + { "bd_water.xpos", "0" }, + { "bd_water.ypos", "12" }, + { "bd_water.frames", "1" }, + { "bd_water.scale_up_factor", "2" }, + + { "bd_key_1", "RocksBD.png" }, + { "bd_key_1.xpos", "3" }, + { "bd_key_1.ypos", "8" }, + { "bd_key_1.frames", "1" }, + { "bd_key_1.scale_up_factor", "2" }, + + { "bd_key_2", "RocksBD.png" }, + { "bd_key_2.xpos", "4" }, + { "bd_key_2.ypos", "8" }, + { "bd_key_2.frames", "1" }, + { "bd_key_2.scale_up_factor", "2" }, + + { "bd_key_3", "RocksBD.png" }, + { "bd_key_3.xpos", "5" }, + { "bd_key_3.ypos", "8" }, + { "bd_key_3.frames", "1" }, + { "bd_key_3.scale_up_factor", "2" }, + + { "bd_gate_1", "RocksBD.png" }, + { "bd_gate_1.xpos", "0" }, + { "bd_gate_1.ypos", "8" }, + { "bd_gate_1.frames", "1" }, + { "bd_gate_1.scale_up_factor", "2" }, + + { "bd_gate_2", "RocksBD.png" }, + { "bd_gate_2.xpos", "1" }, + { "bd_gate_2.ypos", "8" }, + { "bd_gate_2.frames", "1" }, + { "bd_gate_2.scale_up_factor", "2" }, + + { "bd_gate_3", "RocksBD.png" }, + { "bd_gate_3.xpos", "2" }, + { "bd_gate_3.ypos", "8" }, + { "bd_gate_3.frames", "1" }, + { "bd_gate_3.scale_up_factor", "2" }, + + { "bd_lava", "RocksBD.png" }, + { "bd_lava.xpos", "0" }, + { "bd_lava.ypos", "39" }, + { "bd_lava.frames", "1" }, + { "bd_lava.scale_up_factor", "2" }, + + { "bd_sweet", "RocksBD.png" }, + { "bd_sweet.xpos", "0" }, + { "bd_sweet.ypos", "1" }, + { "bd_sweet.frames", "1" }, + { "bd_sweet.scale_up_factor", "2" }, + + { "bd_voodoo_doll", "RocksBD.png" }, + { "bd_voodoo_doll.xpos", "7" }, + { "bd_voodoo_doll.ypos", "0" }, + { "bd_voodoo_doll.frames", "1" }, + { "bd_voodoo_doll.scale_up_factor", "2" }, + + { "bd_slime", "RocksBD.png" }, + { "bd_slime.xpos", "0" }, + { "bd_slime.ypos", "25" }, + { "bd_slime.frames", "1" }, + { "bd_slime.scale_up_factor", "2" }, + + { "bd_waiting_rock", UNDEFINED_FILENAME }, + { "bd_waiting_rock.clone_from", "bd_rock" }, + + { "bd_chasing_rock", UNDEFINED_FILENAME }, + { "bd_chasing_rock.clone_from", "bd_rock" }, + + { "bd_ghost", "RocksBD.png" }, + { "bd_ghost.xpos", "0" }, + { "bd_ghost.ypos", "20" }, + { "bd_ghost.frames", "1" }, + { "bd_ghost.scale_up_factor", "2" }, + + { "bd_cow", "RocksBD.png" }, + { "bd_cow.xpos", "0" }, + { "bd_cow.ypos", "11" }, + { "bd_cow.frames", "1" }, + { "bd_cow.scale_up_factor", "2" }, + { "bd_cow.left", "RocksBD.png" }, + { "bd_cow.left.xpos", "0" }, + { "bd_cow.left.ypos", "11" }, + { "bd_cow.left.frames", "1" }, + { "bd_cow.left.scale_up_factor", "2" }, + { "bd_cow.up", "RocksBD.png" }, + { "bd_cow.up.xpos", "0" }, + { "bd_cow.up.ypos", "11" }, + { "bd_cow.up.frames", "1" }, + { "bd_cow.up.scale_up_factor", "2" }, + { "bd_cow.right", "RocksBD.png" }, + { "bd_cow.right.xpos", "0" }, + { "bd_cow.right.ypos", "11" }, + { "bd_cow.right.frames", "1" }, + { "bd_cow.right.scale_up_factor", "2" }, + { "bd_cow.down", "RocksBD.png" }, + { "bd_cow.down.xpos", "0" }, + { "bd_cow.down.ypos", "11" }, + { "bd_cow.down.frames", "1" }, + { "bd_cow.down.scale_up_factor", "2" }, + + { "bd_stonefly", "RocksBD.png" }, + { "bd_stonefly.xpos", "0" }, + { "bd_stonefly.ypos", "19" }, + { "bd_stonefly.frames", "1" }, + { "bd_stonefly.scale_up_factor", "2" }, + { "bd_stonefly.right", "RocksBD.png" }, + { "bd_stonefly.right.xpos", "0" }, + { "bd_stonefly.right.ypos", "19" }, + { "bd_stonefly.right.frames", "1" }, + { "bd_stonefly.right.scale_up_factor", "2" }, + { "bd_stonefly.up", "RocksBD.png" }, + { "bd_stonefly.up.xpos", "0" }, + { "bd_stonefly.up.ypos", "19" }, + { "bd_stonefly.up.frames", "1" }, + { "bd_stonefly.up.scale_up_factor", "2" }, + { "bd_stonefly.left", "RocksBD.png" }, + { "bd_stonefly.left.xpos", "0" }, + { "bd_stonefly.left.ypos", "19" }, + { "bd_stonefly.left.frames", "1" }, + { "bd_stonefly.left.scale_up_factor", "2" }, + { "bd_stonefly.down", "RocksBD.png" }, + { "bd_stonefly.down.xpos", "0" }, + { "bd_stonefly.down.ypos", "19" }, + { "bd_stonefly.down.frames", "1" }, + { "bd_stonefly.down.scale_up_factor", "2" }, + + { "bd_biter", "RocksBD.png" }, + { "bd_biter.xpos", "0" }, + { "bd_biter.ypos", "21" }, + { "bd_biter.frames", "1" }, + { "bd_biter.scale_up_factor", "2" }, + { "bd_biter.right", "RocksBD.png" }, + { "bd_biter.right.xpos", "0" }, + { "bd_biter.right.ypos", "21" }, + { "bd_biter.right.frames", "1" }, + { "bd_biter.right.scale_up_factor", "2" }, + { "bd_biter.up", "RocksBD.png" }, + { "bd_biter.up.xpos", "0" }, + { "bd_biter.up.ypos", "21" }, + { "bd_biter.up.frames", "1" }, + { "bd_biter.up.scale_up_factor", "2" }, + { "bd_biter.left", "RocksBD.png" }, + { "bd_biter.left.xpos", "0" }, + { "bd_biter.left.ypos", "21" }, + { "bd_biter.left.frames", "1" }, + { "bd_biter.left.scale_up_factor", "2" }, + { "bd_biter.down", "RocksBD.png" }, + { "bd_biter.down.xpos", "0" }, + { "bd_biter.down.ypos", "21" }, + { "bd_biter.down.frames", "1" }, + { "bd_biter.down.scale_up_factor", "2" }, + + { "bd_dragonfly", "RocksBD.png" }, + { "bd_dragonfly.xpos", "0" }, + { "bd_dragonfly.ypos", "42" }, + { "bd_dragonfly.frames", "1" }, + { "bd_dragonfly.scale_up_factor", "2" }, + { "bd_dragonfly.right", "RocksBD.png" }, + { "bd_dragonfly.right.xpos", "0" }, + { "bd_dragonfly.right.ypos", "42" }, + { "bd_dragonfly.right.frames", "1" }, + { "bd_dragonfly.right.scale_up_factor", "2" }, + { "bd_dragonfly.up", "RocksBD.png" }, + { "bd_dragonfly.up.xpos", "0" }, + { "bd_dragonfly.up.ypos", "42" }, + { "bd_dragonfly.up.frames", "1" }, + { "bd_dragonfly.up.scale_up_factor", "2" }, + { "bd_dragonfly.left", "RocksBD.png" }, + { "bd_dragonfly.left.xpos", "0" }, + { "bd_dragonfly.left.ypos", "42" }, + { "bd_dragonfly.left.frames", "1" }, + { "bd_dragonfly.left.scale_up_factor", "2" }, + { "bd_dragonfly.down", "RocksBD.png" }, + { "bd_dragonfly.down.xpos", "0" }, + { "bd_dragonfly.down.ypos", "42" }, + { "bd_dragonfly.down.frames", "1" }, + { "bd_dragonfly.down.scale_up_factor", "2" }, + + { "bd_bomb", "RocksBD.png" }, + { "bd_bomb.xpos", "0" }, + { "bd_bomb.ypos", "6" }, + { "bd_bomb.frames", "1" }, + { "bd_bomb.scale_up_factor", "2" }, + + { "bd_nitro_pack", "RocksBD.png" }, + { "bd_nitro_pack.xpos", "0" }, + { "bd_nitro_pack.ypos", "36" }, + { "bd_nitro_pack.frames", "1" }, + { "bd_nitro_pack.scale_up_factor", "2" }, + + { "bd_player_with_bomb", "RocksBD.png" }, + { "bd_player_with_bomb.xpos", "3" }, + { "bd_player_with_bomb.ypos", "4" }, + { "bd_player_with_bomb.frames", "1" }, + { "bd_player_with_bomb.scale_up_factor", "2" }, + + { "bd_player_glued", UNDEFINED_FILENAME }, + { "bd_player_glued.clone_from", "bd_player" }, + + { "bd_player_stirring", "RocksBD.png" }, + { "bd_player_stirring.xpos", "3" }, + { "bd_player_stirring.ypos", "4" }, + { "bd_player_stirring.frames", "1" }, + { "bd_player_stirring.scale_up_factor", "2" }, + + { "bd_fake_bonus", "RocksBD.png" }, + { "bd_fake_bonus.xpos", "0" }, + { "bd_fake_bonus.ypos", "15" }, + { "bd_fake_bonus.frames", "1" }, + { "bd_fake_bonus.scale_up_factor", "2" }, + + { "bd_covered", "RocksBD.png" }, + { "bd_covered.xpos", "4" }, + { "bd_covered.ypos", "0" }, + { "bd_covered.frames", "1" }, + { "bd_covered.scale_up_factor", "2" }, + // images for Supaplex style elements and actions { "[sp_default].exploding", "RocksSP.png" }, diff --git a/src/editor.c b/src/editor.c index c95d38db..3bed979d 100644 --- a/src/editor.c +++ b/src/editor.c @@ -4049,6 +4049,181 @@ static int *editor_el_boulderdash_ptr = editor_el_boulderdash; static int num_editor_hl_boulderdash = ARRAY_SIZE(editor_hl_boulderdash); static int num_editor_el_boulderdash = ARRAY_SIZE(editor_el_boulderdash); +static int editor_hl_boulderdash_native[] = +{ + EL_INTERNAL_CASCADE_BD_NATIVE_ACTIVE, + EL_CHAR('B'), + EL_CHAR('D'), + EL_EMPTY, +}; + +static int editor_el_boulderdash_native[] = +{ + EL_EMPTY, + EL_BD_SAND, + EL_BD_SAND_BALL, + EL_BD_SAND_LOOSE, + + EL_BD_SAND_SLOPED_UP_RIGHT, + EL_BD_SAND_SLOPED_UP_LEFT, + EL_BD_SAND_SLOPED_DOWN_LEFT, + EL_BD_SAND_SLOPED_DOWN_RIGHT, + + EL_BD_WALL_SLOPED_UP_RIGHT, + EL_BD_WALL_SLOPED_UP_LEFT, + EL_BD_WALL_SLOPED_DOWN_LEFT, + EL_BD_WALL_SLOPED_DOWN_RIGHT, + + EL_BD_SAND_2, + EL_BD_WALL_NON_SLOPED, + EL_BD_WALL, + EL_BD_MAGIC_WALL, + + EL_BD_EXIT_CLOSED, + EL_BD_EXIT_OPEN, + EL_BD_INVISIBLE_EXIT_CLOSED, + EL_BD_INVISIBLE_EXIT_OPEN, + + EL_BD_STEELWALL_SLOPED_UP_RIGHT, + EL_BD_STEELWALL_SLOPED_UP_LEFT, + EL_BD_STEELWALL_SLOPED_DOWN_LEFT, + EL_BD_STEELWALL_SLOPED_DOWN_RIGHT, + + EL_BD_STEELWALL, + EL_BD_STEELWALL_EXPLODABLE, + EL_BD_STEELWALL_DIGGABLE, + EL_BD_WALL_DIGGABLE, + + EL_BD_ROCK, + EL_BD_FLYING_ROCK, + EL_BD_MEGA_ROCK, + EL_BD_DIAMOND, + + EL_BD_FLYING_DIAMOND, + EL_BD_NUT, + EL_BD_BLADDER_SPENDER, + EL_BD_INBOX, + + EL_BD_EXPANDABLE_WALL_HORIZONTAL, + EL_BD_EXPANDABLE_WALL_VERTICAL, + EL_BD_EXPANDABLE_WALL_ANY, + EL_BD_CREATURE_SWITCH, + + EL_BD_EXPANDABLE_STEELWALL_HORIZONTAL, + EL_BD_EXPANDABLE_STEELWALL_VERTICAL, + EL_BD_EXPANDABLE_STEELWALL_ANY, + EL_BD_EXPANDABLE_WALL_SWITCH_HORIZONTAL, + + EL_BD_BITER_SWITCH_1, + EL_BD_REPLICATOR_SWITCH, + EL_BD_CONVEYOR_SWITCH, + EL_BD_CONVEYOR_DIR_SWITCH_RIGHT, + + EL_BD_ACID, + EL_BD_FALLING_WALL, + EL_BD_BOX, + EL_BD_TIME_PENALTY, + + EL_BD_GRAVESTONE, + EL_BD_ROCK_GLUED, + EL_BD_DIAMOND_GLUED, + EL_BD_DIAMOND_KEY, + + EL_BD_TRAPPED_DIAMOND, + EL_BD_CLOCK, + EL_BD_SAND_GLUED, + EL_BD_WATER, + + EL_BD_KEY_1, + EL_BD_KEY_2, + EL_BD_KEY_3, + EL_EMPTY, + + EL_BD_WALL_KEY_1, + EL_BD_WALL_KEY_2, + EL_BD_WALL_KEY_3, + EL_BD_WALL_DIAMOND, + + EL_BD_GATE_1, + EL_BD_GATE_2, + EL_BD_GATE_3, + EL_BD_POT, + + EL_BD_GRAVITY_SWITCH, + EL_BD_PNEUMATIC_HAMMER, + EL_BD_TELEPORTER, + EL_BD_SKELETON, + + EL_BD_AMOEBA, + EL_BD_AMOEBA_2, + EL_BD_REPLICATOR, + EL_EMPTY, + + EL_BD_CONVEYOR_LEFT, + EL_BD_CONVEYOR_RIGHT, + EL_BD_BOMB, + EL_BD_NITRO_PACK, + + EL_BD_LAVA, + EL_BD_SWEET, + EL_BD_VOODOO_DOLL, + EL_BD_SLIME, + + EL_BD_BLADDER, + EL_BD_WAITING_ROCK, + EL_BD_CHASING_ROCK, + EL_BD_GHOST, + + EL_BD_COW_LEFT, + EL_BD_COW_UP, + EL_BD_COW_RIGHT, + EL_BD_COW_DOWN, + + EL_BD_FIREFLY_LEFT, + EL_BD_FIREFLY_UP, + EL_BD_FIREFLY_RIGHT, + EL_BD_FIREFLY_DOWN, + + EL_BD_FIREFLY_2_LEFT, + EL_BD_FIREFLY_2_UP, + EL_BD_FIREFLY_2_RIGHT, + EL_BD_FIREFLY_2_DOWN, + + EL_BD_BUTTERFLY_LEFT, + EL_BD_BUTTERFLY_UP, + EL_BD_BUTTERFLY_RIGHT, + EL_BD_BUTTERFLY_DOWN, + + EL_BD_BUTTERFLY_2_LEFT, + EL_BD_BUTTERFLY_2_UP, + EL_BD_BUTTERFLY_2_RIGHT, + EL_BD_BUTTERFLY_2_DOWN, + + EL_BD_STONEFLY_LEFT, + EL_BD_STONEFLY_UP, + EL_BD_STONEFLY_RIGHT, + EL_BD_STONEFLY_DOWN, + + EL_BD_BITER_UP, + EL_BD_BITER_RIGHT, + EL_BD_BITER_DOWN, + EL_BD_BITER_LEFT, + + EL_BD_DRAGONFLY_LEFT, + EL_BD_DRAGONFLY_UP, + EL_BD_DRAGONFLY_RIGHT, + EL_BD_DRAGONFLY_DOWN, + + EL_BD_PLAYER, + EL_BD_PLAYER_WITH_BOMB, + EL_BD_PLAYER_GLUED, + EL_BD_PLAYER_STIRRING, +}; +static int *editor_hl_boulderdash_native_ptr = editor_hl_boulderdash_native; +static int *editor_el_boulderdash_native_ptr = editor_el_boulderdash_native; +static int num_editor_hl_boulderdash_native = ARRAY_SIZE(editor_hl_boulderdash_native); +static int num_editor_el_boulderdash_native = ARRAY_SIZE(editor_el_boulderdash_native); + static int editor_hl_emerald_mine[] = { EL_INTERNAL_CASCADE_EM_ACTIVE, @@ -5459,6 +5634,7 @@ static boolean setup_editor_cascade_never = FALSE; static boolean setup_editor_el_players = TRUE; static boolean setup_editor_el_boulderdash = TRUE; +static boolean setup_editor_el_boulderdash_native = TRUE; static boolean setup_editor_el_emerald_mine = TRUE; static boolean setup_editor_el_emerald_mine_club = TRUE; static boolean setup_editor_el_more = TRUE; @@ -5505,6 +5681,12 @@ editor_elements_info[] = &editor_hl_boulderdash_ptr, &num_editor_hl_boulderdash, &editor_el_boulderdash_ptr, &num_editor_el_boulderdash }, + { + &setup_editor_el_boulderdash_native, + &setup.editor_cascade.el_bd_native, + &editor_hl_boulderdash_native_ptr, &num_editor_hl_boulderdash_native, + &editor_el_boulderdash_native_ptr, &num_editor_el_boulderdash_native + }, { &setup_editor_el_emerald_mine, &setup.editor_cascade.el_em, @@ -5804,6 +5986,7 @@ static void ReinitializeElementList_EnableSections(void) setup_editor_el_players = TRUE; setup_editor_el_boulderdash = TRUE; + setup_editor_el_boulderdash_native = TRUE; setup_editor_el_emerald_mine = TRUE; setup_editor_el_emerald_mine_club = TRUE; setup_editor_el_more = TRUE; @@ -5826,6 +6009,7 @@ static void ReinitializeElementList_EnableSections(void) { setup_editor_el_players = FALSE; setup_editor_el_boulderdash = FALSE; + setup_editor_el_boulderdash_native = FALSE; setup_editor_el_emerald_mine = FALSE; setup_editor_el_emerald_mine_club = FALSE; setup_editor_el_more = FALSE; @@ -5856,11 +6040,13 @@ static void ReinitializeElementList_EnableSections(void) if (level.game_engine_type == GAME_ENGINE_TYPE_RND) { + setup_editor_el_boulderdash_native = FALSE; setup_editor_el_mirror_magic = FALSE; setup_editor_el_deflektor = FALSE; } else if (level.game_engine_type == GAME_ENGINE_TYPE_BD) { + setup_editor_el_boulderdash = FALSE; setup_editor_el_emerald_mine = FALSE; setup_editor_el_emerald_mine_club = FALSE; setup_editor_el_more = FALSE; @@ -5878,6 +6064,7 @@ static void ReinitializeElementList_EnableSections(void) else if (level.game_engine_type == GAME_ENGINE_TYPE_EM) { setup_editor_el_boulderdash = FALSE; + setup_editor_el_boulderdash_native = FALSE; setup_editor_el_more = FALSE; setup_editor_el_sokoban = FALSE; setup_editor_el_supaplex = FALSE; @@ -5893,6 +6080,7 @@ static void ReinitializeElementList_EnableSections(void) { setup_editor_el_players = FALSE; setup_editor_el_boulderdash = FALSE; + setup_editor_el_boulderdash_native = FALSE; setup_editor_el_emerald_mine = FALSE; setup_editor_el_emerald_mine_club = FALSE; setup_editor_el_more = FALSE; @@ -5910,6 +6098,7 @@ static void ReinitializeElementList_EnableSections(void) { setup_editor_el_players = FALSE; setup_editor_el_boulderdash = FALSE; + setup_editor_el_boulderdash_native = FALSE; setup_editor_el_emerald_mine = FALSE; setup_editor_el_emerald_mine_club = FALSE; setup_editor_el_more = FALSE; @@ -8724,7 +8913,13 @@ static void InitDrawingElements(void) if (level.game_engine_type == game_engine_type_last) return; - if (level.game_engine_type == GAME_ENGINE_TYPE_SP) + if (level.game_engine_type == GAME_ENGINE_TYPE_BD) + { + new_element1 = EL_BD_WALL; + new_element2 = EL_EMPTY; + new_element3 = EL_BD_SAND; + } + else if (level.game_engine_type == GAME_ENGINE_TYPE_SP) { new_element1 = EL_SP_CHIP_SINGLE; new_element2 = EL_EMPTY; diff --git a/src/files.c b/src/files.c index 34d9f6d0..ae0dbf7d 100644 --- a/src/files.c +++ b/src/files.c @@ -9868,6 +9868,10 @@ static struct TokenInfo editor_cascade_setup_tokens[] = TYPE_SWITCH, &setup.editor_cascade.el_bd, "editor.cascade.el_bd" }, + { + TYPE_SWITCH, + &setup.editor_cascade.el_bd_native, "editor.cascade.el_bd_native" + }, { TYPE_SWITCH, &setup.editor_cascade.el_em, "editor.cascade.el_em" @@ -10557,6 +10561,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->touch.overlay_buttons = FALSE; si->editor.el_boulderdash = TRUE; + si->editor.el_boulderdash_native = TRUE; si->editor.el_emerald_mine = TRUE; si->editor.el_emerald_mine_club = TRUE; si->editor.el_more = TRUE; @@ -10730,6 +10735,7 @@ static void setSetupInfoToDefaults_ServerSetup(struct SetupInfo *si) static void setSetupInfoToDefaults_EditorCascade(struct SetupInfo *si) { si->editor_cascade.el_bd = TRUE; + si->editor_cascade.el_bd_native = TRUE; si->editor_cascade.el_em = TRUE; si->editor_cascade.el_emc = TRUE; si->editor_cascade.el_rnd = TRUE; diff --git a/src/libgame/system.h b/src/libgame/system.h index 73d50ddc..3cee3696 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -1337,6 +1337,7 @@ struct SetupInputInfo struct SetupEditorInfo { boolean el_boulderdash; + boolean el_boulderdash_native; boolean el_emerald_mine; boolean el_emerald_mine_club; boolean el_more; @@ -1381,6 +1382,7 @@ struct SetupLevelSetupInfo struct SetupEditorCascadeInfo { boolean el_bd; + boolean el_bd_native; boolean el_em; boolean el_emc; boolean el_rnd; diff --git a/src/main.c b/src/main.c index d3241c11..79390657 100644 --- a/src/main.c +++ b/src/main.c @@ -6462,6 +6462,666 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = "df_slope", "slope (DF style) (315\xb0)" }, + { + "bd_player", + "bd_player", + "player" + }, + { + "bd_sand", + "bd_sand", + "sand" + }, + { + "bd_sand_2", + "bd_sand", + "sand (alternative)" + }, + { + "bd_sand_ball", + "bd_sand_ball", + "sand ball" + }, + { + "bd_sand_loose", + "bd_sand_loose", + "sand (loose)" + }, + { + "bd_sand_sloped_up_right", + "bd_sand_sloped", + "sand (sloped up right)" + }, + { + "bd_sand_sloped_up_left", + "bd_sand_sloped", + "sand (sloped up left)" + }, + { + "bd_sand_sloped_down_left", + "bd_sand_sloped", + "sand (sloped down left)" + }, + { + "bd_sand_sloped_down_right", + "bd_sand_sloped", + "sand (sloped down right)" + }, + { + "bd_sand_glued", + "bd_sane_glued", + "glued sand" + }, + { + "bd_wall_sloped_up_right", + "bd_wall_sloped", + "wall (sloped up right)" + }, + { + "bd_wall_sloped_up_left", + "bd_wall_sloped", + "wall (sloped up left)" + }, + { + "bd_wall_sloped_down_left", + "bd_wall_sloped", + "wall (sloped down left)" + }, + { + "bd_wall_sloped_down_right", + "bd_wall_sloped", + "wall (sloped down right)" + }, + { + "bd_wall_non_sloped", + "bd_wall", + "wall (non sloped)" + }, + { + "bd_wall_diggable", + "bd_wall_diggable", + "diggable wall" + }, + { + "bd_wall_diamond", + "bd_wall", + "wall with diamond" + }, + { + "bd_wall_key_1", + "bd_wall_key", + "wall with key 1" + }, + { + "bd_wall_key_2", + "bd_wall_key", + "wall with key 2" + }, + { + "bd_wall_key_3", + "bd_wall_key", + "wall with key 3" + }, + { + "bd_falling_wall", + "bd_falling_wall", + "falling wall" + }, + { + "bd_steelwall", + "bd_steelwall", + "steel wall" + }, + { + "bd_steelwall_sloped_up_right", + "bd_steelwall_sloped", + "steel wall (sloped up right)" + }, + { + "bd_steelwall_sloped_up_left", + "bd_steelwall_sloped", + "steel wall (sloped up left)" + }, + { + "bd_steelwall_sloped_down_left", + "bd_steelwall_sloped", + "steel wall (sloped down left)" + }, + { + "bd_steelwall_sloped_down_right", + "bd_steelwall_sloped", + "steel wall (sloped down right)" + }, + { + "bd_steelwall_explodable", + "bd_steelwall_explodable", + "explodable steel wall" + }, + { + "bd_steelwall_diggable", + "bd_steelwall_diggable", + "diggable steel wall" + }, + { + "bd_expandable_wall_horizontal", + "bd_expandable_wall", + "expandable wall (horizontal)" + }, + { + "bd_expandable_wall_vertical", + "bd_expandable_wall", + "expandable wall (vertical)" + }, + { + "bd_expandable_wall_any", + "bd_expandable_wall", + "expandable wall (any direction)" + }, + { + "bd_expandable_steelwall_horizontal", + "bd_expandable_steelwall", + "expandable steelwall (horizontal)" + }, + { + "bd_expandable_steelwall_vertical", + "bd_expandable_steelwall", + "expandable steelwall (vertical)" + }, + { + "bd_expandable_steelwall_any", + "bd_expandable_steelwall", + "expandable steelwall (any direction)" + }, + { + "bd_expandable_wall_switch_horizontal", + "bd_expandable_wall_switch", + "switch for expandable wall (horizontal)" + }, + { + "bd_expandable_wall_switch_vertical", + "bd_expandable_wall_switch", + "switch for expandable wall (vertical)" + }, + { + "bd_inbox", + "bd_inbox", + "inbox" + }, + { + "bd_exit_closed", + "bd_exit", + "closed exit" + }, + { + "bd_exit_open", + "bd_exit", + "open exit" + }, + { + "bd_invisible_exit_closed", + "bd_invisible_exit", + "invisible exit (closed)" + }, + { + "bd_invisible_exit_open", + "bd_invisible_exit", + "invisible exit (open)" + }, + { + "bd_flying_rock", + "bd_flying_rock", + "flying rock" + }, + { + "bd_mega_rock", + "bd_mega_rock", + "mega rock" + }, + { + "bd_rock_glued", + "bd_rock_glued", + "glued rock" + }, + { + "bd_flying_diamond", + "bd_flying_diamond", + "flying diamond" + }, + { + "bd_diamond_glued", + "bd_diamond_glued", + "glued diamond" + }, + { + "bd_diamond_key", + "bd_diamond_key", + "diamond key" + }, + { + "bd_trapped_diamond", + "bd_trapped_diamond", + "trapped diamond" + }, + { + "bd_nut", + "bd_nut", + "nut with diamond" + }, + { + "bd_amoeba_2", + "bd_amoeba", + "amoeba (alternative)" + }, + { + "bd_bladder", + "bd_bladder", + "bladder" + }, + { + "bd_bladder_spender", + "bd_bladder_spender", + "bladder spender" + }, + { + "bd_creature_switch", + "bd_creature_switch", + "switch for creature (off)" + }, + { + "bd_creature_switch.active", + "bd_creature_switch", + "switch for creature (on)" + }, + { + "bd_biter_switch_1", + "bd_biter_switch", + "switch for biter" + }, + { + "bd_biter_switch_2", + "bd_biter_switch", + "switch for biter" + }, + { + "bd_biter_switch_3", + "bd_biter_switch", + "switch for biter" + }, + { + "bd_biter_switch_4", + "bd_biter_switch", + "switch for biter" + }, + { + "bd_replicator", + "bd_replicator", + "replicator" + }, + { + "bd_replicator.active", + "bd_replicator", + "replicator (active)" + }, + { + "bd_replicator_switch", + "bd_replicator_switch", + "switch for replicator (off)" + }, + { + "bd_replicator_switch.active", + "bd_replicator_switch", + "switch for replicator (on)" + }, + { + "bd_conveyor_left", + "bd_conveyor", + "conveyor belt (left)" + }, + { + "bd_conveyor_left.active", + "bd_conveyor", + "conveyor belt (left) (active)" + }, + { + "bd_conveyor_right", + "bd_conveyor", + "conveyor belt (right)" + }, + { + "bd_conveyor_right.active", + "bd_conveyor", + "conveyor belt (right) (active)" + }, + { + "bd_conveyor_switch", + "bd_conveyor_switch", + "switch for conveyor belt (off)" + }, + { + "bd_conveyor_switch.active", + "bd_conveyor_switch", + "switch for conveyor belt (on)" + }, + { + "bd_conveyor_dir_switch_left", + "bd_conveyor_dir_switch", + "switch for conveyor belt direction (left)" + }, + { + "bd_conveyor_dir_switch_right", + "bd_conveyor_dir_switch", + "switch for conveyor belt direction (right)" + }, + { + "bd_gravity_switch", + "bd_gravity_switch", + "gravity switch" + }, + { + "bd_gravity_switch.active", + "bd_gravity_switch", + "gravity switch (active)" + }, + { + "bd_acid", + "bd_acid", + "acid" + }, + { + "bd_box", + "bd_box", + "box" + }, + { + "bd_time_penalty", + "bd_time_penalty", + "time penalty" + }, + { + "bd_gravestone", + "bd_gravestone", + "gravestone" + }, + { + "bd_clock", + "bd_clock", + "clock" + }, + { + "bd_pot", + "bd_pot", + "pot" + }, + { + "bd_pneumatic_hammer", + "bd_pneumatic_hammer", + "pneumatic hammer" + }, + { + "bd_teleporter", + "bd_teleporter", + "teleporter" + }, + { + "bd_skeleton", + "bd_skeleton", + "skeleton" + }, + { + "bd_water", + "bd_water", + "water" + }, + { + "bd_key_1", + "bd_key", + "key 1" + }, + { + "bd_key_2", + "bd_key", + "key 2" + }, + { + "bd_key_3", + "bd_key", + "key 3" + }, + { + "bd_gate_1", + "bd_gate", + "door 1" + }, + { + "bd_gate_2", + "bd_gate", + "door 2" + }, + { + "bd_gate_3", + "bd_gate", + "door 3" + }, + { + "bd_lava", + "bd_lava", + "lava" + }, + { + "bd_sweet", + "bd_sweet", + "sweet" + }, + { + "bd_voodoo_doll", + "bd_voodoo_doll", + "voodoo doll" + }, + { + "bd_slime", + "bd_slime", + "slime" + }, + { + "bd_waiting_rock", + "bd_waiting_rock", + "waiting rock" + }, + { + "bd_chasing_rock", + "bd_chasing_rock", + "chasing rock" + }, + { + "bd_ghost", + "bd_ghost", + "ghost" + }, + { + "bd_cow", + "bd_cow", + "cow (random start direction)" + }, + { + "bd_cow.left", + "bd_cow", + "cow (starts moving left)" + }, + { + "bd_cow.up", + "bd_cow", + "cow (starts moving up)" + }, + { + "bd_cow.right", + "bd_cow", + "cow (starts moving right)" + }, + { + "bd_cow.down", + "bd_cow", + "cow (starts moving down)" + }, + { + "bd_butterfly_2", + "bd_butterfly", + "butterfly (alternative, random start direction)" + }, + { + "bd_butterfly_2.right", + "bd_butterfly", + "butterfly (alternative, starts moving right)" + }, + { + "bd_butterfly_2.up", + "bd_butterfly", + "butterfly (alternative, starts moving up)" + }, + { + "bd_butterfly_2.left", + "bd_butterfly", + "butterfly (alternative, starts moving left)" + }, + { + "bd_butterfly_2.down", + "bd_butterfly", + "butterfly (alternative, starts moving down)" + }, + { + "bd_firefly_2.right", + "bd_firefly", + "firefly (alternative, starts moving right)" + }, + { + "bd_firefly_2", + "bd_firefly", + "firefly (alternative, random start direction)" + }, + { + "bd_firefly_2.up", + "bd_firefly", + "firefly (alternative, starts moving up)" + }, + { + "bd_firefly_2.left", + "bd_firefly", + "firefly (alternative, starts moving left)" + }, + { + "bd_firefly_2.down", + "bd_firefly", + "firefly (alternative, starts moving down)" + }, + { + "bd_stonefly", + "bd_stonefly", + "stonefly (random start direction)" + }, + { + "bd_stonefly.right", + "bd_stonefly", + "stonefly (starts moving right)" + }, + { + "bd_stonefly.up", + "bd_stonefly", + "stonefly (starts moving up)" + }, + { + "bd_stonefly.left", + "bd_stonefly", + "stonefly (starts moving left)" + }, + { + "bd_stonefly.down", + "bd_stonefly", + "stonefly (starts moving down)" + }, + { + "bd_biter", + "bd_biter", + "biter (random start direction)" + }, + { + "bd_biter.right", + "bd_biter", + "biter (starts moving right)" + }, + { + "bd_biter.up", + "bd_biter", + "biter (starts moving up)" + }, + { + "bd_biter.left", + "bd_biter", + "biter (starts moving left)" + }, + { + "bd_biter.down", + "bd_biter", + "biter (starts moving down)" + }, + { + "bd_dragonfly", + "bd_dragonfly", + "dragonfly (random start direction)" + }, + { + "bd_dragonfly.right", + "bd_dragonfly", + "dragonfly (starts moving right)" + }, + { + "bd_dragonfly.up", + "bd_dragonfly", + "dragonfly (starts moving up)" + }, + { + "bd_dragonfly.left", + "bd_dragonfly", + "dragonfly (starts moving left)" + }, + { + "bd_dragonfly.down", + "bd_dragonfly", + "dragonfly (starts moving down)" + }, + { + "bd_bomb", + "bd_bomb", + "bomb" + }, + { + "bd_nitro_pack", + "bd_nitro_pack", + "nitro pack" + }, + { + "bd_player_with_bomb", + "bd_player", + "player with bomb", + }, + { + "bd_player_glued", + "bd_player", + "glued player", + }, + { + "bd_player_stirring", + "bd_player", + "stirring player" + }, + { + "bd_fake_bonus", + "bd_fake_bonus", + "fake bonus" + }, + { + "bd_covered", + "bd_covered", + "covered" + }, // -------------------------------------------------------------------------- // "real" (and therefore drawable) runtime elements @@ -7233,6 +7893,16 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = "internal", "hide Boulder Dash elements" }, + { + "internal_cascade_bd_native", + "internal", + "show native Boulder Dash elements" + }, + { + "internal_cascade_bd_native.active", + "internal", + "hide native Boulder Dash elements" + }, { "internal_cascade_em", "internal", diff --git a/src/main.h b/src/main.h index 7f3990f0..8e6da7fd 100644 --- a/src/main.h +++ b/src/main.h @@ -2002,7 +2002,141 @@ #define EL_MM_END_3 EL_DF_SLOPE_END #define EL_DF_END_2 EL_DF_SLOPE_END -#define NUM_FILE_ELEMENTS 1253 +// BD style elements +#define EL_BD_PLAYER 1253 +#define EL_BD_SAND 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_HORIZONTAL 1287 +#define EL_BD_EXPANDABLE_WALL_SWITCH_VERTICAL 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_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_LEFT 1321 +#define EL_BD_CONVEYOR_DIR_SWITCH_RIGHT 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_WITH_BOMB 1380 +#define EL_BD_PLAYER_GLUED 1381 +#define EL_BD_PLAYER_STIRRING 1382 +#define EL_BD_FAKE_BONUS 1383 +#define EL_BD_COVERED 1384 + +#define NUM_FILE_ELEMENTS 1385 // "real" (and therefore drawable) runtime elements @@ -2179,47 +2313,49 @@ #define EL_INTERNAL_CASCADE_BD (EL_FIRST_INTERNAL + 4) #define EL_INTERNAL_CASCADE_BD_ACTIVE (EL_FIRST_INTERNAL + 5) -#define EL_INTERNAL_CASCADE_EM (EL_FIRST_INTERNAL + 6) -#define EL_INTERNAL_CASCADE_EM_ACTIVE (EL_FIRST_INTERNAL + 7) -#define EL_INTERNAL_CASCADE_EMC (EL_FIRST_INTERNAL + 8) -#define EL_INTERNAL_CASCADE_EMC_ACTIVE (EL_FIRST_INTERNAL + 9) -#define EL_INTERNAL_CASCADE_RND (EL_FIRST_INTERNAL + 10) -#define EL_INTERNAL_CASCADE_RND_ACTIVE (EL_FIRST_INTERNAL + 11) -#define EL_INTERNAL_CASCADE_SB (EL_FIRST_INTERNAL + 12) -#define EL_INTERNAL_CASCADE_SB_ACTIVE (EL_FIRST_INTERNAL + 13) -#define EL_INTERNAL_CASCADE_SP (EL_FIRST_INTERNAL + 14) -#define EL_INTERNAL_CASCADE_SP_ACTIVE (EL_FIRST_INTERNAL + 15) -#define EL_INTERNAL_CASCADE_DC (EL_FIRST_INTERNAL + 16) -#define EL_INTERNAL_CASCADE_DC_ACTIVE (EL_FIRST_INTERNAL + 17) -#define EL_INTERNAL_CASCADE_DX (EL_FIRST_INTERNAL + 18) -#define EL_INTERNAL_CASCADE_DX_ACTIVE (EL_FIRST_INTERNAL + 19) -#define EL_INTERNAL_CASCADE_MM (EL_FIRST_INTERNAL + 20) -#define EL_INTERNAL_CASCADE_MM_ACTIVE (EL_FIRST_INTERNAL + 21) -#define EL_INTERNAL_CASCADE_DF (EL_FIRST_INTERNAL + 22) -#define EL_INTERNAL_CASCADE_DF_ACTIVE (EL_FIRST_INTERNAL + 23) -#define EL_INTERNAL_CASCADE_CHARS (EL_FIRST_INTERNAL + 24) -#define EL_INTERNAL_CASCADE_CHARS_ACTIVE (EL_FIRST_INTERNAL + 25) -#define EL_INTERNAL_CASCADE_STEEL_CHARS (EL_FIRST_INTERNAL + 26) -#define EL_INTERNAL_CASCADE_STEEL_CHARS_ACTIVE (EL_FIRST_INTERNAL + 27) -#define EL_INTERNAL_CASCADE_CE (EL_FIRST_INTERNAL + 28) -#define EL_INTERNAL_CASCADE_CE_ACTIVE (EL_FIRST_INTERNAL + 29) -#define EL_INTERNAL_CASCADE_GE (EL_FIRST_INTERNAL + 30) -#define EL_INTERNAL_CASCADE_GE_ACTIVE (EL_FIRST_INTERNAL + 31) -#define EL_INTERNAL_CASCADE_ES (EL_FIRST_INTERNAL + 32) -#define EL_INTERNAL_CASCADE_ES_ACTIVE (EL_FIRST_INTERNAL + 33) -#define EL_INTERNAL_CASCADE_REF (EL_FIRST_INTERNAL + 34) -#define EL_INTERNAL_CASCADE_REF_ACTIVE (EL_FIRST_INTERNAL + 35) -#define EL_INTERNAL_CASCADE_USER (EL_FIRST_INTERNAL + 36) -#define EL_INTERNAL_CASCADE_USER_ACTIVE (EL_FIRST_INTERNAL + 37) -#define EL_INTERNAL_CASCADE_DYNAMIC (EL_FIRST_INTERNAL + 38) -#define EL_INTERNAL_CASCADE_DYNAMIC_ACTIVE (EL_FIRST_INTERNAL + 39) +#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_EM (EL_FIRST_INTERNAL + 8) +#define EL_INTERNAL_CASCADE_EM_ACTIVE (EL_FIRST_INTERNAL + 9) +#define EL_INTERNAL_CASCADE_EMC (EL_FIRST_INTERNAL + 10) +#define EL_INTERNAL_CASCADE_EMC_ACTIVE (EL_FIRST_INTERNAL + 11) +#define EL_INTERNAL_CASCADE_RND (EL_FIRST_INTERNAL + 12) +#define EL_INTERNAL_CASCADE_RND_ACTIVE (EL_FIRST_INTERNAL + 13) +#define EL_INTERNAL_CASCADE_SB (EL_FIRST_INTERNAL + 14) +#define EL_INTERNAL_CASCADE_SB_ACTIVE (EL_FIRST_INTERNAL + 15) +#define EL_INTERNAL_CASCADE_SP (EL_FIRST_INTERNAL + 16) +#define EL_INTERNAL_CASCADE_SP_ACTIVE (EL_FIRST_INTERNAL + 17) +#define EL_INTERNAL_CASCADE_DC (EL_FIRST_INTERNAL + 18) +#define EL_INTERNAL_CASCADE_DC_ACTIVE (EL_FIRST_INTERNAL + 19) +#define EL_INTERNAL_CASCADE_DX (EL_FIRST_INTERNAL + 20) +#define EL_INTERNAL_CASCADE_DX_ACTIVE (EL_FIRST_INTERNAL + 21) +#define EL_INTERNAL_CASCADE_MM (EL_FIRST_INTERNAL + 22) +#define EL_INTERNAL_CASCADE_MM_ACTIVE (EL_FIRST_INTERNAL + 23) +#define EL_INTERNAL_CASCADE_DF (EL_FIRST_INTERNAL + 24) +#define EL_INTERNAL_CASCADE_DF_ACTIVE (EL_FIRST_INTERNAL + 25) +#define EL_INTERNAL_CASCADE_CHARS (EL_FIRST_INTERNAL + 26) +#define EL_INTERNAL_CASCADE_CHARS_ACTIVE (EL_FIRST_INTERNAL + 27) +#define EL_INTERNAL_CASCADE_STEEL_CHARS (EL_FIRST_INTERNAL + 28) +#define EL_INTERNAL_CASCADE_STEEL_CHARS_ACTIVE (EL_FIRST_INTERNAL + 29) +#define EL_INTERNAL_CASCADE_CE (EL_FIRST_INTERNAL + 30) +#define EL_INTERNAL_CASCADE_CE_ACTIVE (EL_FIRST_INTERNAL + 31) +#define EL_INTERNAL_CASCADE_GE (EL_FIRST_INTERNAL + 32) +#define EL_INTERNAL_CASCADE_GE_ACTIVE (EL_FIRST_INTERNAL + 33) +#define EL_INTERNAL_CASCADE_ES (EL_FIRST_INTERNAL + 34) +#define EL_INTERNAL_CASCADE_ES_ACTIVE (EL_FIRST_INTERNAL + 35) +#define EL_INTERNAL_CASCADE_REF (EL_FIRST_INTERNAL + 36) +#define EL_INTERNAL_CASCADE_REF_ACTIVE (EL_FIRST_INTERNAL + 37) +#define EL_INTERNAL_CASCADE_USER (EL_FIRST_INTERNAL + 38) +#define EL_INTERNAL_CASCADE_USER_ACTIVE (EL_FIRST_INTERNAL + 39) +#define EL_INTERNAL_CASCADE_DYNAMIC (EL_FIRST_INTERNAL + 40) +#define EL_INTERNAL_CASCADE_DYNAMIC_ACTIVE (EL_FIRST_INTERNAL + 41) #define EL_INTERNAL_CLIPBOARD_START (EL_FIRST_INTERNAL + 0) #define EL_INTERNAL_CLIPBOARD_END (EL_FIRST_INTERNAL + 2) #define EL_INTERNAL_START (EL_FIRST_INTERNAL + 0) -#define EL_INTERNAL_END (EL_FIRST_INTERNAL + 39) +#define EL_INTERNAL_END (EL_FIRST_INTERNAL + 41) -#define MAX_NUM_ELEMENTS (EL_FIRST_INTERNAL + 40) +#define MAX_NUM_ELEMENTS (EL_FIRST_INTERNAL + 42) // values for graphics/sounds action types diff --git a/src/screens.c b/src/screens.c index fc344373..8b631b7b 100644 --- a/src/screens.c +++ b/src/screens.c @@ -7493,6 +7493,7 @@ static struct TokenInfo setup_info_editor[] = { #if 0 { TYPE_SWITCH, &setup.editor.el_boulderdash, "Boulder Dash:" }, + { TYPE_SWITCH, &setup.editor.el_boulderdash_native, "Boulder Dash Native:" }, { TYPE_SWITCH, &setup.editor.el_emerald_mine, "Emerald Mine:" }, { TYPE_SWITCH, &setup.editor.el_emerald_mine_club, "Emerald Mine Club:" }, { TYPE_SWITCH, &setup.editor.el_more, "Rocks'n'Diamonds:" }, -- 2.34.1