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);
@@ -796,18 +797,18 @@
else
break;
#endif
+
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 +1837,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 +1950,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