X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=758e536d29a16b17e97e7bdc095e29d094ea8f6e;hb=45c910a978cabc8e8dd40fac47b17b7d402c91aa;hp=1318bde16e80a2a079b41caab99c452ef8714d78;hpb=ec7383f34bac8e493eb6c68813c1affb1149890e;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 1318bde1..758e536d 100644 --- a/src/screens.c +++ b/src/screens.c @@ -1642,6 +1642,7 @@ void DrawMainMenu() DrawCursorAndText_Main(-1, FALSE, FALSE); DrawPreviewLevelInitial(); + DrawNetworkPlayers(); HandleMainMenu(0, 0, 0, 0, MB_MENU_INITIALIZE); @@ -4625,9 +4626,17 @@ void HandleHallOfFame(int mx, int my, int dx, int dy, int button) 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) @@ -5878,6 +5887,8 @@ static struct TokenInfo setup_info_game[] = { 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, "" }, @@ -6435,9 +6446,23 @@ static void changeSetupValue(int screen_pos, int setup_info_pos_raw, int dx) ToggleFullscreenOrChangeWindowScalingIfNeeded(); if (si->value == &setup.network_mode && - setup.network_mode && - !network.enabled) - 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)