X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=Board.pm;h=1838f7dd492846c858cdc10f5c66707311c89f09;hb=11d3528406bfcbb3f97780d4b2af571c0b3f6299;hp=b925a388952ce6c5cc6e5ae1d35d00a5898d6171;hpb=8fcd3d2321344017e376668cb5d1f5ea7cb47c20;p=remoteglot diff --git a/Board.pm b/Board.pm index b925a38..1838f7d 100644 --- a/Board.pm +++ b/Board.pm @@ -194,6 +194,14 @@ sub parse_pretty_move { next if (defined($from_col) && $from_col != $col); next if ($board->[$row][$col] ne $piece); next if (!$board->can_reach($piece, $row, $col, $to_row, $to_col)); + + # See if doing this move would put us in check + # (yes, there are clients that expect us to do this). + my $check = $board->make_move($row, $col, $to_row, $to_col, $promo)->in_check(); + next if ($check eq 'both' || + ($toplay eq 'W' && $check eq 'white') || + ($toplay eq 'B' && $check eq 'black')); + push @squares, [ $row, $col ]; } }