ExpireSoundLoops(TRUE);
- if (!level_editor_test_game)
- FadeOut(fade_mask);
+ FadeOut(fade_mask);
/* needed if different viewport properties defined for playing */
ChangeViewportPropertiesIfNeeded();
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++)
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)
{
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)
char *next_music = getMusicInfoEntryFilename(music_nr);
if (!strEqual(curr_music, next_music))
- PlayMusic(music_nr);
+ PlayMusicLoop(music_nr);
}
void PlayLevelSound_EM(int xx, int yy, int element_em, int sample)