&li.bd_dragonfly_explodes_to, EL_BD_EXPLODING_1
},
+ {
+ EL_BD_DIAMOND_GROWING_5, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
+ &li.bd_diamond_birth_turns_to, EL_BD_DIAMOND
+ },
+
+ {
+ EL_BD_BOMB_EXPLODING_4, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
+ &li.bd_bomb_explosion_turns_to, EL_BD_WALL
+ },
+
+ {
+ EL_BD_NITRO_PACK_EXPLODING_4, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
+ &li.bd_nitro_explosion_turns_to, EL_EMPTY
+ },
+
+ {
+ EL_BD_EXPLODING_5, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
+ &li.bd_explosion_turns_to, EL_EMPTY
+ },
+
{
EL_BD_MAGIC_WALL, -1,
TYPE_BOOLEAN, CONF_VALUE_8_BIT(1),
TYPE_BOOLEAN, CONF_VALUE_8_BIT(2),
&li.bd_magic_wall_stops_amoeba, TRUE
},
+ {
+ EL_BD_MAGIC_WALL, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(3),
+ &li.bd_magic_wall_zero_infinite, TRUE
+ },
+ {
+ EL_BD_MAGIC_WALL, -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_hammer_walls_reappear_delay, 100
},
+ {
+ EL_BD_ROCKET_LAUNCHER, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(1),
+ &li.bd_infinite_rockets, FALSE
+ },
+
{
EL_BD_SKELETON, -1,
TYPE_INTEGER, CONF_VALUE_8_BIT(1),
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->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->magic_wall_breakscan = level->bd_magic_wall_break_scan;
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->hammered_walls_reappear = level->bd_hammer_walls_reappear;
cave->hammered_wall_reappear_frame = level->bd_hammer_walls_reappear_delay;
+ cave->infinite_rockets = level->bd_infinite_rockets;
+
cave->skeletons_needed_for_pot = level->bd_num_skeletons_needed_for_pot;
cave->skeletons_worth_diamonds = level->bd_skeleton_worth_num_diamonds;
cave->stonefly_explode_to = LEVEL_TO_CAVE(level->bd_stonefly_explodes_to);
cave->dragonfly_explode_to = LEVEL_TO_CAVE(level->bd_dragonfly_explodes_to);
+ cave->diamond_birth_effect = LEVEL_TO_CAVE(level->bd_diamond_birth_turns_to);
+ cave->bomb_explosion_effect = LEVEL_TO_CAVE(level->bd_bomb_explosion_turns_to);
+ cave->nitro_explosion_effect = LEVEL_TO_CAVE(level->bd_nitro_explosion_turns_to);
+ cave->explosion_effect = LEVEL_TO_CAVE(level->bd_explosion_turns_to);
+
// level name
strncpy(cave->name, level->name, sizeof(GdString));
cave->name[sizeof(GdString) - 1] = '\0';
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_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_magic_wall_break_scan = cave->magic_wall_breakscan;
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_hammer_walls_reappear = cave->hammered_walls_reappear;
level->bd_hammer_walls_reappear_delay = cave->hammered_wall_reappear_frame;
+ level->bd_infinite_rockets = cave->infinite_rockets;
+
level->bd_num_skeletons_needed_for_pot= cave->skeletons_needed_for_pot;
level->bd_skeleton_worth_num_diamonds = cave->skeletons_worth_diamonds;
level->bd_stonefly_explodes_to = CAVE_TO_LEVEL(cave->stonefly_explode_to);
level->bd_dragonfly_explodes_to = CAVE_TO_LEVEL(cave->dragonfly_explode_to);
+ level->bd_diamond_birth_turns_to = CAVE_TO_LEVEL(cave->diamond_birth_effect);
+ level->bd_bomb_explosion_turns_to = CAVE_TO_LEVEL(cave->bomb_explosion_effect);
+ level->bd_nitro_explosion_turns_to = CAVE_TO_LEVEL(cave->nitro_explosion_effect);
+ level->bd_explosion_turns_to = CAVE_TO_LEVEL(cave->explosion_effect);
+
// level name
char *cave_name = getStringPrint("%s / %d", cave->name, bd_level_nr + 1);
}
TapeHaltRecording();
+
+ if (!replay->success)
+ Warn("BD replay is marked as not successful");
}