| 791 net_send_code(opponent, NETCODE_DECLINE); |
791 net_send_code(opponent, NETCODE_DECLINE); |
| 792 } |
792 } |
| 793 } |
793 } |
| 794 break; |
794 break; |
| 795 /* validate "the game has ended" claims */ |
795 /* validate "the game has ended" claims */ |
| |
796 case NETCODE_CHECKMATE: |
| |
797 return 1; /* no need to accept, they say they're toast, OK for us */ |
| 796 case NETCODE_THREEFOLD: |
798 case NETCODE_THREEFOLD: |
| 797 case NETCODE_NOMATERIAL: |
799 case NETCODE_NOMATERIAL: |
| 798 case NETCODE_STALEMATE: |
800 case NETCODE_STALEMATE: |
| 799 case NETCODE_CHECKMATE: |
|
| 800 if ((code == NETCODE_THREEFOLD && gamestate->threefold) || |
801 if ((code == NETCODE_THREEFOLD && gamestate->threefold) || |
| 801 (code == NETCODE_NOMATERIAL && gamestate->nomaterial) || |
802 (code == NETCODE_NOMATERIAL && gamestate->nomaterial) || |
| 802 (code == NETCODE_STALEMATE && gamestate->stalemate) || |
803 (code == NETCODE_STALEMATE && gamestate->stalemate)) { |
| 803 (code == NETCODE_CHECKMATE && gamestate->checkmate)) { |
|
| 804 /* auto-accept the claim */ |
804 /* auto-accept the claim */ |
| 805 net_send_code(opponent, NETCODE_ACCEPT); |
805 net_send_code(opponent, NETCODE_ACCEPT); |
| 806 return 1; |
806 return 1; |
| 807 } else { |
807 } else { |
| 808 /* silently decline, do not add message to UI */ |
808 /* silently decline, do not add message to UI */ |
| 821 |
821 |
| 822 /* send a code for ending the game, if required */ |
822 /* send a code for ending the game, if required */ |
| 823 bool endgame = true; |
823 bool endgame = true; |
| 824 if (gamestate->checkmate) { |
824 if (gamestate->checkmate) { |
| 825 net_send_code(opponent, NETCODE_CHECKMATE); |
825 net_send_code(opponent, NETCODE_CHECKMATE); |
| |
826 /* checkmate does not need to be accepted */ |
| |
827 return 1; |
| 826 } else if (gamestate->stalemate) { |
828 } else if (gamestate->stalemate) { |
| 827 net_send_code(opponent, NETCODE_STALEMATE); |
829 net_send_code(opponent, NETCODE_STALEMATE); |
| 828 } else if (gamestate->nomaterial) { |
830 } else if (gamestate->nomaterial) { |
| 829 net_send_code(opponent, NETCODE_NOMATERIAL); |
831 net_send_code(opponent, NETCODE_NOMATERIAL); |
| 830 } else if (gamestate->threefold) { |
832 } else if (gamestate->threefold) { |