X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_bd%2Fbd_cave.c;h=6a22a6379556b13d962f2cd26f7eb293eeb8aa09;hb=8fdd23c078934ae797980a824fd145903c84cae7;hp=d946bac4c203a3decaa24f2304211802e40a217c;hpb=1c42160163536a7c68090ddec29cfa21c30e9371;p=rocksndiamonds.git diff --git a/src/game_bd/bd_cave.c b/src/game_bd/bd_cave.c index d946bac4..6a22a637 100644 --- a/src/game_bd/bd_cave.c +++ b/src/game_bd/bd_cave.c @@ -1678,3 +1678,60 @@ unsigned int gd_cave_adler_checksum(GdCave *cave) gd_cave_adler_checksum_more(cave, &a, &b); return (b << 16) + a; } + +boolean gd_cave_has_levels(GdCave *cave) +{ + GdCave c = *cave; + int *cave_level_value[] = + { + c.level_diamonds, + c.level_speed, + c.level_ckdelay, + c.level_time, + c.level_magic_wall_time, + c.level_amoeba_time, + c.level_amoeba_threshold, + c.level_amoeba_2_time, + c.level_amoeba_2_threshold, + c.level_slime_permeability, + c.level_slime_permeability_c64, + c.level_slime_seed_c64, + c.level_hatching_delay_frame, + c.level_hatching_delay_time, + c.level_bonus_time, + c.level_penalty_time, + + NULL + }; + int i, j; + + for (i = 0; cave_level_value[i] != NULL; i++) + for (j = 1; j < 5; j++) + if (cave_level_value[i][j] != cave_level_value[i][0]) + return TRUE; + + for (j = 1; j < 5; j++) + if (cave->level_rand[j] != j && + cave->level_rand[j - 1] != j - 1 && + cave->level_rand[j] != cave->level_rand[0]) + return TRUE; + + for (j = 1; j < 5; j++) + if (cave->level_timevalue[j] != j + 1 && + cave->level_timevalue[j - 1] != j && + cave->level_timevalue[j] != cave->level_timevalue[0]) + return TRUE; + + return FALSE; +} + +boolean gd_caveset_has_levels(void) +{ + List *iter; + + for (iter = gd_caveset; iter != NULL; iter = iter->next) + if (gd_cave_has_levels((GdCave *)iter->data)) + return TRUE; + + return FALSE; +}