Index: src/d_clisrv.c =================================================================== --- src/d_clisrv.c (revision 1998) +++ src/d_clisrv.c (working copy) @@ -309,7 +309,8 @@ cl_askjoin, cl_waitjoinresponse, cl_downloadsavegame, - cl_connected + cl_connected, + cl_aborted } cl_mode_t; static void GetPackets(void); @@ -799,15 +800,14 @@ case cl_waitjoinresponse: case cl_connected: break; + + // Connection closed by cancel, timeout or refusal. + case cl_aborted: + cl_mode = cl_searching; + return; } GetPackets(); - // connection closed by cancel or timeout: in this case, server == true - if (!server && !netgame) - { - cl_mode = cl_searching; - return; - } Net_AckTicker(); // call it only one by tic @@ -1836,17 +1836,17 @@ if (netbuffer->packettype == PT_CLIENTJOIN && server) { if (bannednode && bannednode[node]) - SV_SendRefuse(node, "You have been banned from the server"); + SV_SendRefuse(node, "You have been banned\nfrom the server"); else if (netbuffer->u.clientcfg.version != VERSION || netbuffer->u.clientcfg.subversion != SUBVERSION) - SV_SendRefuse(node, va("Different SRB2 versions cannot play a netgame! " + SV_SendRefuse(node, va("Different SRB2 versions cannot\nplay a netgame!\n" "(server version %d.%.2d.%d)", VERSION/100, VERSION%100, SUBVERSION)); else if (!cv_allownewplayer.value && node) - SV_SendRefuse(node, "The server is not accepting joins for the moment"); + SV_SendRefuse(node, "The server is not accepting\njoins for the moment"); else if (D_NumPlayers() >= cv_maxplayers.value) - SV_SendRefuse(node, va("Maximum players reached (max:%d)", cv_maxplayers.value)); + SV_SendRefuse(node, va("Maximum players reached: %d", cv_maxplayers.value)); else if (netbuffer->u.clientcfg.localplayers > 1) // Hacked client? - SV_SendRefuse(node, va("Too many players from this node.")); + SV_SendRefuse(node, va("Too many players from\nthis node.")); else { boolean newnode = false; @@ -1949,6 +1949,9 @@ D_QuitNetGame(); CL_Reset(); D_StartTitle(); + + // Will be reset by caller. Signals refusal. + cl_mode = cl_aborted; } break; case PT_SERVERCFG: // positive response of client join request Index: src/m_menu.c =================================================================== --- src/m_menu.c (revision 1995) +++ src/m_menu.c (working copy) @@ -7590,7 +7590,8 @@ return; // now that's more readable with a faded background (yeah like Quake...) - V_DrawFadeScreen(); + if (!WipeInAction) + V_DrawFadeScreen(); if (currentMenu->drawroutine) currentMenu->drawroutine(); // call current menu Draw routine