},
{
-1, -1,
- TYPE_BOOLEAN, CONF_VALUE_8_BIT(23),
- &li.bd_gravity_affects_all, TRUE
- },
- {
- -1, -1,
- TYPE_INTEGER, CONF_VALUE_8_BIT(24),
+ TYPE_INTEGER, CONF_VALUE_8_BIT(23),
&li.bd_cave_random_seed_c64, 0
},
&li.bd_snap_element, EL_EMPTY
},
+ {
+ EL_BD_ROCK, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
+ &li.bd_rock_turns_to_on_falling, EL_BD_ROCK_FALLING
+ },
+ {
+ EL_BD_ROCK, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(2),
+ &li.bd_rock_turns_to_on_impact, EL_BD_ROCK
+ },
+
{
EL_BD_DIAMOND, -1,
TYPE_INTEGER, CONF_VALUE_16_BIT(1),
&li.score[SC_DIAMOND_EXTRA], 20
},
+ {
+ EL_BD_DIAMOND, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(2),
+ &li.bd_diamond_turns_to_on_falling, EL_BD_DIAMOND_FALLING
+ },
+ {
+ EL_BD_DIAMOND, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(3),
+ &li.bd_diamond_turns_to_on_impact, EL_BD_DIAMOND
+ },
{
EL_BD_MAGIC_WALL, -1,
TYPE_INTEGER, CONF_VALUE_8_BIT(3),
&li.bd_gravity_switch_delay, 10
},
+ {
+ EL_BD_GRAVITY_SWITCH, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(4),
+ &li.bd_gravity_affects_all, TRUE
+ },
{
EL_BD_SAND, -1,
cave->lineshift = level->bd_line_shifting_borders;
cave->border_scan_first_and_last = level->bd_scan_first_and_last_row;
cave->short_explosions = level->bd_short_explosions;
- cave->gravity_affects_all = level->bd_gravity_affects_all;
// player properties
cave->diagonal_movements = level->bd_diagonal_movements;
cave->gravity = level->bd_gravity_direction;
cave->gravity_switch_active = level->bd_gravity_switch_active;
cave->gravity_change_time = level->bd_gravity_switch_delay;
+ cave->gravity_affects_all = level->bd_gravity_affects_all;
+
+ cave->stone_falling_effect = LEVEL_TO_CAVE(level->bd_rock_turns_to_on_falling);
+ cave->stone_bouncing_effect = LEVEL_TO_CAVE(level->bd_rock_turns_to_on_impact);
+ cave->diamond_falling_effect = LEVEL_TO_CAVE(level->bd_diamond_turns_to_on_falling);
+ cave->diamond_bouncing_effect = LEVEL_TO_CAVE(level->bd_diamond_turns_to_on_impact);
// level name
strncpy(cave->name, level->name, sizeof(GdString));
level->bd_line_shifting_borders = cave->lineshift;
level->bd_scan_first_and_last_row = cave->border_scan_first_and_last;
level->bd_short_explosions = cave->short_explosions;
- level->bd_gravity_affects_all = cave->gravity_affects_all;
// player properties
level->bd_diagonal_movements = cave->diagonal_movements;
level->bd_gravity_direction = cave->gravity;
level->bd_gravity_switch_active = cave->gravity_switch_active;
level->bd_gravity_switch_delay = cave->gravity_change_time;
+ level->bd_gravity_affects_all = cave->gravity_affects_all;
+
+ level->bd_rock_turns_to_on_falling = CAVE_TO_LEVEL(cave->stone_falling_effect);
+ level->bd_rock_turns_to_on_impact = CAVE_TO_LEVEL(cave->stone_bouncing_effect);
+ level->bd_diamond_turns_to_on_falling = CAVE_TO_LEVEL(cave->diamond_falling_effect);
+ level->bd_diamond_turns_to_on_impact = CAVE_TO_LEVEL(cave->diamond_bouncing_effect);
// level name
char *cave_name = getStringPrint("%s / %d", cave->name, bd_level_nr + 1);