X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=d835b19f8cb9b11be758fdfe42502cc754d138d6;hb=a3edb6437b8864290bab53bfc3bd1da9595879c1;hp=831ec9010a5a0a4a9460d471bb8aaf2574b53045;hpb=bc81bd2ee202b635901f1b24741bc0a715769d3f;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 831ec901..d835b19f 100644 --- a/src/game.c +++ b/src/game.c @@ -2286,7 +2286,7 @@ static void UpdateGameControlValues(void) int time = (game.LevelSolved ? game.LevelSolved_CountingTime : level.game_engine_type == GAME_ENGINE_TYPE_BD ? - game_bd.time_played : + game_bd.time_left : level.game_engine_type == GAME_ENGINE_TYPE_EM ? game_em.lev->time : level.game_engine_type == GAME_ENGINE_TYPE_SP ? @@ -4862,9 +4862,10 @@ void InitAmoebaNr(int x, int y) static void LevelSolved_SetFinalGameValues(void) { - game.time_final = (level.game_engine_type == GAME_ENGINE_TYPE_BD ? game_bd.time_played : + game.time_final = (level.game_engine_type == GAME_ENGINE_TYPE_BD ? game_bd.time_left : game.no_level_time_limit ? TimePlayed : TimeLeft); - game.score_time_final = (level.use_step_counter ? TimePlayed : + game.score_time_final = (level.game_engine_type == GAME_ENGINE_TYPE_BD ? game_bd.frames_played : + level.use_step_counter ? TimePlayed : TimePlayed * FRAMES_PER_SECOND + TimeFrames); game.score_final = (level.game_engine_type == GAME_ENGINE_TYPE_BD ? game_bd.score : @@ -11835,6 +11836,9 @@ static void CheckLevelTime(void) // if last second running, wait for native engine time to exactly reach zero if (getTimeLeft_BD() == 1 && TimeLeft == 1) TimeFrames = frames_per_second - 1; + + // needed to store final time after solving game (before counting down remaining time) + SetTimeFrames_BD(TimePlayed * FRAMES_PER_SECOND + TimeFrames); } if (TimeFrames >= frames_per_second)