TYPE_INTEGER, CONF_VALUE_32_BIT(1),
&li.bd_slime_random_seed_c64, -1
},
+ {
+ EL_BD_SLIME, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
+ &li.bd_slime_eats_element_1, EL_BD_DIAMOND
+ },
+ {
+ EL_BD_SLIME, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(2),
+ &li.bd_slime_converts_to_element_1, EL_BD_DIAMOND_FALLING
+ },
+ {
+ EL_BD_SLIME, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(3),
+ &li.bd_slime_eats_element_2, EL_BD_ROCK
+ },
+ {
+ EL_BD_SLIME, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(4),
+ &li.bd_slime_converts_to_element_2, EL_BD_ROCK_FALLING
+ },
+ {
+ EL_BD_SLIME, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(5),
+ &li.bd_slime_eats_element_3, EL_BD_NUT
+ },
+ {
+ EL_BD_SLIME, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(6),
+ &li.bd_slime_converts_to_element_3, EL_BD_NUT_FALLING
+ },
{
EL_BD_ACID, -1,
{
EL_BD_ACID, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(2),
- &li.bd_acid_turns_to_element, EL_EMPTY
+ &li.bd_acid_turns_to_element, EL_BD_EXPLODING_3
},
{
&li.bd_water_cannot_flow_down, FALSE
},
+ {
+ EL_BD_NUT, -1,
+ TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
+ &li.bd_nut_content, EL_BD_NUT_BREAKING_1
+ },
+
+ {
+ EL_BD_PNEUMATIC_HAMMER, -1,
+ TYPE_INTEGER, CONF_VALUE_8_BIT(1),
+ &li.bd_hammer_walls_break_delay, 5
+ },
+ {
+ EL_BD_PNEUMATIC_HAMMER, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(2),
+ &li.bd_hammer_walls_reappear, FALSE
+ },
+ {
+ EL_BD_PNEUMATIC_HAMMER, -1,
+ TYPE_INTEGER, CONF_VALUE_8_BIT(3),
+ &li.bd_hammer_walls_reappear_delay, 100
+ },
+
+ {
+ EL_BD_SKELETON, -1,
+ TYPE_INTEGER, CONF_VALUE_8_BIT(1),
+ &li.bd_num_skeletons_needed_for_pot, 5
+ },
+ {
+ EL_BD_SKELETON, -1,
+ TYPE_INTEGER, CONF_VALUE_8_BIT(2),
+ &li.bd_skeleton_worth_num_diamonds, 0
+ },
+
// (the following values are related to various game elements)
{
cave->level_slime_permeability_c64[0] = level->bd_slime_permeability_bits_c64;
cave->level_slime_seed_c64[0] = level->bd_slime_random_seed_c64;
cave->level_rand[0] = level->bd_cave_random_seed_c64;
+ cave->slime_eats_1 = map_element_RND_to_BD_cave(level->bd_slime_eats_element_1);
+ cave->slime_converts_1 = map_element_RND_to_BD_cave(level->bd_slime_converts_to_element_1);
+ cave->slime_eats_2 = map_element_RND_to_BD_cave(level->bd_slime_eats_element_2);
+ cave->slime_converts_2 = map_element_RND_to_BD_cave(level->bd_slime_converts_to_element_2);
+ cave->slime_eats_3 = map_element_RND_to_BD_cave(level->bd_slime_eats_element_3);
+ cave->slime_converts_3 = map_element_RND_to_BD_cave(level->bd_slime_converts_to_element_3);
cave->acid_eats_this = map_element_RND_to_BD_cave(level->bd_acid_eats_element);
cave->acid_spread_ratio = level->bd_acid_spread_rate * 10000;
cave->water_does_not_flow_down = level->bd_water_cannot_flow_down;
+ cave->nut_turns_to_when_crushed = map_element_RND_to_BD_cave(level->bd_nut_content);
+
+ cave->pneumatic_hammer_frame = level->bd_hammer_walls_break_delay;
+ cave->hammered_walls_reappear = level->bd_hammer_walls_reappear;
+ cave->hammered_wall_reappear_frame = level->bd_hammer_walls_reappear_delay;
+
+ cave->skeletons_needed_for_pot = level->bd_num_skeletons_needed_for_pot;
+ cave->skeletons_worth_diamonds = level->bd_skeleton_worth_num_diamonds;
+
// level name
strncpy(cave->name, level->name, sizeof(GdString));
cave->name[sizeof(GdString) - 1] = '\0';
level->bd_slime_permeability_bits_c64 = cave->level_slime_permeability_c64[bd_level_nr];
level->bd_slime_random_seed_c64 = cave->level_slime_seed_c64[bd_level_nr];
level->bd_cave_random_seed_c64 = cave->level_rand[bd_level_nr];
+ level->bd_slime_eats_element_1 = map_element_BD_to_RND_cave(cave->slime_eats_1);
+ level->bd_slime_converts_to_element_1 = map_element_BD_to_RND_cave(cave->slime_converts_1);
+ level->bd_slime_eats_element_2 = map_element_BD_to_RND_cave(cave->slime_eats_2);
+ level->bd_slime_converts_to_element_2 = map_element_BD_to_RND_cave(cave->slime_converts_2);
+ level->bd_slime_eats_element_3 = map_element_BD_to_RND_cave(cave->slime_eats_3);
+ level->bd_slime_converts_to_element_3 = map_element_BD_to_RND_cave(cave->slime_converts_3);
level->bd_acid_eats_element = map_element_BD_to_RND_cave(cave->acid_eats_this);
level->bd_acid_spread_rate = cave->acid_spread_ratio / 10000;
level->bd_water_cannot_flow_down = cave->water_does_not_flow_down;
+ level->bd_nut_content = map_element_BD_to_RND_cave(cave->nut_turns_to_when_crushed);
+
+ level->bd_hammer_walls_break_delay = cave->pneumatic_hammer_frame;
+ level->bd_hammer_walls_reappear = cave->hammered_walls_reappear;
+ level->bd_hammer_walls_reappear_delay = cave->hammered_wall_reappear_frame;
+
+ level->bd_num_skeletons_needed_for_pot= cave->skeletons_needed_for_pot;
+ level->bd_skeleton_worth_num_diamonds = cave->skeletons_worth_diamonds;
+
// level name
char *cave_name = getStringPrint("%s / %d", cave->name, bd_level_nr + 1);