X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=9c9af0e90144197a94d2253ad0d38d50cb9e9c7d;hb=d621e281cdb7c66130b216b379fd88a45fb82afa;hp=88ffc38bfca24941a3a051b2381723b2567f1078;hpb=c5f483ea6c651aba3f9834ee47ba94e2c1bf9055;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index 88ffc38b..9c9af0e9 100644 --- a/src/init.c +++ b/src/init.c @@ -5605,22 +5605,32 @@ static void InitArtworkDone() InitGlobalAnimations(); } -void InitNetworkServer() +void InitNetworkSettings() { - if (setup.network_mode) - options.network = TRUE; + InitNetworkInfo(options.network || setup.network_mode, + FALSE, + options.serveronly, + options.server_host, + options.server_port); +} - if (!options.network) +void InitNetworkServer() +{ + if (!network.enabled) return; -#if defined(NETWORK_AVALIABLE) - if (!ConnectToServer(options.server_host, options.server_port)) - Error(ERR_EXIT, "cannot connect to network game server"); + if (!ConnectToServer(network.server_host, network.server_port)) + { + Request("Cannot connect to network server!", REQ_CONFIRM); + + network.enabled = FALSE; + + return; + } SendToServer_PlayerName(setup.player_name); SendToServer_ProtocolVersion(); SendToServer_NrWanted(setup.network_player_nr + 1); -#endif } static boolean CheckArtworkConfigForCustomElements(char *filename) @@ -5993,10 +6003,12 @@ void OpenAll() if (options.execute_command) Execute_Command(options.execute_command); - if (options.serveronly) + InitNetworkSettings(); + + if (network.serveronly) { #if defined(PLATFORM_UNIX) - NetworkServer(options.server_port, options.serveronly); + NetworkServer(network.server_port, TRUE); #else Error(ERR_WARN, "networking only supported in Unix version"); #endif