projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed score time for BD engine
[rocksndiamonds.git]
/
src
/
game_bd
/
main_bd.c
diff --git
a/src/game_bd/main_bd.c
b/src/game_bd/main_bd.c
index 25eb06310409d4a7146e442677c798a2a0887445..e6def9ed41643850f7e1dead0799690339f5cd08 100644
(file)
--- 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)
{
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);
}
Print("First level number: %d\n", 1);
}
@@
-253,20
+255,28
@@
int getTimeLeft_BD(void)
return 0;
}
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;
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));
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_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;
}
}
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.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;
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;
// 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);
gd_scroll(game_bd.game, TRUE, TRUE);
ClearRectangle(gd_screen_bitmap, 0, 0, SXSIZE, SYSIZE);