No more client crash with map path/name or uid mismatch

This commit is contained in:
ariclone 2002-06-22 16:36:22 +00:00
parent 9577d9adf2
commit 9bdb8b14cc
2 changed files with 31 additions and 0 deletions

View file

@ -1106,6 +1106,26 @@ local void ClientParseAreYouThere(
NetworkSendICMessage(NetworkServerIP, htons(NetworkServerPort), &message);
}
/**
** FIXME: docu
**
** @param msg message received
*/
local void ClientParseBadMap(
const InitMessage* msg __attribute__((unused)))
{
int i;
InitMessage message;
message.Type = MessageInitHello;
message.SubType = ICMSeeYou;
// Spew out 5 and trust in God that they arrive
for (i = 0; i < 5; i++) {
NetworkSendICMessage(NetworkServerIP, htons(NetworkServerPort), &message);
}
NetConnectRunning = 0; // End the menu..
}
/**
** FIXME: docu
**
@ -1642,6 +1662,10 @@ local void NetworkParseMenuPacket(const InitMessage *msg, int size)
ClientParseGoAhead(msg);
break;
case ccs_badmap:
ClientParseBadMap(msg);
break;
default:
DebugLevel0Fn("Client: Unhandled state %d\n" _C_ NetLocalState);
break;
@ -1675,6 +1699,7 @@ local void NetworkParseMenuPacket(const InitMessage *msg, int size)
ServerParseState(msg);
break;
case ICMMapUidMismatch:
case ICMGoodBye:
ServerParseGoodBye();
break;

View file

@ -2468,6 +2468,12 @@ local void TerminateNetConnect(void)
menu->items[1].d.text.text = "Incompatible engine version.";
ProcessMenu("menu-net-error", 1);
NetConnectingCancel();
return;
case ccs_badmap:
menu->items[1].d.text.text = "Map not available.";
ProcessMenu("menu-net-error", 1);
NetConnectingCancel();
return;
case ccs_incompatiblenetwork: