added connecting to network server from setup menu without program restart
[rocksndiamonds.git] / src / screens.c
index d545ef304fbc1c979e6abaebb62902f806e0e163..54e27e311f8c4d0f086cb4a1e7207f2eaf291207 100644 (file)
@@ -6447,7 +6447,27 @@ static void changeSetupValue(int screen_pos, int setup_info_pos_raw, int dx)
   if (si->value == &setup.network_mode &&
       setup.network_mode &&
       !network.enabled)
-    Request("Please restart game to enable network games!", REQ_CONFIRM);
+  {
+    network.enabled = TRUE;
+
+    SetGameStatus(GAME_MODE_LOADING);
+    SetDrawBackgroundMask(REDRAW_NONE);
+
+    FadeOut(REDRAW_ALL);
+
+    ClearRectangle(drawto, 0, 0, WIN_XSIZE, WIN_YSIZE);
+
+    FadeIn(REDRAW_ALL);
+
+    InitNetworkServer();
+
+    SetGameStatus(GAME_MODE_SETUP);
+    SetDrawBackgroundMask(REDRAW_FIELD);
+
+    redraw_mask = REDRAW_ALL;
+
+    DrawSetupScreen();
+  }
 }
 
 static struct TokenInfo *getSetupInfoFinal(struct TokenInfo *setup_info_orig)