},
{
-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,
&li.bd_skeleton_worth_num_diamonds, 0
},
+ {
+ EL_BD_CREATURE_SWITCH, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(1),
+ &li.bd_creatures_start_backwards, FALSE
+ },
+ {
+ EL_BD_CREATURE_SWITCH, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(2),
+ &li.bd_creatures_turn_on_hatching, FALSE
+ },
+ {
+ EL_BD_CREATURE_SWITCH, -1,
+ TYPE_INTEGER, CONF_VALUE_16_BIT(1),
+ &li.bd_creatures_auto_turn_delay, 0
+ },
+
+ {
+ EL_BD_GRAVITY_SWITCH, -1,
+ TYPE_INTEGER, CONF_VALUE_8_BIT(1),
+ &li.bd_gravity_direction, GD_MV_DOWN
+ },
+ {
+ EL_BD_GRAVITY_SWITCH, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(2),
+ &li.bd_gravity_switch_active, FALSE
+ },
+ {
+ EL_BD_GRAVITY_SWITCH, -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,
TYPE_ELEMENT, CONF_VALUE_16_BIT(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->expanding_wall_looks_like = LEVEL_TO_CAVE(level->bd_expanding_wall_looks_like);
cave->dirt_looks_like = LEVEL_TO_CAVE(level->bd_sand_looks_like);
+ cave->creatures_backwards = level->bd_creatures_start_backwards;
+ cave->creatures_direction_auto_change_on_start = level->bd_creatures_turn_on_hatching;
+ cave->creatures_direction_auto_change_time = level->bd_creatures_auto_turn_delay;
+
+ 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));
cave->name[sizeof(GdString) - 1] = '\0';
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_expanding_wall_looks_like = CAVE_TO_LEVEL(cave->expanding_wall_looks_like);
level->bd_sand_looks_like = CAVE_TO_LEVEL(cave->dirt_looks_like);
+ level->bd_creatures_start_backwards = cave->creatures_backwards;
+ level->bd_creatures_turn_on_hatching = cave->creatures_direction_auto_change_on_start;
+ level->bd_creatures_auto_turn_delay = cave->creatures_direction_auto_change_time;
+
+ 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);