added delay function that regularly updates the screen (to redraw toons)
[rocksndiamonds.git] / src / init.c
index 9c9af0e90144197a94d2253ad0d38d50cb9e9c7d..dd7e5a174b822a42aefc75fa6ac5de5dcce691d1 100644 (file)
@@ -5616,21 +5616,28 @@ void InitNetworkSettings()
 
 void InitNetworkServer()
 {
-  if (!network.enabled)
+  if (!network.enabled || network.connected)
     return;
 
+  LimitScreenUpdates(FALSE);
+
   if (!ConnectToServer(network.server_host, network.server_port))
   {
-    Request("Cannot connect to network server!", REQ_CONFIRM);
-
     network.enabled = FALSE;
 
-    return;
+    setup.network_mode = FALSE;
+  }
+  else
+  {
+    SendToServer_PlayerName(setup.player_name);
+    SendToServer_ProtocolVersion();
+    SendToServer_NrWanted(setup.network_player_nr + 1);
+
+    network.connected = TRUE;
   }
 
-  SendToServer_PlayerName(setup.player_name);
-  SendToServer_ProtocolVersion();
-  SendToServer_NrWanted(setup.network_player_nr + 1);
+  /* short time to recognize result of network initialization */
+  Delay(1000);
 }
 
 static boolean CheckArtworkConfigForCustomElements(char *filename)
@@ -6093,6 +6100,8 @@ void OpenAll()
     return;
   }
 
+  InitNetworkServer();
+
   SetGameStatus(GAME_MODE_MAIN);
 
   FadeSetEnterScreen();
@@ -6105,8 +6114,6 @@ void OpenAll()
 
   DrawMainMenu();
 
-  InitNetworkServer();
-
 #if 0
   Error(ERR_DEBUG, "::: SDL_GetBasePath() == '%s'",
        SDL_GetBasePath());