added delay function that regularly updates the screen (to redraw toons)
[rocksndiamonds.git] / src / screens.c
index d545ef304fbc1c979e6abaebb62902f806e0e163..3eab4a7343e9235371708e03f4e4b2bdea08dd83 100644 (file)
@@ -6445,9 +6445,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)