| 3720 | } |
| 3721 | |
| 3722 | void MultiDoDisconnect(uint8_t *data) { |
| 3723 | int count = 0; |
| 3724 | |
| 3725 | // Skip header stuff |
| 3726 | SKIP_HEADER(data, &count); |
| 3727 | |
| 3728 | uint8_t slot = MultiGetByte(data, &count); |
| 3729 | |
| 3730 | if (NetPlayers[slot].flags & NPF_CONNECTED) { |
| 3731 | if (NetPlayers[slot].file_xfer_flags != NETFILE_NONE) { |
| 3732 | if (NetPlayers[slot].file_xfer_cfile) { |
| 3733 | char delfile[_MAX_PATH * 2]; |
| 3734 | strcpy(delfile, NetPlayers[slot].file_xfer_cfile->name); |
| 3735 | cfclose(NetPlayers[slot].file_xfer_cfile); |
| 3736 | NetPlayers[slot].file_xfer_cfile = NULL; |
| 3737 | if (NetPlayers[slot].file_xfer_flags == NETFILE_RECEIVING) |
| 3738 | ddio_DeleteFile(delfile); |
| 3739 | } |
| 3740 | NetPlayers[slot].file_xfer_flags = NETFILE_NONE; |
| 3741 | NetPlayers[slot].custom_file_seq++; |
| 3742 | NetPlayers[slot].custom_file_seq = NETFILE_ID_NOFILE; |
| 3743 | } |
| 3744 | if (NetPlayers[slot].sequence == NETSEQ_PLAYING) { |
| 3745 | AddHUDMessage(TXT_MLTDISCONNECT, Players[slot].callsign); |
| 3746 | MultiMakePlayerGhost(slot); |
| 3747 | } |
| 3748 | NetPlayers[slot].flags &= ~NPF_CONNECTED; |
| 3749 | NetPlayers[slot].secret_net_id = 0; |
| 3750 | } else |
| 3751 | mprintf(0, "Got a disconnect from a non-connected player!\n"); |
| 3752 | |
| 3753 | ScoreAPIPlayerLeft(slot); |
| 3754 | } |
| 3755 | |
| 3756 | void MultiDoServerRejectedChecksum(uint8_t *data) { |
| 3757 | int count = 0; |
no test coverage detected