static void InitializeMainControls()
{
- boolean local_team_mode = (!options.network && setup.team_mode);
+ boolean local_team_mode = (!network.enabled && setup.team_mode);
int i;
/* set main control text values to dynamically determined values */
DrawCursorAndText_Main(-1, FALSE, FALSE);
DrawPreviewLevelInitial();
+ DrawNetworkPlayers();
HandleMainMenu(0, 0, 0, 0, MB_MENU_INITIALIZE);
SetGameStatus(GAME_MODE_SCORES);
- DrawHallOfFame(-1);
+ DrawHallOfFame(level_nr, -1);
}
else if (pos == MAIN_CONTROL_EDITOR)
{
}
else if (pos == MAIN_CONTROL_GAME)
{
- StartGameActions(options.network, setup.autorecord, level.random_seed);
+ StartGameActions(network.enabled, setup.autorecord, level.random_seed);
}
else if (pos == MAIN_CONTROL_SETUP)
{
HandleChooseTree(mx, my, dx, dy, button, &level_number_current);
}
-void DrawHallOfFame(int highlight_position)
+void DrawHallOfFame(int level_nr, int highlight_position)
{
int fade_mask = REDRAW_FIELD;
drawHallOfFameList(first_entry, highlight_position);
}
}
- else if (button == MB_MENU_LEAVE)
- {
- PlaySound(SND_MENU_ITEM_SELECTING);
-
- FadeSound(SND_BACKGROUND_SCORES);
-
- SetGameStatus(GAME_MODE_MAIN);
-
- DrawMainMenu();
- }
- else if (button == MB_MENU_CHOICE)
+ else if (button == MB_MENU_LEAVE || button == MB_MENU_CHOICE)
{
PlaySound(SND_MENU_ITEM_SELECTING);
FadeSound(SND_BACKGROUND_SCORES);
- SetGameStatus(GAME_MODE_MAIN);
+ if (game_status_last_screen != GAME_MODE_PLAYING ||
+ !setup.auto_play_next_level || !setup.increment_levels)
+ {
+ SetGameStatus(GAME_MODE_MAIN);
- DrawMainMenu();
+ DrawMainMenu();
+ }
+ else
+ {
+ StartGameActions(network.enabled, setup.autorecord, level.random_seed);
+ }
}
if (game_status == GAME_MODE_SCORES)
{ TYPE_SWITCH, &setup.handicap, "Handicap:" },
{ TYPE_SWITCH, &setup.skip_levels, "Skip Unsolved Levels:" },
{ TYPE_SWITCH, &setup.increment_levels,"Increment Solved Levels:" },
+ { TYPE_SWITCH, &setup.auto_play_next_level,"Auto-play Next Level:" },
+ { TYPE_SWITCH, &setup.skip_scores_after_game,"Skip Scores After Game:" },
{ TYPE_SWITCH, &setup.autorecord, "Auto-Record Tapes:" },
{ TYPE_ENTER_LIST, execSetupChooseGameSpeed, "Game Speed:" },
{ TYPE_STRING, &game_speed_text, "" },
ToggleFullscreenOrChangeWindowScalingIfNeeded();
if (si->value == &setup.network_mode &&
- setup.network_mode &&
- !options.network)
- Request("Please restart game to enable network games!", REQ_CONFIRM);
+ setup.network_mode != network.enabled)
+ {
+ network.enabled = setup.network_mode;
+
+ FadeOut(REDRAW_ALL);
+
+ ClearField();
+
+ FadeIn(REDRAW_ALL);
+
+ if (network.enabled)
+ InitNetworkServer();
+ else
+ DisconnectFromNetworkServer();
+
+ DrawSetupScreen();
+ }
}
static struct TokenInfo *getSetupInfoFinal(struct TokenInfo *setup_info_orig)