projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed bug with calling function with invalid (although ignored) parameter
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index fb56f906e1efd6bcebf8b496f6935056bf419ca7..e0f9c8781c8f199311028141fe57aee066ad09b1 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-2224,8
+2224,8
@@
void UpdateGameControlValues()
/* update game panel control values */
/* update game panel control values */
- /* use
"level.file_info.nr"
instead of "level_nr" (for network games) */
- game_panel_controls[GAME_PANEL_LEVEL_NUMBER].value = level
.file_info.
nr;
+ /* use
d
instead of "level_nr" (for network games) */
+ game_panel_controls[GAME_PANEL_LEVEL_NUMBER].value = level
set.level_
nr;
game_panel_controls[GAME_PANEL_GEMS].value = gems;
game_panel_controls[GAME_PANEL_INVENTORY_COUNT].value = 0;
game_panel_controls[GAME_PANEL_GEMS].value = gems;
game_panel_controls[GAME_PANEL_INVENTORY_COUNT].value = 0;
@@
-3337,8
+3337,7
@@
void InitGame()
ExpireSoundLoops(TRUE);
ExpireSoundLoops(TRUE);
- if (!level_editor_test_game)
- FadeOut(fade_mask);
+ FadeOut(fade_mask);
/* needed if different viewport properties defined for playing */
ChangeViewportPropertiesIfNeeded();
/* needed if different viewport properties defined for playing */
ChangeViewportPropertiesIfNeeded();
@@
-3574,6
+3573,8
@@
void InitGame()
game.ball_state = level.ball_state_initial;
game.ball_content_nr = 0;
game.ball_state = level.ball_state_initial;
game.ball_content_nr = 0;
+ game.explosions_delayed = TRUE;
+
game.envelope_active = FALSE;
for (i = 0; i < NUM_BELTS; i++)
game.envelope_active = FALSE;
for (i = 0; i < NUM_BELTS; i++)
@@
-3955,6
+3956,9
@@
void InitGame()
if (stored_player[i].active)
local_player->players_still_needed++;
if (stored_player[i].active)
local_player->players_still_needed++;
+ if (level.solved_by_one_player)
+ local_player->players_still_needed = 1;
+
/* when recording the game, store which players take part in the game */
if (tape.recording)
{
/* when recording the game, store which players take part in the game */
if (tape.recording)
{
@@
-4661,7
+4665,6
@@
void GameWon()
void GameEnd()
{
int hi_pos;
void GameEnd()
{
int hi_pos;
- int last_level_nr = level_nr;
local_player->LevelSolved_GameEnd = TRUE;
local_player->LevelSolved_GameEnd = TRUE;
@@
-4703,7
+4706,8
@@
void GameEnd()
}
if (setup.increment_levels &&
}
if (setup.increment_levels &&
- level_nr < leveldir_current->last_level)
+ level_nr < leveldir_current->last_level &&
+ !network_playing)
{
level_nr++; /* advance to next level */
TapeErase(); /* start with empty tape */
{
level_nr++; /* advance to next level */
TapeErase(); /* start with empty tape */
@@
-4716,15
+4720,17
@@
void GameEnd()
}
}
}
}
- hi_pos = NewHiScore(last_level_nr);
+ /* used instead of last "level_nr" (for network games) */
+ hi_pos = NewHiScore(levelset.level_nr);
if (hi_pos >= 0 && !setup.skip_scores_after_game)
{
SetGameStatus(GAME_MODE_SCORES);
if (hi_pos >= 0 && !setup.skip_scores_after_game)
{
SetGameStatus(GAME_MODE_SCORES);
- DrawHallOfFame(l
ast_
level_nr, hi_pos);
+ DrawHallOfFame(l
evelset.
level_nr, hi_pos);
}
}
- else if (setup.auto_play_next_level && setup.increment_levels)
+ else if (setup.auto_play_next_level && setup.increment_levels &&
+ !network_playing)
{
StartGameActions(network.enabled, setup.autorecord, level.random_seed);
}
{
StartGameActions(network.enabled, setup.autorecord, level.random_seed);
}
@@
-13422,7
+13428,8
@@
void ExitPlayer(struct PlayerInfo *player)
DrawPlayer(player); /* needed here only to cleanup last field */
RemovePlayer(player);
DrawPlayer(player); /* needed here only to cleanup last field */
RemovePlayer(player);
- local_player->players_still_needed--;
+ if (local_player->players_still_needed > 0)
+ local_player->players_still_needed--;
}
static void setFieldForSnapping(int x, int y, int element, int direction)
}
static void setFieldForSnapping(int x, int y, int element, int direction)
@@
-14593,7
+14600,7
@@
static void PlayLevelMusic()
char *next_music = getMusicInfoEntryFilename(music_nr);
if (!strEqual(curr_music, next_music))
char *next_music = getMusicInfoEntryFilename(music_nr);
if (!strEqual(curr_music, next_music))
- PlayMusic(music_nr);
+ PlayMusic
Loop
(music_nr);
}
void PlayLevelSound_EM(int xx, int yy, int element_em, int sample)
}
void PlayLevelSound_EM(int xx, int yy, int element_em, int sample)