changed drawing to playfield when changing network mode setup options
[rocksndiamonds.git] / src / init.c
index ffb825943520cec7a3ddf10f7b3b21622e62527f..dd7e5a174b822a42aefc75fa6ac5de5dcce691d1 100644 (file)
@@ -5616,15 +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))
-    Error(ERR_EXIT, "cannot connect to network game server");
+  {
+    network.enabled = FALSE;
+
+    setup.network_mode = FALSE;
+  }
+  else
+  {
+    SendToServer_PlayerName(setup.player_name);
+    SendToServer_ProtocolVersion();
+    SendToServer_NrWanted(setup.network_player_nr + 1);
 
-  SendToServer_PlayerName(setup.player_name);
-  SendToServer_ProtocolVersion();
-  SendToServer_NrWanted(setup.network_player_nr + 1);
+    network.connected = TRUE;
+  }
+
+  /* short time to recognize result of network initialization */
+  Delay(1000);
 }
 
 static boolean CheckArtworkConfigForCustomElements(char *filename)
@@ -6087,6 +6100,8 @@ void OpenAll()
     return;
   }
 
+  InitNetworkServer();
+
   SetGameStatus(GAME_MODE_MAIN);
 
   FadeSetEnterScreen();
@@ -6099,8 +6114,6 @@ void OpenAll()
 
   DrawMainMenu();
 
-  InitNetworkServer();
-
 #if 0
   Error(ERR_DEBUG, "::: SDL_GetBasePath() == '%s'",
        SDL_GetBasePath());