X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=e6e2281694d66a945891aa0c3abcb3a55d2cf850;hb=837b688a12df9aac7cd878ba1d0f043b774b41b1;hp=62069398a849b7b5aa877e95ead9b6a120ee4db1;hpb=28f12e15d6cc932d5c2b6ae5a621fa024f3a1a2b;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index 62069398..e6e22816 100644 --- a/src/files.c +++ b/src/files.c @@ -291,6 +291,36 @@ static struct LevelFileConfigInfo chunk_config_INFO[] = &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, -1, -1, @@ -3727,19 +3757,25 @@ static void CopyNativeLevel_RND_to_BD(struct LevelInfo *level) 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; + strncpy(cave->name, level->name, sizeof(GdString)); cave->name[sizeof(GdString) - 1] = '\0'; @@ -3762,6 +3798,11 @@ static void CopyNativeLevel_BD_to_RND(struct LevelInfo *level) 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; @@ -3771,12 +3812,18 @@ static void CopyNativeLevel_BD_to_RND(struct LevelInfo *level) 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; + + 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);