improved connecting to local network server
[rocksndiamonds.git] / src / network.c
index 5f35825a6aed79117107402e095ed98cb8064cf1..66a57e4591a870641f196999b8a393e660e25cb5 100644 (file)
@@ -297,10 +297,8 @@ boolean ConnectToServer(char *hostname, int port)
   StartNetworkServer(port);
 
   /* wait for server to start up and try connecting several times */
-  for (i = 0; i < 6; i++)
+  for (i = 0; i < 30; i++)
   {
-    Delay(500);                        /* wait 500 ms == 0.5 seconds */
-
     if ((sfd = SDLNet_TCP_Open(&ip)))          /* connected */
     {
       DrawNetworkText_Success("Successfully connected!");
@@ -308,6 +306,8 @@ boolean ConnectToServer(char *hostname, int port)
       SDLNet_TCP_AddSocket(rfds, sfd);
       return TRUE;
     }
+
+    Delay(100);
   }
 
   DrawNetworkText_Failed("Failed to connect to network server!");
@@ -809,3 +809,16 @@ void HandleNetworking()
     }
   }
 }
+
+void DisconnectFromNetworkServer()
+{
+  DrawNetworkText_Title("Terminating Network");
+  DrawNetworkText("Disconnecting from network server ...");
+
+  HandleNetworkingDisconnect();
+
+  DrawNetworkText_Success("Successfully disconnected!");
+
+  /* short time to recognize result of network initialization */
+  Delay(1000);
+}