&li.bd_pal_timing, FALSE
},
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_16_BIT(6),
+ &li.bd_cycle_delay_ms, 200
+ },
+
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_8_BIT(17),
+ &li.bd_cycle_delay_c64, 0
+ },
+
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_8_BIT(18),
+ &li.bd_hatching_delay_cycles, 21
+ },
+
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_8_BIT(19),
+ &li.bd_hatching_delay_seconds, 2
+ },
+
+ {
+ -1, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(20),
+ &li.bd_line_shifting_borders, FALSE
+ },
+
+ {
+ -1, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(21),
+ &li.bd_wraparound_objects, FALSE
+ },
+
+ {
+ -1, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(22),
+ &li.bd_scan_first_and_last_row, TRUE
+ },
+
+ {
+ -1, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(23),
+ &li.bd_short_explosions, TRUE
+ },
+
{
-1, -1,
-1, -1,
cave->level_time[i] = level->time;
cave->level_diamonds[i] = level->gems_needed;
cave->level_magic_wall_time[i] = level->time_magic_wall;
+
+ cave->level_speed[i] = level->bd_cycle_delay_ms;
+ cave->level_ckdelay[i] = level->bd_cycle_delay_c64;
+ cave->level_hatching_delay_frame[i] = level->bd_hatching_delay_cycles;
+ cave->level_hatching_delay_time[i] = level->bd_hatching_delay_seconds;
+
cave->level_timevalue[i] = level->score[SC_TIME_BONUS];
}
cave->diamond_value = level->score[SC_EMERALD];
cave->extra_diamond_value = level->score[SC_DIAMOND_EXTRA];
- cave->level_speed[0] = 160; // set cave speed
-
cave->scheduling = level->bd_scheduling_type;
cave->pal_timing = level->bd_pal_timing;
cave->intermission = level->bd_intermission;
cave->diagonal_movements = level->bd_diagonal_movements;
+ cave->lineshift = level->bd_line_shifting_borders;
+ cave->wraparound_objects = level->bd_wraparound_objects;
+ cave->border_scan_first_and_last = level->bd_scan_first_and_last_row;
+ cave->short_explosions = level->bd_short_explosions;
+
strncpy(cave->name, level->name, sizeof(GdString));
cave->name[sizeof(GdString) - 1] = '\0';
level->gems_needed = cave->level_diamonds[bd_level_nr];
level->time_magic_wall = cave->level_magic_wall_time[bd_level_nr];
+ level->bd_cycle_delay_ms = cave->level_speed[bd_level_nr];
+ level->bd_cycle_delay_c64 = cave->level_ckdelay[bd_level_nr];
+ level->bd_hatching_delay_cycles = cave->level_hatching_delay_frame[bd_level_nr];
+ level->bd_hatching_delay_seconds = cave->level_hatching_delay_time[bd_level_nr];
+
level->score[SC_TIME_BONUS] = cave->level_timevalue[bd_level_nr];
level->score[SC_EMERALD] = cave->diamond_value;
level->score[SC_DIAMOND_EXTRA] = cave->extra_diamond_value;
level->bd_intermission = cave->intermission;
level->bd_diagonal_movements = cave->diagonal_movements;
- strncpy(level->name, cave->name, MAX_LEVEL_NAME_LEN);
+ level->bd_line_shifting_borders = cave->lineshift;
+ level->bd_wraparound_objects = cave->wraparound_objects;
+ level->bd_scan_first_and_last_row = cave->border_scan_first_and_last;
+ level->bd_short_explosions = cave->short_explosions;
+
+ char *cave_name = getStringPrint("%s / %d", cave->name, bd_level_nr + 1);
+
+ strncpy(level->name, cave_name, MAX_LEVEL_NAME_LEN);
level->name[MAX_LEVEL_NAME_LEN] = '\0';
for (x = 0; x < level->fieldx; x++)
for (y = 0; y < level->fieldy; y++)
level->field[x][y] = map_element_BD_to_RND(cave->map[y][x]);
+
+ checked_free(cave_name);
}
static void setTapeInfoToDefaults(void);