diff --git a/src/d_clisrv.h b/src/d_clisrv.h index d02bd8c0f2f10c685ce2de70c7c61a1ba3f1e050..4831df60101f93dd1812fd2ae02e76e85db37b1f 100644 --- a/src/d_clisrv.h +++ b/src/d_clisrv.h @@ -270,6 +270,7 @@ void SV_ResetServer(void); void CL_AddSplitscreenPlayer(void); void CL_RemoveSplitscreenPlayer(void); void CL_Reset(void); +void D_SaveBan(void); // in the middle of frikking nowhere void CL_ClearPlayer(INT32 playernum); void CL_UpdateServerList(boolean internetsearch, INT32 room); // is there a game running diff --git a/src/d_enet.c b/src/d_enet.c index c52d88872f5989f6367b23e52a8336bf5eb7913c..14b385ff85d3e1f9e23c2256cedff9ded3e235e4 100644 --- a/src/d_enet.c +++ b/src/d_enet.c @@ -21,6 +21,7 @@ enum { DISCONNECT_UNKNOWN = 0, DISCONNECT_SHUTDOWN, DISCONNECT_FULL, + DISCONNECT_VERSION, CLIENT_ASKMSINFO = 0, CLIENT_JOIN, @@ -55,7 +56,12 @@ static void ServerHandlePacket(UINT8 node, DataWrap data) UINT16 version = data->ReadUINT16(data); UINT16 subversion = data->ReadUINT16(data); if (version != VERSION || subversion != SUBVERSION) + { CONS_Printf("NETWORK: Version mismatch!?\n"); + nodeleaving[node] = true; + enet_peer_disconnect(nodetopeer[node], DISCONNECT_VERSION); + break; + } char *name = data->ReadStringn(data, MAXPLAYERNAME); CONS_Printf("NETWORK: Player '%s' joining...\n", name); net_playercount++; @@ -193,15 +199,6 @@ void Net_AckTicker(void) } } -boolean Net_AllAckReceived(void) -{ - return true; -} - -void D_SetDoomcom(void) -{ -} - void D_NetOpen(void) { ENetAddress address = { ENET_HOST_ANY, 5029 }; @@ -301,7 +298,7 @@ void D_CloseConnection(void) if (ClientHost) { - enet_peer_disconnect(nodetopeer[servernode], 0); + enet_peer_disconnect(nodetopeer[servernode], DISCONNECT_SHUTDOWN); while (enet_host_service(ServerHost, &e, 3000) > 0) { if (e.type == ENET_EVENT_TYPE_DISCONNECT) diff --git a/src/d_enet.h b/src/d_enet.h index 7a2833834a04c827bf61425a84751d3fc0ab45bb..2d498cdd765ee50a321a5ed1ccbb893f78e6a373 100644 --- a/src/d_enet.h +++ b/src/d_enet.h @@ -10,9 +10,6 @@ extern boolean nodeingame[MAXNETNODES]; // set false as nodes leave game boolean Net_GetNetStat(void); void Net_AckTicker(void); -boolean Net_AllAckReceived(void); -void D_SetDoomcom(void); -void D_SaveBan(void); boolean D_CheckNetGame(void); void D_CloseConnection(void); void Net_CloseConnection(INT32 node);