diff --git a/src/d_clisrv.c b/src/d_clisrv.c index ed183b1c3bd723547790cebd9855f71fef5c4f32..d87f38a67b9b47b4560e43be0d916ab4f6fa5a29 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -897,8 +897,7 @@ static void CL_ConnectToServer(boolean viams) cl_mode = cl_askjoin; // don't break case continue to cljoin request now case cl_askjoin: - if (!server) // the server already has their files loaded, duh! - CL_LoadServerFiles(); + //CL_LoadServerFiles(); if (CL_SendJoin()) // Send join request, server instantly connects. cl_mode = server ? cl_connected : cl_waitjoinresponse; break; @@ -1070,10 +1069,15 @@ static void Command_connect(void) } else { + boolean success = false; if (COM_Argc() >= 3) - D_NetConnect(COM_Argv(1), COM_Argv(2)); + success = D_NetConnect(COM_Argv(1), COM_Argv(2)); else - D_NetConnect(COM_Argv(1), NULL); + success = D_NetConnect(COM_Argv(1), NULL); + if (!success) { + M_StartMessage(M_GetText("Failed to connect to server.\n\nPress ESC\n"), NULL, MM_NOTHING); + return; + } } } diff --git a/src/d_enet.c b/src/d_enet.c index 74a6de7dfcaa6b9f96257f8257dcf9899f4af7cc..2f3cb4ee85cadf8c6cc5f8778e588d7cd9d3b9f4 100644 --- a/src/d_enet.c +++ b/src/d_enet.c @@ -225,7 +225,7 @@ void D_NetOpen(void) net_playercount = 0; } -void D_NetConnect(const char *hostname, const char *port) +boolean D_NetConnect(const char *hostname, const char *port) { ENetAddress address; ENetEvent e; @@ -250,10 +250,12 @@ void D_NetConnect(const char *hostname, const char *port) if (enet_host_service(ClientHost, &e, 5000) > 0 && e.type == ENET_EVENT_TYPE_CONNECT) { - CONS_Printf("Connection successful!"); - return; + CONS_Printf("NETWORK: Connection successful!"); + return true; } - M_StartMessage(M_GetText("Failed to connect to server.\n\nPress ESC\n"), NULL, MM_NOTHING); + enet_host_destroy(ClientHost); + ClientHost = NULL; + return false; } // Initialize network.