]> git.sesse.net Git - remoteglot/commitdiff
Revert "Reject more invalid moves."
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Tue, 26 Dec 2017 18:36:01 +0000 (19:36 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Tue, 26 Dec 2017 18:36:01 +0000 (19:36 +0100)
This reverts commit 72de1da79baf2dddf6b37374aeb27bd3576af596.

I honestly don't remember why this revert is anymore.

Board.pm

index 720189899045eb72ea25850167e98613c2c374a5..3e0fd33a52b4fa72a4264a4eff58962dc93cc197 100644 (file)
--- a/Board.pm
+++ b/Board.pm
@@ -200,14 +200,15 @@ sub parse_pretty_move {
                        push @squares, [ $row, $col ];
                }
        }
-
-       # Filter out pieces which cannot reach this square.
-       @squares = grep { $board->can_reach($piece, $_->[0], $_->[1], $to_row, $to_col) } @squares;
-
-       # See if doing this move would put us in check
-       # (yes, there are clients that expect us to do this).
-       @squares = grep { !$board->make_move($_->[0], $_->[1], $to_row, $to_col, $promo)->in_check($side) } @squares;
-
+       if (scalar @squares > 1) {
+               # Filter out pieces which cannot reach this square.
+               @squares = grep { $board->can_reach($piece, $_->[0], $_->[1], $to_row, $to_col) } @squares;
+       }
+       if (scalar @squares > 1) {
+               # See if doing this move would put us in check
+               # (yes, there are clients that expect us to do this).
+               @squares = grep { !$board->make_move($_->[0], $_->[1], $to_row, $to_col, $promo)->in_check($side) } @squares;
+       }
        if (scalar @squares == 0) {
                die "Impossible move $move";
        }