diff options
Diffstat (limited to 'src/d_net.c')
-rw-r--r-- | src/d_net.c | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/src/d_net.c b/src/d_net.c index ba433c9f..3fec28b5 100644 --- a/src/d_net.c +++ b/src/d_net.c @@ -1,7 +1,7 @@ // Emacs style mode select -*- C++ -*- //----------------------------------------------------------------------------- // -// $Id: d_net.c 484 2006-05-19 20:01:59Z fraggle $ +// $Id: d_net.c 544 2006-05-29 20:55:20Z fraggle $ // // Copyright(C) 1993-1996 Id Software, Inc. // Copyright(C) 2005 Simon Howard @@ -117,7 +117,7 @@ //----------------------------------------------------------------------------- -static const char rcsid[] = "$Id: d_net.c 484 2006-05-19 20:01:59Z fraggle $"; +static const char rcsid[] = "$Id: d_net.c 544 2006-05-29 20:55:20Z fraggle $"; #include "doomfeatures.h" @@ -136,6 +136,7 @@ static const char rcsid[] = "$Id: d_net.c 484 2006-05-19 20:01:59Z fraggle $"; #include "net_client.h" #include "net_gui.h" #include "net_io.h" +#include "net_query.h" #include "net_server.h" #include "net_sdl.h" #include "net_loop.h" @@ -330,8 +331,7 @@ void D_CheckNetGame (void) #ifdef FEATURE_MULTIPLAYER { - net_module_t *connect_module = NULL; - char *connect_addr; + net_addr_t *addr = NULL; if (M_CheckParm("-server") > 0) { @@ -339,33 +339,39 @@ void D_CheckNetGame (void) NET_SV_AddModule(&net_loop_server_module); NET_SV_AddModule(&net_sdl_module); - connect_module = &net_loop_client_module; - connect_addr = ""; + net_loop_client_module.InitClient(); + addr = net_loop_client_module.ResolveAddress(NULL); } else { - i = M_CheckParm("-connect"); + i = M_CheckParm("-autojoin"); if (i > 0) { - connect_module = &net_sdl_module; - connect_addr = myargv[i+1]; - } - } - - if (connect_module != NULL) - { - net_addr_t *addr; - - connect_module->InitClient(); + addr = NET_FindLANServer(); - addr = connect_module->ResolveAddress(connect_addr); + if (addr == NULL) + { + I_Error("No server found on local LAN"); + } + } + + i = M_CheckParm("-connect"); - if (addr == NULL) + if (i > 0) { - I_Error("Unable to resolve \"%s\"", connect_addr); + net_sdl_module.InitClient(); + addr = net_sdl_module.ResolveAddress(myargv[i+1]); + + if (addr == NULL) + { + I_Error("Unable to resolve '%s'\n", myargv[i+1]); + } } + } + if (addr != NULL) + { if (!NET_CL_Connect(addr)) { I_Error("D_CheckNetGame: Failed to connect to %s\n", |