From: Holger Schemel Date: Sun, 29 Sep 2024 11:36:03 +0000 (+0200) Subject: added new game element "light rock" to native BD game engine X-Git-Tag: 4.4.0.0-test-4~185 X-Git-Url: https://git.artsoft.org/?a=commitdiff_plain;h=6bb4ad0cad5451378ae6c920cad57f7a141ec53a;p=rocksndiamonds.git added new game element "light rock" to native BD game engine --- diff --git a/docs/elements/bdx_light_rock.txt b/docs/elements/bdx_light_rock.txt new file mode 100644 index 00000000..04cfd9c2 --- /dev/null +++ b/docs/elements/bdx_light_rock.txt @@ -0,0 +1 @@ +Like an ordinary rock, but this one is so light that you can push it without delay. diff --git a/graphics/gfx_classic/RocksBD.png b/graphics/gfx_classic/RocksBD.png index 51dd2b6e..6d30f480 100644 Binary files a/graphics/gfx_classic/RocksBD.png and b/graphics/gfx_classic/RocksBD.png differ diff --git a/graphics/gfx_classic/RocksBD2.png b/graphics/gfx_classic/RocksBD2.png index 434e6848..733c5ff4 100644 Binary files a/graphics/gfx_classic/RocksBD2.png and b/graphics/gfx_classic/RocksBD2.png differ diff --git a/src/conf_gfx.c b/src/conf_gfx.c index 4ef10337..37edabc4 100644 --- a/src/conf_gfx.c +++ b/src/conf_gfx.c @@ -812,6 +812,14 @@ struct ConfigInfo image_config[] = { "bdx_heavy_rock.falling.EDITOR.xpos", "2" }, { "bdx_heavy_rock.falling.EDITOR.ypos", "3" }, + { "bdx_light_rock", "RocksBD.png" }, + { "bdx_light_rock.xpos", "11" }, + { "bdx_light_rock.ypos", "4" }, + { "bdx_light_rock.frames", "1" }, + { "bdx_light_rock.falling.EDITOR", "RocksBD2.png" }, + { "bdx_light_rock.falling.EDITOR.xpos", "5" }, + { "bdx_light_rock.falling.EDITOR.ypos", "3" }, + { "bdx_rock_glued", UNDEFINED_FILENAME }, { "bdx_rock_glued.clone_from", "bd_rock" }, { "bdx_rock_glued.EDITOR", "RocksBD2.png" }, diff --git a/src/conf_snd.c b/src/conf_snd.c index 1b912f2b..1d7b847b 100644 --- a/src/conf_snd.c +++ b/src/conf_snd.c @@ -83,6 +83,9 @@ struct ConfigInfo sound_config[] = { "bdx_heavy_rock.pushing", "pusch.wav" }, { "bdx_heavy_rock.falling", "klopf.wav" }, { "bdx_heavy_rock.impact", "klopf.wav" }, + { "bdx_light_rock.pushing", "pusch.wav" }, + { "bdx_light_rock.falling", "klopf.wav" }, + { "bdx_light_rock.impact", "klopf.wav" }, { "bdx_waiting_rock.pushing", "pusch.wav" }, { "bdx_chasing_rock.pushing", "pusch.wav" }, { "bdx_nut.pushing", "knurk.wav" }, diff --git a/src/editor.c b/src/editor.c index 9f2037e1..716cb3d9 100644 --- a/src/editor.c +++ b/src/editor.c @@ -632,6 +632,7 @@ enum GADGET_ID_BD_MAGIC_WALL_DIAMOND_TO, GADGET_ID_BD_MAGIC_WALL_ROCK_TO, GADGET_ID_BD_MAGIC_WALL_HEAVY_ROCK_TO, + GADGET_ID_BD_MAGIC_WALL_LIGHT_ROCK_TO, GADGET_ID_BD_MAGIC_WALL_NUT_TO, GADGET_ID_BD_MAGIC_WALL_NITRO_PACK_TO, GADGET_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO, @@ -1370,6 +1371,7 @@ enum ED_DRAWING_ID_BD_MAGIC_WALL_DIAMOND_TO, ED_DRAWING_ID_BD_MAGIC_WALL_ROCK_TO, ED_DRAWING_ID_BD_MAGIC_WALL_HEAVY_ROCK_TO, + ED_DRAWING_ID_BD_MAGIC_WALL_LIGHT_ROCK_TO, ED_DRAWING_ID_BD_MAGIC_WALL_NUT_TO, ED_DRAWING_ID_BD_MAGIC_WALL_NITRO_PACK_TO, ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO, @@ -4955,16 +4957,24 @@ static struct "Changes heavy rocks to:", NULL, NULL, NULL, "Element to turn heavy rocks to" }, { - ED_DRAWING_ID_BD_MAGIC_WALL_NUT_TO, + ED_DRAWING_ID_BD_MAGIC_WALL_LIGHT_ROCK_TO, ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(9), ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF, + GADGET_ID_BD_MAGIC_WALL_LIGHT_ROCK_TO, GADGET_ID_NONE, + &level.bd_magic_wall_light_rock_to, 1, 1, + "Changes light rocks to:", NULL, NULL, NULL, "Element to turn light rocks to" + }, + { + ED_DRAWING_ID_BD_MAGIC_WALL_NUT_TO, + ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(10), + ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF, GADGET_ID_BD_MAGIC_WALL_NUT_TO, GADGET_ID_NONE, &level.bd_magic_wall_nut_to, 1, 1, "Changes nuts to:", NULL, NULL, NULL, "Element to turn nuts to" }, { ED_DRAWING_ID_BD_MAGIC_WALL_NITRO_PACK_TO, - ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(10), + ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(11), ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF, GADGET_ID_BD_MAGIC_WALL_NITRO_PACK_TO, GADGET_ID_NONE, &level.bd_magic_wall_nitro_pack_to, 1, 1, @@ -4972,7 +4982,7 @@ static struct }, { ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO, - ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(11), + ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(12), ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF, GADGET_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO, GADGET_ID_NONE, &level.bd_magic_wall_flying_diamond_to, 1, 1, @@ -4980,7 +4990,7 @@ static struct }, { ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_ROCK_TO, - ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(12), + ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(13), ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF, GADGET_ID_BD_MAGIC_WALL_FLYING_ROCK_TO, GADGET_ID_NONE, &level.bd_magic_wall_flying_rock_to, 1, 1, @@ -5713,7 +5723,7 @@ static int editor_el_boulderdash_native[] = EL_BDX_STEELWALL_SLOPED_DOWN_RIGHT, EL_BDX_HEAVY_ROCK, - EL_BDX_SWEET, + EL_BDX_LIGHT_ROCK, EL_BDX_INVISIBLE_EXIT_CLOSED, EL_BDX_INVISIBLE_EXIT_OPEN, @@ -5743,7 +5753,7 @@ static int editor_el_boulderdash_native[] = EL_BDX_CONVEYOR_DIR_SWITCH, EL_BDX_CLOCK, - EL_EMPTY, + EL_BDX_SWEET, EL_BDX_GRAVESTONE, EL_BDX_SKELETON, @@ -5790,16 +5800,16 @@ static int editor_el_boulderdash_effects[] = EL_BDX_DIAMOND_FALLING, EL_BDX_ROCK_FALLING, EL_BDX_HEAVY_ROCK_FALLING, - EL_BDX_FLYING_DIAMOND_FLYING, + EL_BDX_LIGHT_ROCK_FALLING, - EL_BDX_FALLING_WALL_FALLING, - EL_BDX_NITRO_PACK_FALLING, - EL_BDX_NUT_FALLING, + EL_BDX_FLYING_DIAMOND_FLYING, EL_BDX_FLYING_ROCK_FLYING, + EL_BDX_NUT_FALLING, + EL_BDX_NITRO_PACK_FALLING, EL_BDX_SAND_BALL_FALLING, EL_BDX_SAND_LOOSE_FALLING, - EL_EMPTY, + EL_BDX_FALLING_WALL_FALLING, EL_EMPTY, EL_BDX_PLAYER_GROWING_1, @@ -5949,13 +5959,18 @@ static int editor_el_boulderdash_scanned[] = EL_BDX_HEAVY_ROCK_SCANNED, EL_BDX_HEAVY_ROCK_FALLING_SCANNED, + EL_BDX_LIGHT_ROCK_SCANNED, + EL_BDX_LIGHT_ROCK_FALLING_SCANNED, + EL_BDX_DIAMOND_SCANNED, EL_BDX_DIAMOND_FALLING_SCANNED, - EL_BDX_FLYING_DIAMOND_SCANNED, EL_BDX_FLYING_DIAMOND_FLYING_SCANNED, + EL_BDX_NUT_SCANNED, EL_BDX_NUT_FALLING_SCANNED, + EL_EMPTY, + EL_EMPTY, EL_BDX_EXPANDABLE_WALL_HORIZONTAL_SCANNED, EL_BDX_EXPANDABLE_WALL_VERTICAL_SCANNED, @@ -12774,6 +12789,7 @@ static void DrawPropertiesConfig(void) MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_DIAMOND_TO); MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_ROCK_TO); MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_HEAVY_ROCK_TO); + MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_LIGHT_ROCK_TO); MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_NUT_TO); MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_NITRO_PACK_TO); MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO); diff --git a/src/files.c b/src/files.c index d2573403..e999cb6c 100644 --- a/src/files.c +++ b/src/files.c @@ -816,21 +816,26 @@ static struct LevelFileConfigInfo chunk_config_ELEM[] = { EL_BDX_MAGIC_WALL, -1, TYPE_ELEMENT, CONF_VALUE_16_BIT(5), - &li.bd_magic_wall_nut_to, EL_BDX_NUT_FALLING + &li.bd_magic_wall_light_rock_to, EL_BDX_LIGHT_ROCK_FALLING }, { EL_BDX_MAGIC_WALL, -1, TYPE_ELEMENT, CONF_VALUE_16_BIT(6), - &li.bd_magic_wall_nitro_pack_to, EL_BDX_HEAVY_ROCK_FALLING + &li.bd_magic_wall_nut_to, EL_BDX_NUT_FALLING }, { EL_BDX_MAGIC_WALL, -1, TYPE_ELEMENT, CONF_VALUE_16_BIT(7), - &li.bd_magic_wall_flying_diamond_to, EL_BDX_FLYING_ROCK_FLYING + &li.bd_magic_wall_nitro_pack_to, EL_BDX_HEAVY_ROCK_FALLING }, { EL_BDX_MAGIC_WALL, -1, TYPE_ELEMENT, CONF_VALUE_16_BIT(8), + &li.bd_magic_wall_flying_diamond_to, EL_BDX_FLYING_ROCK_FLYING + }, + { + EL_BDX_MAGIC_WALL, -1, + TYPE_ELEMENT, CONF_VALUE_16_BIT(9), &li.bd_magic_wall_flying_rock_to, EL_BDX_FLYING_DIAMOND_FLYING }, @@ -4362,6 +4367,7 @@ static void CopyNativeLevel_RND_to_BD(struct LevelInfo *level) cave->magic_diamond_to = LEVEL_TO_CAVE(level->bd_magic_wall_diamond_to); cave->magic_stone_to = LEVEL_TO_CAVE(level->bd_magic_wall_rock_to); cave->magic_mega_stone_to = LEVEL_TO_CAVE(level->bd_magic_wall_heavy_rock_to); + cave->magic_light_stone_to = LEVEL_TO_CAVE(level->bd_magic_wall_light_rock_to); cave->magic_nut_to = LEVEL_TO_CAVE(level->bd_magic_wall_nut_to); cave->magic_nitro_pack_to = LEVEL_TO_CAVE(level->bd_magic_wall_nitro_pack_to); cave->magic_flying_diamond_to = LEVEL_TO_CAVE(level->bd_magic_wall_flying_diamond_to); @@ -4546,6 +4552,7 @@ static void CopyNativeLevel_BD_to_RND(struct LevelInfo *level) level->bd_magic_wall_diamond_to = CAVE_TO_LEVEL(cave->magic_diamond_to); level->bd_magic_wall_rock_to = CAVE_TO_LEVEL(cave->magic_stone_to); level->bd_magic_wall_heavy_rock_to = CAVE_TO_LEVEL(cave->magic_mega_stone_to); + level->bd_magic_wall_light_rock_to = CAVE_TO_LEVEL(cave->magic_light_stone_to); level->bd_magic_wall_nut_to = CAVE_TO_LEVEL(cave->magic_nut_to); level->bd_magic_wall_nitro_pack_to = CAVE_TO_LEVEL(cave->magic_nitro_pack_to); level->bd_magic_wall_flying_diamond_to= CAVE_TO_LEVEL(cave->magic_flying_diamond_to); diff --git a/src/game.c b/src/game.c index a9e5ae96..9866f900 100644 --- a/src/game.c +++ b/src/game.c @@ -15633,6 +15633,7 @@ static int getSoundAction_BD(int sample) { case GD_S_STONE_PUSHING: case GD_S_MEGA_STONE_PUSHING: + case GD_S_LIGHT_STONE_PUSHING: case GD_S_FLYING_STONE_PUSHING: case GD_S_WAITING_STONE_PUSHING: case GD_S_CHASING_STONE_PUSHING: @@ -15644,6 +15645,7 @@ static int getSoundAction_BD(int sample) case GD_S_STONE_FALLING: case GD_S_MEGA_STONE_FALLING: + case GD_S_LIGHT_STONE_FALLING: case GD_S_FLYING_STONE_FALLING: case GD_S_NUT_FALLING: case GD_S_DIRT_BALL_FALLING: @@ -15654,6 +15656,7 @@ static int getSoundAction_BD(int sample) case GD_S_STONE_IMPACT: case GD_S_MEGA_STONE_IMPACT: + case GD_S_LIGHT_STONE_IMPACT: case GD_S_FLYING_STONE_IMPACT: case GD_S_NUT_IMPACT: case GD_S_DIRT_BALL_IMPACT: diff --git a/src/game_bd/bd_cave.c b/src/game_bd/bd_cave.c index 068a588e..f85088fd 100644 --- a/src/game_bd/bd_cave.c +++ b/src/game_bd/bd_cave.c @@ -1854,6 +1854,7 @@ void gd_unscan_cave(GdCave *cave) cave->magic_diamond_to = non_scanned_pair(cave->magic_diamond_to); cave->magic_stone_to = non_scanned_pair(cave->magic_stone_to); cave->magic_mega_stone_to = non_scanned_pair(cave->magic_mega_stone_to); + cave->magic_light_stone_to = non_scanned_pair(cave->magic_light_stone_to); cave->magic_nut_to = non_scanned_pair(cave->magic_nut_to); cave->magic_nitro_pack_to = non_scanned_pair(cave->magic_nitro_pack_to); cave->magic_flying_diamond_to = non_scanned_pair(cave->magic_flying_diamond_to); diff --git a/src/game_bd/bd_cave.h b/src/game_bd/bd_cave.h index b5ca6391..91d46cb6 100644 --- a/src/game_bd/bd_cave.h +++ b/src/game_bd/bd_cave.h @@ -525,6 +525,7 @@ typedef struct _gd_cave GdElement magic_stone_to; // magic wall converts falling stone to GdElement magic_diamond_to; // magic wall converts falling diamond to GdElement magic_mega_stone_to; // magic wall converts a falling mega stone to + GdElement magic_light_stone_to; // magic wall converts a falling light stone to GdElement magic_nitro_pack_to; // magic wall converts a falling nitro pack to GdElement magic_nut_to; // magic wall converts a falling nut to GdElement magic_flying_stone_to; // flying stones are converted to diff --git a/src/game_bd/bd_cavedb.c b/src/game_bd/bd_cavedb.c index e328b9d7..247ea53e 100644 --- a/src/game_bd/bd_cavedb.c +++ b/src/game_bd/bd_cavedb.c @@ -46,6 +46,7 @@ enum _generated_cells_indexes i_h_expanding_steel_wall, i_v_expanding_steel_wall, i_mega_stone_falling, + i_light_stone_falling, i_time_penalty, i_biter_1, i_biter_2, @@ -348,6 +349,26 @@ GdElementProperty gd_element_properties[] = P_SCANNED, "SCANN_MEGABOULDERf", 0, i_mega_stone_falling, i_mega_stone_falling, 272 }, + { + O_LIGHT_STONE, O_LIGHT_STONE_scanned, N_("Light stone"), + P_SLOPED | P_MOVED_BY_CONVEYOR_TOP | P_PUSHABLE | P_CAN_FALL, + "LIGHTBOULDER", 0, 359, 359, 359, 156 + }, // has ckdelay + { + O_LIGHT_STONE_scanned, O_LIGHT_STONE, N_("Light stone (scanned)"), + P_SCANNED, + "SCANN_LIGHTBOULDER", 0, 359, 359, 359 + }, + { + O_LIGHT_STONE_F, O_LIGHT_STONE_F_scanned, N_("Light stone, falling"), + P_FALLING, + "LIGHTBOULDERf", 0, i_light_stone_falling, i_light_stone_falling, 359, 156 + }, // has ckdelay + { + O_LIGHT_STONE_F_scanned, O_LIGHT_STONE_F, N_("Light stone, falling (scanned)"), + P_SCANNED, + "SCANN_LIGHTBOULDERf", 0, i_light_stone_falling, i_light_stone_falling, 359 + }, { O_DIAMOND, O_DIAMOND_scanned, N_("Diamond"), P_SLOPED | P_MOVED_BY_CONVEYOR_TOP | P_COLLECTIBLE | P_CAN_FALL, @@ -2480,6 +2501,11 @@ const GdStructDescriptor gd_cave_properties[] = N_("Mega stone to"), CAVE_OFFSET(magic_mega_stone_to), 1, N_("If a mega stone falls into the magic wall, it will drop this element.") }, + { + "MagicWallProperties.lightstoneto", GD_TYPE_ELEMENT, 0, + N_("Light stone to"), CAVE_OFFSET(magic_light_stone_to), 1, + N_("If a light stone falls into the magic wall, it will drop this element.") + }, { "MagicWallProperties.nitropackto", GD_TYPE_ELEMENT, 0, N_("Nitro pack to"), CAVE_OFFSET(magic_nitro_pack_to), 1, @@ -3112,6 +3138,7 @@ GdPropertyDefault gd_cave_defaults_gdash[] = { CAVE_OFFSET(magic_diamond_to), O_STONE_F }, { CAVE_OFFSET(magic_stone_to), O_DIAMOND_F }, { CAVE_OFFSET(magic_mega_stone_to), O_NITRO_PACK_F }, + { CAVE_OFFSET(magic_light_stone_to), O_LIGHT_STONE_F }, { CAVE_OFFSET(magic_nitro_pack_to), O_MEGA_STONE_F }, { CAVE_OFFSET(magic_nut_to), O_NUT_F }, { CAVE_OFFSET(magic_flying_stone_to), O_FLYING_DIAMOND_F }, diff --git a/src/game_bd/bd_caveengine.c b/src/game_bd/bd_caveengine.c index 1d887030..99880bbb 100644 --- a/src/game_bd/bd_caveengine.c +++ b/src/game_bd/bd_caveengine.c @@ -170,6 +170,14 @@ static void play_sound_of_element(GdCave *cave, GdElement element, int x, int y) gd_sound_play(cave, GD_S_MEGA_STONE_IMPACT, element, x, y); break; + case O_LIGHT_STONE: + gd_sound_play(cave, GD_S_LIGHT_STONE_FALLING, element, x, y); + break; + + case O_LIGHT_STONE_F: + gd_sound_play(cave, GD_S_LIGHT_STONE_IMPACT, element, x, y); + break; + case O_NITRO_PACK: gd_sound_play(cave, GD_S_NITRO_PACK_FALLING, element, x, y); break; @@ -285,6 +293,10 @@ static void play_sound_of_element_pushing(GdCave *cave, GdElement element, int x gd_sound_play(cave, GD_S_MEGA_STONE_PUSHING, element, x, y); break; + case O_LIGHT_STONE: + gd_sound_play(cave, GD_S_LIGHT_STONE_PUSHING, element, x, y); + break; + case O_WAITING_STONE: gd_sound_play(cave, GD_S_WAITING_STONE_PUSHING, element, x, y); break; @@ -1238,6 +1250,7 @@ static boolean do_push(GdCave *cave, int x, int y, GdDirection player_move, bool case O_NITRO_PACK: case O_CHASING_STONE: case O_MEGA_STONE: + case O_LIGHT_STONE: case O_FLYING_STONE: case O_NUT: // pushing some kind of stone or nut @@ -1269,6 +1282,11 @@ static boolean do_push(GdCave *cave, int x, int y, GdDirection player_move, bool prob = 1000000; // p = 1, always push break; + case O_LIGHT_STONE: + // light stones are light, can always push + prob = 1000000; + break; + case O_STONE: case O_NUT: case O_FLYING_STONE: @@ -2297,6 +2315,10 @@ void gd_cave_iterate(GdCave *cave, GdDirection player_move, boolean player_fire, do_start_fall(cave, x, y, cave->gravity, O_MEGA_STONE_F); break; + case O_LIGHT_STONE: // standing light_stone + do_start_fall(cave, x, y, cave->gravity, O_LIGHT_STONE_F); + break; + case O_DIAMOND: // standing diamond do_start_fall(cave, x, y, cave->gravity, cave->diamond_falling_effect); break; @@ -2374,6 +2396,25 @@ void gd_cave_iterate(GdCave *cave, GdDirection player_move, boolean player_fire, } break; + case O_LIGHT_STONE_F: // falling light stone + if (!cave->gravity_disabled) + { + if (do_fall_try_crush_voodoo(cave, x, y, cave->gravity)) + break; + + if (do_fall_try_crack_nut(cave, x, y, cave->gravity, O_LIGHT_STONE)) + break; + + if (do_fall_try_magic(cave, x, y, cave->gravity, cave->magic_light_stone_to)) + break; + + if (do_fall_try_crush(cave, x, y, cave->gravity)) + break; + + do_fall_roll_or_stop(cave, x, y, cave->gravity, O_LIGHT_STONE); + } + break; + case O_DIAMOND_F: // falling diamond if (!cave->gravity_disabled) { diff --git a/src/game_bd/bd_elements.h b/src/game_bd/bd_elements.h index d318699e..ad594c46 100644 --- a/src/game_bd/bd_elements.h +++ b/src/game_bd/bd_elements.h @@ -71,6 +71,10 @@ typedef enum _element O_MEGA_STONE_scanned, O_MEGA_STONE_F, O_MEGA_STONE_F_scanned, + O_LIGHT_STONE, + O_LIGHT_STONE_scanned, + O_LIGHT_STONE_F, + O_LIGHT_STONE_F_scanned, O_DIAMOND, O_DIAMOND_scanned, O_DIAMOND_F, @@ -418,6 +422,9 @@ typedef enum _sound GD_S_MEGA_STONE_PUSHING, GD_S_MEGA_STONE_FALLING, GD_S_MEGA_STONE_IMPACT, + GD_S_LIGHT_STONE_PUSHING, + GD_S_LIGHT_STONE_FALLING, + GD_S_LIGHT_STONE_IMPACT, GD_S_FLYING_STONE_PUSHING, GD_S_FLYING_STONE_FALLING, GD_S_FLYING_STONE_IMPACT, diff --git a/src/game_bd/bd_sound.c b/src/game_bd/bd_sound.c index e1bdfc4d..5468cb72 100644 --- a/src/game_bd/bd_sound.c +++ b/src/game_bd/bd_sound.c @@ -81,6 +81,9 @@ static SoundProperty sound_flags[] = { GD_S_MEGA_STONE_PUSHING, 1, 10 }, { GD_S_MEGA_STONE_FALLING, 1, 10 }, { GD_S_MEGA_STONE_IMPACT, 1, 10 }, + { GD_S_LIGHT_STONE_PUSHING, 1, 10 }, + { GD_S_LIGHT_STONE_FALLING, 1, 10 }, + { GD_S_LIGHT_STONE_IMPACT, 1, 10 }, { GD_S_FLYING_STONE_PUSHING, 1, 10 }, { GD_S_FLYING_STONE_FALLING, 1, 10 }, { GD_S_FLYING_STONE_IMPACT, 1, 10 }, diff --git a/src/main.c b/src/main.c index bda0cd4f..ea86e5d7 100644 --- a/src/main.c +++ b/src/main.c @@ -7237,6 +7237,11 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = "bdx_magic_wall", "Magic wall" }, + { + "bdx_light_rock", + "bdx_light_rock", + "Light rock" + }, { "bdx_sand_ball.falling", "bdx_sand_ball", @@ -7262,6 +7267,11 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = "bdx_heavy_rock", "Heavy rock (falling)" }, + { + "bdx_light_rock.falling", + "bdx_light_rock", + "Light rock (falling)" + }, { "bdx_diamond.falling", "bdx_diamond", @@ -7757,6 +7767,16 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = "bdx_heavy_rock", "Heavy rock (falling) (scanned)" }, + { + "bdx_light_rock.scanned", + "bdx_light_rock", + "Light rock (scanned)" + }, + { + "bdx_light_rock.falling.scanned", + "bdx_light_rock", + "Light rock (falling) (scanned)" + }, { "bdx_diamond.scanned", "bdx_diamond", diff --git a/src/main.h b/src/main.h index c311346f..36096060 100644 --- a/src/main.h +++ b/src/main.h @@ -2244,195 +2244,199 @@ #define EL_BDX_ROCK 1405 #define EL_BDX_DIAMOND 1406 #define EL_BDX_MAGIC_WALL 1407 +#define EL_BDX_LIGHT_ROCK 1408 // BD style elements (effects/scanned; runtime elements, but can also be stored in level file) -#define EL_BDX_RUNTIME_START 1408 +#define EL_BDX_RUNTIME_START 1409 #define EL_BDX_EFFECTS_START EL_BDX_RUNTIME_START #define EL_BDX_SAND_BALL_FALLING EL_BDX_EFFECTS_START -#define EL_BDX_SAND_LOOSE_FALLING 1409 -#define EL_BDX_ROCK_FALLING 1410 -#define EL_BDX_FLYING_ROCK_FLYING 1411 -#define EL_BDX_HEAVY_ROCK_FALLING 1412 -#define EL_BDX_DIAMOND_FALLING 1413 -#define EL_BDX_FLYING_DIAMOND_FLYING 1414 -#define EL_BDX_NUT_FALLING 1415 -#define EL_BDX_FALLING_WALL_FALLING 1416 -#define EL_BDX_NITRO_PACK_FALLING 1417 -#define EL_BDX_WATER_1 1418 -#define EL_BDX_WATER_2 1419 -#define EL_BDX_WATER_3 1420 -#define EL_BDX_WATER_4 1421 -#define EL_BDX_WATER_5 1422 -#define EL_BDX_WATER_6 1423 -#define EL_BDX_WATER_7 1424 -#define EL_BDX_WATER_8 1425 -#define EL_BDX_WATER_9 1426 -#define EL_BDX_WATER_10 1427 -#define EL_BDX_WATER_11 1428 -#define EL_BDX_WATER_12 1429 -#define EL_BDX_WATER_13 1430 -#define EL_BDX_WATER_14 1431 -#define EL_BDX_WATER_15 1432 -#define EL_BDX_WATER_16 1433 -#define EL_BDX_COW_ENCLOSED_1 1434 -#define EL_BDX_COW_ENCLOSED_2 1435 -#define EL_BDX_COW_ENCLOSED_3 1436 -#define EL_BDX_COW_ENCLOSED_4 1437 -#define EL_BDX_COW_ENCLOSED_5 1438 -#define EL_BDX_COW_ENCLOSED_6 1439 -#define EL_BDX_COW_ENCLOSED_7 1440 -#define EL_BDX_BUBBLE_1 1441 -#define EL_BDX_BUBBLE_2 1442 -#define EL_BDX_BUBBLE_3 1443 -#define EL_BDX_BUBBLE_4 1444 -#define EL_BDX_BUBBLE_5 1445 -#define EL_BDX_BUBBLE_6 1446 -#define EL_BDX_BUBBLE_7 1447 -#define EL_BDX_BUBBLE_8 1448 -#define EL_BDX_PLAYER_GROWING_1 1449 -#define EL_BDX_PLAYER_GROWING_2 1450 -#define EL_BDX_PLAYER_GROWING_3 1451 -#define EL_BDX_BOMB_TICKING_1 1452 -#define EL_BDX_BOMB_TICKING_2 1453 -#define EL_BDX_BOMB_TICKING_3 1454 -#define EL_BDX_BOMB_TICKING_4 1455 -#define EL_BDX_BOMB_TICKING_5 1456 -#define EL_BDX_BOMB_TICKING_6 1457 -#define EL_BDX_BOMB_TICKING_7 1458 -#define EL_BDX_CLOCK_GROWING_1 1459 -#define EL_BDX_CLOCK_GROWING_2 1460 -#define EL_BDX_CLOCK_GROWING_3 1461 -#define EL_BDX_CLOCK_GROWING_4 1462 -#define EL_BDX_DIAMOND_GROWING_1 1463 -#define EL_BDX_DIAMOND_GROWING_2 1464 -#define EL_BDX_DIAMOND_GROWING_3 1465 -#define EL_BDX_DIAMOND_GROWING_4 1466 -#define EL_BDX_DIAMOND_GROWING_5 1467 -#define EL_BDX_EXPLODING_1 1468 -#define EL_BDX_EXPLODING_2 1469 -#define EL_BDX_EXPLODING_3 1470 -#define EL_BDX_EXPLODING_4 1471 -#define EL_BDX_EXPLODING_5 1472 -#define EL_BDX_ROCK_GROWING_1 1473 -#define EL_BDX_ROCK_GROWING_2 1474 -#define EL_BDX_ROCK_GROWING_3 1475 -#define EL_BDX_ROCK_GROWING_4 1476 -#define EL_BDX_STEELWALL_GROWING_1 1477 -#define EL_BDX_STEELWALL_GROWING_2 1478 -#define EL_BDX_STEELWALL_GROWING_3 1479 -#define EL_BDX_STEELWALL_GROWING_4 1480 -#define EL_BDX_GHOST_EXPLODING_1 1481 -#define EL_BDX_GHOST_EXPLODING_2 1482 -#define EL_BDX_GHOST_EXPLODING_3 1483 -#define EL_BDX_GHOST_EXPLODING_4 1484 -#define EL_BDX_BOMB_EXPLODING_1 1485 -#define EL_BDX_BOMB_EXPLODING_2 1486 -#define EL_BDX_BOMB_EXPLODING_3 1487 -#define EL_BDX_BOMB_EXPLODING_4 1488 -#define EL_BDX_NITRO_PACK_EXPLODING 1489 -#define EL_BDX_NITRO_PACK_EXPLODING_1 1490 -#define EL_BDX_NITRO_PACK_EXPLODING_2 1491 -#define EL_BDX_NITRO_PACK_EXPLODING_3 1492 -#define EL_BDX_NITRO_PACK_EXPLODING_4 1493 -#define EL_BDX_AMOEBA_2_EXPLODING_1 1494 -#define EL_BDX_AMOEBA_2_EXPLODING_2 1495 -#define EL_BDX_AMOEBA_2_EXPLODING_3 1496 -#define EL_BDX_AMOEBA_2_EXPLODING_4 1497 -#define EL_BDX_NUT_BREAKING_1 1498 -#define EL_BDX_NUT_BREAKING_2 1499 -#define EL_BDX_NUT_BREAKING_3 1500 -#define EL_BDX_NUT_BREAKING_4 1501 +#define EL_BDX_SAND_LOOSE_FALLING 1410 +#define EL_BDX_ROCK_FALLING 1411 +#define EL_BDX_FLYING_ROCK_FLYING 1412 +#define EL_BDX_HEAVY_ROCK_FALLING 1413 +#define EL_BDX_LIGHT_ROCK_FALLING 1414 +#define EL_BDX_DIAMOND_FALLING 1415 +#define EL_BDX_FLYING_DIAMOND_FLYING 1416 +#define EL_BDX_NUT_FALLING 1417 +#define EL_BDX_FALLING_WALL_FALLING 1418 +#define EL_BDX_NITRO_PACK_FALLING 1419 +#define EL_BDX_WATER_1 1420 +#define EL_BDX_WATER_2 1421 +#define EL_BDX_WATER_3 1422 +#define EL_BDX_WATER_4 1423 +#define EL_BDX_WATER_5 1424 +#define EL_BDX_WATER_6 1425 +#define EL_BDX_WATER_7 1426 +#define EL_BDX_WATER_8 1427 +#define EL_BDX_WATER_9 1428 +#define EL_BDX_WATER_10 1429 +#define EL_BDX_WATER_11 1430 +#define EL_BDX_WATER_12 1431 +#define EL_BDX_WATER_13 1432 +#define EL_BDX_WATER_14 1433 +#define EL_BDX_WATER_15 1434 +#define EL_BDX_WATER_16 1435 +#define EL_BDX_COW_ENCLOSED_1 1436 +#define EL_BDX_COW_ENCLOSED_2 1437 +#define EL_BDX_COW_ENCLOSED_3 1438 +#define EL_BDX_COW_ENCLOSED_4 1439 +#define EL_BDX_COW_ENCLOSED_5 1440 +#define EL_BDX_COW_ENCLOSED_6 1441 +#define EL_BDX_COW_ENCLOSED_7 1442 +#define EL_BDX_BUBBLE_1 1443 +#define EL_BDX_BUBBLE_2 1444 +#define EL_BDX_BUBBLE_3 1445 +#define EL_BDX_BUBBLE_4 1446 +#define EL_BDX_BUBBLE_5 1447 +#define EL_BDX_BUBBLE_6 1448 +#define EL_BDX_BUBBLE_7 1449 +#define EL_BDX_BUBBLE_8 1450 +#define EL_BDX_PLAYER_GROWING_1 1451 +#define EL_BDX_PLAYER_GROWING_2 1452 +#define EL_BDX_PLAYER_GROWING_3 1453 +#define EL_BDX_BOMB_TICKING_1 1454 +#define EL_BDX_BOMB_TICKING_2 1455 +#define EL_BDX_BOMB_TICKING_3 1456 +#define EL_BDX_BOMB_TICKING_4 1457 +#define EL_BDX_BOMB_TICKING_5 1458 +#define EL_BDX_BOMB_TICKING_6 1459 +#define EL_BDX_BOMB_TICKING_7 1460 +#define EL_BDX_CLOCK_GROWING_1 1461 +#define EL_BDX_CLOCK_GROWING_2 1462 +#define EL_BDX_CLOCK_GROWING_3 1463 +#define EL_BDX_CLOCK_GROWING_4 1464 +#define EL_BDX_DIAMOND_GROWING_1 1465 +#define EL_BDX_DIAMOND_GROWING_2 1466 +#define EL_BDX_DIAMOND_GROWING_3 1467 +#define EL_BDX_DIAMOND_GROWING_4 1468 +#define EL_BDX_DIAMOND_GROWING_5 1469 +#define EL_BDX_EXPLODING_1 1470 +#define EL_BDX_EXPLODING_2 1471 +#define EL_BDX_EXPLODING_3 1472 +#define EL_BDX_EXPLODING_4 1473 +#define EL_BDX_EXPLODING_5 1474 +#define EL_BDX_ROCK_GROWING_1 1475 +#define EL_BDX_ROCK_GROWING_2 1476 +#define EL_BDX_ROCK_GROWING_3 1477 +#define EL_BDX_ROCK_GROWING_4 1478 +#define EL_BDX_STEELWALL_GROWING_1 1479 +#define EL_BDX_STEELWALL_GROWING_2 1480 +#define EL_BDX_STEELWALL_GROWING_3 1481 +#define EL_BDX_STEELWALL_GROWING_4 1482 +#define EL_BDX_GHOST_EXPLODING_1 1483 +#define EL_BDX_GHOST_EXPLODING_2 1484 +#define EL_BDX_GHOST_EXPLODING_3 1485 +#define EL_BDX_GHOST_EXPLODING_4 1486 +#define EL_BDX_BOMB_EXPLODING_1 1487 +#define EL_BDX_BOMB_EXPLODING_2 1488 +#define EL_BDX_BOMB_EXPLODING_3 1489 +#define EL_BDX_BOMB_EXPLODING_4 1490 +#define EL_BDX_NITRO_PACK_EXPLODING 1491 +#define EL_BDX_NITRO_PACK_EXPLODING_1 1492 +#define EL_BDX_NITRO_PACK_EXPLODING_2 1493 +#define EL_BDX_NITRO_PACK_EXPLODING_3 1494 +#define EL_BDX_NITRO_PACK_EXPLODING_4 1495 +#define EL_BDX_AMOEBA_2_EXPLODING_1 1496 +#define EL_BDX_AMOEBA_2_EXPLODING_2 1497 +#define EL_BDX_AMOEBA_2_EXPLODING_3 1498 +#define EL_BDX_AMOEBA_2_EXPLODING_4 1499 +#define EL_BDX_NUT_BREAKING_1 1500 +#define EL_BDX_NUT_BREAKING_2 1501 +#define EL_BDX_NUT_BREAKING_3 1502 +#define EL_BDX_NUT_BREAKING_4 1503 #define EL_BDX_EFFECTS_END EL_BDX_NUT_BREAKING_4 -#define EL_BDX_SCANNED_START 1502 +#define EL_BDX_SCANNED_START 1504 #define EL_BDX_SAND_BALL_SCANNED EL_BDX_SCANNED_START -#define EL_BDX_SAND_BALL_FALLING_SCANNED 1503 -#define EL_BDX_SAND_LOOSE_SCANNED 1504 -#define EL_BDX_SAND_LOOSE_FALLING_SCANNED 1505 -#define EL_BDX_ROCK_SCANNED 1506 -#define EL_BDX_ROCK_FALLING_SCANNED 1507 -#define EL_BDX_FLYING_ROCK_SCANNED 1508 -#define EL_BDX_FLYING_ROCK_FLYING_SCANNED 1509 -#define EL_BDX_HEAVY_ROCK_SCANNED 1510 -#define EL_BDX_HEAVY_ROCK_FALLING_SCANNED 1511 -#define EL_BDX_DIAMOND_SCANNED 1512 -#define EL_BDX_DIAMOND_FALLING_SCANNED 1513 -#define EL_BDX_FLYING_DIAMOND_SCANNED 1514 -#define EL_BDX_FLYING_DIAMOND_FLYING_SCANNED 1515 -#define EL_BDX_NUT_SCANNED 1516 -#define EL_BDX_NUT_FALLING_SCANNED 1517 -#define EL_BDX_EXPANDABLE_WALL_HORIZONTAL_SCANNED 1518 -#define EL_BDX_EXPANDABLE_WALL_VERTICAL_SCANNED 1519 -#define EL_BDX_EXPANDABLE_WALL_ANY_SCANNED 1520 -#define EL_BDX_EXPANDABLE_STEELWALL_HORIZONTAL_SCANNED 1521 -#define EL_BDX_EXPANDABLE_STEELWALL_VERTICAL_SCANNED 1522 -#define EL_BDX_EXPANDABLE_STEELWALL_ANY_SCANNED 1523 -#define EL_BDX_ACID_SCANNED 1524 -#define EL_BDX_FALLING_WALL_FALLING_SCANNED 1525 -#define EL_BDX_COW_LEFT_SCANNED 1526 -#define EL_BDX_COW_UP_SCANNED 1527 -#define EL_BDX_COW_RIGHT_SCANNED 1528 -#define EL_BDX_COW_DOWN_SCANNED 1529 -#define EL_BDX_AMOEBA_1_SCANNED 1530 -#define EL_BDX_AMOEBA_2_SCANNED 1531 -#define EL_BDX_WAITING_ROCK_SCANNED 1532 -#define EL_BDX_CHASING_ROCK_SCANNED 1533 -#define EL_BDX_GHOST_SCANNED 1534 -#define EL_BDX_FIREFLY_1_RIGHT_SCANNED 1535 -#define EL_BDX_FIREFLY_1_UP_SCANNED 1536 -#define EL_BDX_FIREFLY_1_LEFT_SCANNED 1537 -#define EL_BDX_FIREFLY_1_DOWN_SCANNED 1538 -#define EL_BDX_FIREFLY_2_RIGHT_SCANNED 1539 -#define EL_BDX_FIREFLY_2_UP_SCANNED 1540 -#define EL_BDX_FIREFLY_2_LEFT_SCANNED 1541 -#define EL_BDX_FIREFLY_2_DOWN_SCANNED 1542 -#define EL_BDX_BUTTERFLY_1_RIGHT_SCANNED 1543 -#define EL_BDX_BUTTERFLY_1_UP_SCANNED 1544 -#define EL_BDX_BUTTERFLY_1_LEFT_SCANNED 1545 -#define EL_BDX_BUTTERFLY_1_DOWN_SCANNED 1546 -#define EL_BDX_BUTTERFLY_2_RIGHT_SCANNED 1547 -#define EL_BDX_BUTTERFLY_2_UP_SCANNED 1548 -#define EL_BDX_BUTTERFLY_2_LEFT_SCANNED 1549 -#define EL_BDX_BUTTERFLY_2_DOWN_SCANNED 1550 -#define EL_BDX_STONEFLY_RIGHT_SCANNED 1551 -#define EL_BDX_STONEFLY_UP_SCANNED 1552 -#define EL_BDX_STONEFLY_LEFT_SCANNED 1553 -#define EL_BDX_STONEFLY_DOWN_SCANNED 1554 -#define EL_BDX_BITER_RIGHT_SCANNED 1555 -#define EL_BDX_BITER_UP_SCANNED 1556 -#define EL_BDX_BITER_LEFT_SCANNED 1557 -#define EL_BDX_BITER_DOWN_SCANNED 1558 -#define EL_BDX_DRAGONFLY_RIGHT_SCANNED 1559 -#define EL_BDX_DRAGONFLY_UP_SCANNED 1560 -#define EL_BDX_DRAGONFLY_LEFT_SCANNED 1561 -#define EL_BDX_DRAGONFLY_DOWN_SCANNED 1562 -#define EL_BDX_PLAYER_SCANNED 1563 -#define EL_BDX_PLAYER_WITH_BOMB_SCANNED 1564 -#define EL_BDX_PLAYER_WITH_ROCKET_LAUNCHER_SCANNED 1565 -#define EL_BDX_ROCKET_RIGHT_SCANNED 1566 -#define EL_BDX_ROCKET_UP_SCANNED 1567 -#define EL_BDX_ROCKET_LEFT_SCANNED 1568 -#define EL_BDX_ROCKET_DOWN_SCANNED 1569 -#define EL_BDX_NITRO_PACK_SCANNED 1570 -#define EL_BDX_NITRO_PACK_FALLING_SCANNED 1571 -#define EL_BDX_NITRO_PACK_EXPLODING_SCANNED 1572 -#define EL_BDX_CLOCK_GROWING_0 1573 -#define EL_BDX_DIAMOND_GROWING_0 1574 -#define EL_BDX_EXPLODING_0 1575 -#define EL_BDX_ROCK_GROWING_0 1576 -#define EL_BDX_STEELWALL_GROWING_0 1577 -#define EL_BDX_GHOST_EXPLODING_0 1578 -#define EL_BDX_BOMB_EXPLODING_0 1579 -#define EL_BDX_NITRO_PACK_EXPLODING_0 1580 -#define EL_BDX_AMOEBA_2_EXPLODING_0 1581 -#define EL_BDX_NUT_BREAKING_0 1582 +#define EL_BDX_SAND_BALL_FALLING_SCANNED 1505 +#define EL_BDX_SAND_LOOSE_SCANNED 1506 +#define EL_BDX_SAND_LOOSE_FALLING_SCANNED 1507 +#define EL_BDX_ROCK_SCANNED 1508 +#define EL_BDX_ROCK_FALLING_SCANNED 1509 +#define EL_BDX_FLYING_ROCK_SCANNED 1510 +#define EL_BDX_FLYING_ROCK_FLYING_SCANNED 1511 +#define EL_BDX_HEAVY_ROCK_SCANNED 1512 +#define EL_BDX_HEAVY_ROCK_FALLING_SCANNED 1513 +#define EL_BDX_LIGHT_ROCK_SCANNED 1514 +#define EL_BDX_LIGHT_ROCK_FALLING_SCANNED 1515 +#define EL_BDX_DIAMOND_SCANNED 1516 +#define EL_BDX_DIAMOND_FALLING_SCANNED 1517 +#define EL_BDX_FLYING_DIAMOND_SCANNED 1518 +#define EL_BDX_FLYING_DIAMOND_FLYING_SCANNED 1519 +#define EL_BDX_NUT_SCANNED 1520 +#define EL_BDX_NUT_FALLING_SCANNED 1521 +#define EL_BDX_EXPANDABLE_WALL_HORIZONTAL_SCANNED 1522 +#define EL_BDX_EXPANDABLE_WALL_VERTICAL_SCANNED 1523 +#define EL_BDX_EXPANDABLE_WALL_ANY_SCANNED 1524 +#define EL_BDX_EXPANDABLE_STEELWALL_HORIZONTAL_SCANNED 1525 +#define EL_BDX_EXPANDABLE_STEELWALL_VERTICAL_SCANNED 1526 +#define EL_BDX_EXPANDABLE_STEELWALL_ANY_SCANNED 1527 +#define EL_BDX_ACID_SCANNED 1528 +#define EL_BDX_FALLING_WALL_FALLING_SCANNED 1529 +#define EL_BDX_COW_LEFT_SCANNED 1530 +#define EL_BDX_COW_UP_SCANNED 1531 +#define EL_BDX_COW_RIGHT_SCANNED 1532 +#define EL_BDX_COW_DOWN_SCANNED 1533 +#define EL_BDX_AMOEBA_1_SCANNED 1534 +#define EL_BDX_AMOEBA_2_SCANNED 1535 +#define EL_BDX_WAITING_ROCK_SCANNED 1536 +#define EL_BDX_CHASING_ROCK_SCANNED 1537 +#define EL_BDX_GHOST_SCANNED 1538 +#define EL_BDX_FIREFLY_1_RIGHT_SCANNED 1539 +#define EL_BDX_FIREFLY_1_UP_SCANNED 1540 +#define EL_BDX_FIREFLY_1_LEFT_SCANNED 1541 +#define EL_BDX_FIREFLY_1_DOWN_SCANNED 1542 +#define EL_BDX_FIREFLY_2_RIGHT_SCANNED 1543 +#define EL_BDX_FIREFLY_2_UP_SCANNED 1544 +#define EL_BDX_FIREFLY_2_LEFT_SCANNED 1545 +#define EL_BDX_FIREFLY_2_DOWN_SCANNED 1546 +#define EL_BDX_BUTTERFLY_1_RIGHT_SCANNED 1547 +#define EL_BDX_BUTTERFLY_1_UP_SCANNED 1548 +#define EL_BDX_BUTTERFLY_1_LEFT_SCANNED 1549 +#define EL_BDX_BUTTERFLY_1_DOWN_SCANNED 1550 +#define EL_BDX_BUTTERFLY_2_RIGHT_SCANNED 1551 +#define EL_BDX_BUTTERFLY_2_UP_SCANNED 1552 +#define EL_BDX_BUTTERFLY_2_LEFT_SCANNED 1553 +#define EL_BDX_BUTTERFLY_2_DOWN_SCANNED 1554 +#define EL_BDX_STONEFLY_RIGHT_SCANNED 1555 +#define EL_BDX_STONEFLY_UP_SCANNED 1556 +#define EL_BDX_STONEFLY_LEFT_SCANNED 1557 +#define EL_BDX_STONEFLY_DOWN_SCANNED 1558 +#define EL_BDX_BITER_RIGHT_SCANNED 1559 +#define EL_BDX_BITER_UP_SCANNED 1560 +#define EL_BDX_BITER_LEFT_SCANNED 1561 +#define EL_BDX_BITER_DOWN_SCANNED 1562 +#define EL_BDX_DRAGONFLY_RIGHT_SCANNED 1563 +#define EL_BDX_DRAGONFLY_UP_SCANNED 1564 +#define EL_BDX_DRAGONFLY_LEFT_SCANNED 1565 +#define EL_BDX_DRAGONFLY_DOWN_SCANNED 1566 +#define EL_BDX_PLAYER_SCANNED 1567 +#define EL_BDX_PLAYER_WITH_BOMB_SCANNED 1568 +#define EL_BDX_PLAYER_WITH_ROCKET_LAUNCHER_SCANNED 1569 +#define EL_BDX_ROCKET_RIGHT_SCANNED 1570 +#define EL_BDX_ROCKET_UP_SCANNED 1571 +#define EL_BDX_ROCKET_LEFT_SCANNED 1572 +#define EL_BDX_ROCKET_DOWN_SCANNED 1573 +#define EL_BDX_NITRO_PACK_SCANNED 1574 +#define EL_BDX_NITRO_PACK_FALLING_SCANNED 1575 +#define EL_BDX_NITRO_PACK_EXPLODING_SCANNED 1576 +#define EL_BDX_CLOCK_GROWING_0 1577 +#define EL_BDX_DIAMOND_GROWING_0 1578 +#define EL_BDX_EXPLODING_0 1579 +#define EL_BDX_ROCK_GROWING_0 1580 +#define EL_BDX_STEELWALL_GROWING_0 1581 +#define EL_BDX_GHOST_EXPLODING_0 1582 +#define EL_BDX_BOMB_EXPLODING_0 1583 +#define EL_BDX_NITRO_PACK_EXPLODING_0 1584 +#define EL_BDX_AMOEBA_2_EXPLODING_0 1585 +#define EL_BDX_NUT_BREAKING_0 1586 #define EL_BDX_SCANNED_END EL_BDX_NUT_BREAKING_0 #define EL_BDX_RUNTIME_END EL_BDX_SCANNED_END #define EL_BDX_END EL_BDX_RUNTIME_END -#define NUM_FILE_ELEMENTS 1583 +#define NUM_FILE_ELEMENTS 1587 // "real" (and therefore drawable) runtime elements @@ -3807,6 +3811,7 @@ struct LevelInfo 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_heavy_rock_to; // BD magic wall turns heavy rocks to specified element + int bd_magic_wall_light_rock_to; // BD magic wall turns light rocks to specified element int bd_magic_wall_nut_to; // BD magic wall turns nuts to specified element int bd_magic_wall_nitro_pack_to; // BD magic wall turns nitro packs to specified element int bd_magic_wall_flying_diamond_to; // BD magic wall turns flying diamonds to specified element diff --git a/src/tools.c b/src/tools.c index 03229296..626f7dc8 100644 --- a/src/tools.c +++ b/src/tools.c @@ -6316,6 +6316,18 @@ bd_object_mapping_list[] = O_MEGA_STONE_F, FALSE, EL_BDX_HEAVY_ROCK, ACTION_FALLING, -1 }, + { + O_LIGHT_STONE, TRUE, + EL_BDX_LIGHT_ROCK, -1, -1 + }, + { + O_LIGHT_STONE_F, TRUE, + EL_BDX_LIGHT_ROCK_FALLING, -1, -1 + }, + { + O_LIGHT_STONE_F, FALSE, + EL_BDX_LIGHT_ROCK, ACTION_FALLING, -1 + }, { O_DIAMOND, TRUE, EL_BDX_DIAMOND, -1, -1 @@ -7491,6 +7503,14 @@ bd_object_mapping_list[] = O_MEGA_STONE_F_scanned, TRUE, EL_BDX_HEAVY_ROCK_FALLING_SCANNED, -1, -1 }, + { + O_LIGHT_STONE_scanned, TRUE, + EL_BDX_LIGHT_ROCK_SCANNED, -1, -1 + }, + { + O_LIGHT_STONE_F_scanned, TRUE, + EL_BDX_LIGHT_ROCK_FALLING_SCANNED, -1, -1 + }, { O_DIAMOND_scanned, TRUE, EL_BDX_DIAMOND_SCANNED, -1, -1