projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added level info config option to disable time limit for all levels
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index abf350ce93311d668bc344cc1301affb90fa0a1e..ce452e67efc236e49f1615de39f27c00480a3809 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-2239,7
+2239,7
@@
static void UpdateGameControlValues(void)
game_sp.time_played :
level.game_engine_type == GAME_ENGINE_TYPE_MM ?
game_mm.energy_left :
game_sp.time_played :
level.game_engine_type == GAME_ENGINE_TYPE_MM ?
game_mm.energy_left :
- game.no_time_limit ? TimePlayed : TimeLeft);
+ game.no_
level_
time_limit ? TimePlayed : TimeLeft);
int score = (game.LevelSolved ?
game.LevelSolved_CountingScore :
level.game_engine_type == GAME_ENGINE_TYPE_EM ?
int score = (game.LevelSolved ?
game.LevelSolved_CountingScore :
level.game_engine_type == GAME_ENGINE_TYPE_EM ?
@@
-3818,7
+3818,8
@@
void InitGame(void)
game.panel.active = TRUE;
game.panel.active = TRUE;
- game.no_time_limit = (level.time == 0);
+ game.no_level_time_limit = (level.time == 0);
+ game.time_limit = (leveldir_current->time_limit && setup.time_limit);
game.yamyam_content_nr = 0;
game.robot_wheel_active = FALSE;
game.yamyam_content_nr = 0;
game.robot_wheel_active = FALSE;
@@
-4726,7
+4727,7
@@
void InitAmoebaNr(int x, int y)
static void LevelSolved_SetFinalGameValues(void)
{
static void LevelSolved_SetFinalGameValues(void)
{
- game.time_final = (game.no_time_limit ? TimePlayed : TimeLeft);
+ game.time_final = (game.no_
level_
time_limit ? TimePlayed : TimeLeft);
game.score_time_final = (level.use_step_counter ? TimePlayed :
TimePlayed * FRAMES_PER_SECOND + TimeFrames);
game.score_time_final = (level.use_step_counter ? TimePlayed :
TimePlayed * FRAMES_PER_SECOND + TimeFrames);
@@
-4835,7
+4836,7
@@
void GameWon(void)
time_final = 0;
time_frames = time_frames_left;
}
time_final = 0;
time_frames = time_frames_left;
}
- else if (game.no_time_limit && TimePlayed < time_final_max)
+ else if (game.no_
level_
time_limit && TimePlayed < time_final_max)
{
time_final = time_final_max;
time_frames = time_frames_final_max - time_frames_played;
{
time_final = time_final_max;
time_frames = time_frames_final_max - time_frames_played;
@@
-10227,7
+10228,7
@@
static void ExecuteCustomElementAction(int x, int y, int element, int page)
DisplayGameControlValues();
DisplayGameControlValues();
- if (!TimeLeft &&
setup
.time_limit)
+ if (!TimeLeft &&
game
.time_limit)
for (i = 0; i < MAX_PLAYERS; i++)
KillPlayer(&stored_player[i]);
}
for (i = 0; i < MAX_PLAYERS; i++)
KillPlayer(&stored_player[i]);
}
@@
-11637,18
+11638,18
@@
static void CheckLevelTime_StepCounter(void)
{
TimeLeft--;
{
TimeLeft--;
- if (TimeLeft <= 10 &&
setup
.time_limit && !game.LevelSolved)
+ if (TimeLeft <= 10 &&
game
.time_limit && !game.LevelSolved)
PlaySound(SND_GAME_RUNNING_OUT_OF_TIME);
game_panel_controls[GAME_PANEL_TIME].value = TimeLeft;
DisplayGameControlValues();
PlaySound(SND_GAME_RUNNING_OUT_OF_TIME);
game_panel_controls[GAME_PANEL_TIME].value = TimeLeft;
DisplayGameControlValues();
- if (!TimeLeft &&
setup
.time_limit && !game.LevelSolved)
+ if (!TimeLeft &&
game
.time_limit && !game.LevelSolved)
for (i = 0; i < MAX_PLAYERS; i++)
KillPlayer(&stored_player[i]);
}
for (i = 0; i < MAX_PLAYERS; i++)
KillPlayer(&stored_player[i]);
}
- else if (game.no_time_limit && !game.all_players_gone)
+ else if (game.no_
level_
time_limit && !game.all_players_gone)
{
game_panel_controls[GAME_PANEL_TIME].value = TimePlayed;
{
game_panel_controls[GAME_PANEL_TIME].value = TimePlayed;
@@
-11686,7
+11687,7
@@
static void CheckLevelTime(void)
{
TimeLeft--;
{
TimeLeft--;
- if (TimeLeft <= 10 &&
setup
.time_limit)
+ if (TimeLeft <= 10 &&
game
.time_limit)
PlaySound(SND_GAME_RUNNING_OUT_OF_TIME);
/* this does not make sense: game_panel_controls[GAME_PANEL_TIME].value
PlaySound(SND_GAME_RUNNING_OUT_OF_TIME);
/* this does not make sense: game_panel_controls[GAME_PANEL_TIME].value
@@
-11694,7
+11695,7
@@
static void CheckLevelTime(void)
game_panel_controls[GAME_PANEL_TIME].value = TimeLeft;
game_panel_controls[GAME_PANEL_TIME].value = TimeLeft;
- if (!TimeLeft &&
setup
.time_limit)
+ if (!TimeLeft &&
game
.time_limit)
{
if (level.game_engine_type == GAME_ENGINE_TYPE_EM)
game_em.lev->killed_out_of_time = TRUE;
{
if (level.game_engine_type == GAME_ENGINE_TYPE_EM)
game_em.lev->killed_out_of_time = TRUE;
@@
-11703,12
+11704,12
@@
static void CheckLevelTime(void)
KillPlayer(&stored_player[i]);
}
}
KillPlayer(&stored_player[i]);
}
}
- else if (game.no_time_limit && !game.all_players_gone)
+ else if (game.no_
level_
time_limit && !game.all_players_gone)
{
game_panel_controls[GAME_PANEL_TIME].value = TimePlayed;
}
{
game_panel_controls[GAME_PANEL_TIME].value = TimePlayed;
}
- game_em.lev->time = (game.no_time_limit ? TimePlayed : TimeLeft);
+ game_em.lev->time = (game.no_
level_
time_limit ? TimePlayed : TimeLeft);
}
if (tape.recording || tape.playing)
}
if (tape.recording || tape.playing)
@@
-14882,7
+14883,7
@@
static int DigField(struct PlayerInfo *player,
if (level.time > 0 || level.use_time_orb_bug)
{
TimeLeft += level.time_orb_time;
if (level.time > 0 || level.use_time_orb_bug)
{
TimeLeft += level.time_orb_time;
- game.no_time_limit = FALSE;
+ game.no_
level_
time_limit = FALSE;
game_panel_controls[GAME_PANEL_TIME].value = TimeLeft;
game_panel_controls[GAME_PANEL_TIME].value = TimeLeft;