@ -643,42 +643,36 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_CLIENT_INFO(Pac
NetworkRecvStatus ClientNetworkGameSocketHandler : : Receive_SERVER_ERROR ( Packet * p )
NetworkRecvStatus ClientNetworkGameSocketHandler : : Receive_SERVER_ERROR ( Packet * p )
{
{
static const StringID network_error_strings [ ] = {
STR_NETWORK_ERROR_LOSTCONNECTION , // NETWORK_ERROR_GENERAL
STR_NETWORK_ERROR_LOSTCONNECTION , // NETWORK_ERROR_DESYNC
STR_NETWORK_ERROR_LOSTCONNECTION , // NETWORK_ERROR_SAVEGAME_FAILED
STR_NETWORK_ERROR_LOSTCONNECTION , // NETWORK_ERROR_CONNECTION_LOST
STR_NETWORK_ERROR_LOSTCONNECTION , // NETWORK_ERROR_ILLEGAL_PACKET
STR_NETWORK_ERROR_LOSTCONNECTION , // NETWORK_ERROR_NEWGRF_MISMATCH
STR_NETWORK_ERROR_SERVER_ERROR , // NETWORK_ERROR_NOT_AUTHORIZED
STR_NETWORK_ERROR_SERVER_ERROR , // NETWORK_ERROR_NOT_EXPECTED
STR_NETWORK_ERROR_WRONG_REVISION , // NETWORK_ERROR_WRONG_REVISION
STR_NETWORK_ERROR_LOSTCONNECTION , // NETWORK_ERROR_NAME_IN_USE
STR_NETWORK_ERROR_WRONG_PASSWORD , // NETWORK_ERROR_WRONG_PASSWORD
STR_NETWORK_ERROR_SERVER_ERROR , // NETWORK_ERROR_COMPANY_MISMATCH
STR_NETWORK_ERROR_KICKED , // NETWORK_ERROR_KICKED
STR_NETWORK_ERROR_CHEATER , // NETWORK_ERROR_CHEATER
STR_NETWORK_ERROR_SERVER_FULL , // NETWORK_ERROR_FULL
STR_NETWORK_ERROR_TOO_MANY_COMMANDS , // NETWORK_ERROR_TOO_MANY_COMMANDS
STR_NETWORK_ERROR_TIMEOUT_PASSWORD , // NETWORK_ERROR_TIMEOUT_PASSWORD
STR_NETWORK_ERROR_TIMEOUT_COMPUTER , // NETWORK_ERROR_TIMEOUT_COMPUTER
STR_NETWORK_ERROR_TIMEOUT_MAP , // NETWORK_ERROR_TIMEOUT_MAP
STR_NETWORK_ERROR_TIMEOUT_JOIN , // NETWORK_ERROR_TIMEOUT_JOIN
} ;
assert_compile ( lengthof ( network_error_strings ) = = NETWORK_ERROR_END ) ;
NetworkErrorCode error = ( NetworkErrorCode ) p - > Recv_uint8 ( ) ;
NetworkErrorCode error = ( NetworkErrorCode ) p - > Recv_uint8 ( ) ;
switch ( error ) {
StringID err = STR_NETWORK_ERROR_LOSTCONNECTION ;
/* We made an error in the protocol, and our connection is closed.... */
if ( error < ( ptrdiff_t ) lengthof ( network_error_strings ) ) err = network_error_strings [ error ] ;
case NETWORK_ERROR_NOT_AUTHORIZED :
case NETWORK_ERROR_NOT_EXPECTED :
ShowErrorMessage ( err , INVALID_STRING_ID , WL_CRITICAL ) ;
case NETWORK_ERROR_COMPANY_MISMATCH :
ShowErrorMessage ( STR_NETWORK_ERROR_SERVER_ERROR , INVALID_STRING_ID , WL_CRITICAL ) ;
break ;
case NETWORK_ERROR_FULL :
ShowErrorMessage ( STR_NETWORK_ERROR_SERVER_FULL , INVALID_STRING_ID , WL_CRITICAL ) ;
break ;
case NETWORK_ERROR_WRONG_REVISION :
ShowErrorMessage ( STR_NETWORK_ERROR_WRONG_REVISION , INVALID_STRING_ID , WL_CRITICAL ) ;
break ;
case NETWORK_ERROR_WRONG_PASSWORD :
ShowErrorMessage ( STR_NETWORK_ERROR_WRONG_PASSWORD , INVALID_STRING_ID , WL_CRITICAL ) ;
break ;
case NETWORK_ERROR_KICKED :
ShowErrorMessage ( STR_NETWORK_ERROR_KICKED , INVALID_STRING_ID , WL_CRITICAL ) ;
break ;
case NETWORK_ERROR_CHEATER :
ShowErrorMessage ( STR_NETWORK_ERROR_CHEATER , INVALID_STRING_ID , WL_CRITICAL ) ;
break ;
case NETWORK_ERROR_TOO_MANY_COMMANDS :
ShowErrorMessage ( STR_NETWORK_ERROR_TOO_MANY_COMMANDS , INVALID_STRING_ID , WL_CRITICAL ) ;
break ;
case NETWORK_ERROR_TIMEOUT_PASSWORD :
ShowErrorMessage ( STR_NETWORK_ERROR_TIMEOUT_PASSWORD , INVALID_STRING_ID , WL_CRITICAL ) ;
break ;
case NETWORK_ERROR_TIMEOUT_COMPUTER :
ShowErrorMessage ( STR_NETWORK_ERROR_TIMEOUT_COMPUTER , INVALID_STRING_ID , WL_CRITICAL ) ;
break ;
default :
ShowErrorMessage ( STR_NETWORK_ERROR_LOSTCONNECTION , INVALID_STRING_ID , WL_CRITICAL ) ;
}
DeleteWindowById ( WC_NETWORK_STATUS_WINDOW , WN_NETWORK_STATUS_WINDOW_JOIN ) ;
DeleteWindowById ( WC_NETWORK_STATUS_WINDOW , WN_NETWORK_STATUS_WINDOW_JOIN ) ;