X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_bd%2Fmain_bd.c;h=e6def9ed41643850f7e1dead0799690339f5cd08;hb=f7132b81a5b7559991e1048ab8680c65cc4b98c2;hp=25eb06310409d4a7146e442677c798a2a0887445;hpb=e0b898e0ad24e38b076fe2459c826577421a3a1b;p=rocksndiamonds.git diff --git a/src/game_bd/main_bd.c b/src/game_bd/main_bd.c index 25eb0631..e6def9ed 100644 --- a/src/game_bd/main_bd.c +++ b/src/game_bd/main_bd.c @@ -183,7 +183,9 @@ boolean SaveNativeLevel_BD(char *filename) void DumpLevelset_BD(void) { - Print("Number of levels: %d\n", 5 * gd_caveset_count()); + int num_levels_per_cave = (gd_caveset_has_levels() ? 5 : 1); + + Print("Number of levels: %d\n", num_levels_per_cave * gd_caveset_count()); Print("First level number: %d\n", 1); } @@ -253,20 +255,28 @@ int getTimeLeft_BD(void) return 0; } +void SetTimeFrames_BD(int frames_played) +{ + // needed to store final time after solving game (before counting down remaining time) + if (game_bd.game->state_counter == GAME_INT_CAVE_RUNNING) + game_bd.frames_played = frames_played; + +} + static void UpdateGameDoorValues_BD(void) { GdCave *cave = game_bd.game->cave; - int time_secs = gd_cave_time_show(cave, cave->time); + int time_left = gd_cave_time_show(cave, cave->time); int gems_still_needed = MAX(0, (cave->diamonds_needed - cave->diamonds_collected)); - game_bd.time_played = time_secs; + game_bd.time_left = time_left; game_bd.gems_still_needed = gems_still_needed; game_bd.score = game_bd.game->player_score; if (game.LevelSolved) { // update time and score in panel while counting bonus time - game.LevelSolved_CountingTime = game_bd.time_played; + game.LevelSolved_CountingTime = game_bd.time_left; game.LevelSolved_CountingScore = game_bd.score; } } @@ -318,10 +328,6 @@ void InitGameEngine_BD(void) game_bd.game_over = FALSE; game_bd.cover_screen = FALSE; - game_bd.time_played = 0; - game_bd.gems_still_needed = 0; - game_bd.score = 0; - gd_caveset_last_selected = native_bd_level.cave_nr; gd_caveset_last_selected_level = native_bd_level.level_nr; @@ -354,8 +360,10 @@ void InitGameEngine_BD(void) // when skipping uncovering, continue with uncovered playfield if (setup.bd_skip_uncovering) game_bd.game->state_counter = GAME_INT_UNCOVER_ALL + 1; + else if (isLevelEditorTestGame()) + game_bd.game->state_counter = GAME_INT_UNCOVER_ALL - 8; - if (setup.bd_skip_uncovering) + if (setup.bd_skip_uncovering || isLevelEditorTestGame()) gd_scroll(game_bd.game, TRUE, TRUE); ClearRectangle(gd_screen_bitmap, 0, 0, SXSIZE, SYSIZE);