/* 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;
+ /* used instead of "level_nr" (for network games) */
+ game_panel_controls[GAME_PANEL_LEVEL_NUMBER].value = levelset.level_nr;
game_panel_controls[GAME_PANEL_GEMS].value = gems;
game_panel_controls[GAME_PANEL_INVENTORY_COUNT].value = 0;
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++)
void GameEnd()
{
int hi_pos;
- int last_level_nr = level_nr;
local_player->LevelSolved_GameEnd = TRUE;
}
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 */
}
}
- 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);
- DrawHallOfFame(last_level_nr, hi_pos);
+ DrawHallOfFame(levelset.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)
{
- SetGameStatus(GAME_MODE_MAIN);
-
- DrawMainMenu();
+ StartGameActions(network.enabled, setup.autorecord, level.random_seed);
}
else
{
- StartGameActions(network.enabled, setup.autorecord, level.random_seed);
+ SetGameStatus(GAME_MODE_MAIN);
+
+ DrawMainMenu();
}
}
if (init_network_game)
{
+ SendToServer_LevelFile();
SendToServer_StartPlaying();
return;
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)