src/main.c

changeset 191
6da16865a270
parent 190
c90386d55cb2
child 192
e57e2874fb2a
--- a/src/main.c	Mon Aug 24 14:43:33 2026 +0200
+++ b/src/main.c	Mon Aug 24 15:48:19 2026 +0200
@@ -793,14 +793,14 @@
             }
             break;
         /* validate "the game has ended" claims */
+        case NETCODE_CHECKMATE:
+            return 1; /* no need to accept, they say they're toast, OK for us */
         case NETCODE_THREEFOLD:
         case NETCODE_NOMATERIAL:
         case NETCODE_STALEMATE:
-        case NETCODE_CHECKMATE:
             if ((code == NETCODE_THREEFOLD && gamestate->threefold) ||
                 (code == NETCODE_NOMATERIAL && gamestate->nomaterial) ||
-                (code == NETCODE_STALEMATE && gamestate->stalemate) ||
-                (code == NETCODE_CHECKMATE && gamestate->checkmate)) {
+                (code == NETCODE_STALEMATE && gamestate->stalemate)) {
                 /* auto-accept the claim */
                 net_send_code(opponent, NETCODE_ACCEPT);
                 return 1;
@@ -823,6 +823,8 @@
                 bool endgame = true;
                 if (gamestate->checkmate) {
                     net_send_code(opponent, NETCODE_CHECKMATE);
+                    /* checkmate does not need to be accepted */
+                    return 1;
                 } else if (gamestate->stalemate) {
                     net_send_code(opponent, NETCODE_STALEMATE);
                 } else if (gamestate->nomaterial) {

mercurial