X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.cpp;h=4c925f5bba16fc51b8f2417668d0159e47ee450e;hp=52aa93ebddc918493fd720a58dace0b1ab1d8d17;hb=45ce92b89c9191f1606d82611620587157956e1b;hpb=13fe7ee4df30f5bc15189870ebf5d166e26d9906 diff --git a/src/position.cpp b/src/position.cpp index 52aa93eb..4c925f5b 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -591,9 +591,7 @@ bool Position::pl_move_is_legal(Move m, Bitboard pinned) const { // after the move is made if (move_is_ep(m)) { - Color us = side_to_move(); Color them = opposite_color(us); - Square from = move_from(m); Square to = move_to(m); Square capsq = make_square(square_file(to), square_rank(from)); Square ksq = king_square(us); @@ -630,14 +628,14 @@ bool Position::pl_move_is_legal(Move m, Bitboard pinned) const { /// move and tests whether the move is legal. This version is not very fast and /// should be used only in non time-critical paths. -bool Position::move_is_legal(const Move m) const { +bool Position::move_is_pl_full(const Move m) const { MoveStack mlist[MAX_MOVES]; MoveStack *cur, *last = generate(*this, mlist); for (cur = mlist; cur != last; cur++) if (cur->move == m) - return pl_move_is_legal(m, pinned_pieces(sideToMove)); + return true; return false; } @@ -646,10 +644,9 @@ bool Position::move_is_legal(const Move m) const { /// Fast version of Position::move_is_legal() that takes a position a move and /// a bitboard of pinned pieces as input, and tests whether the move is legal. -bool Position::move_is_legal(const Move m, Bitboard pinned) const { +bool Position::move_is_pl(const Move m) const { assert(is_ok()); - assert(pinned == pinned_pieces(sideToMove)); Color us = sideToMove; Color them = opposite_color(sideToMove); @@ -659,7 +656,7 @@ bool Position::move_is_legal(const Move m, Bitboard pinned) const { // Use a slower but simpler function for uncommon cases if (move_is_special(m)) - return move_is_legal(m); + return move_is_pl_full(m); // Is not a promotion, so promotion piece must be empty if (move_promotion_piece(m) - 2 != PIECE_TYPE_NONE) @@ -765,8 +762,7 @@ bool Position::move_is_legal(const Move m, Bitboard pinned) const { } } - // The move is pseudo-legal, check if it is also legal - return pl_move_is_legal(m, pinned); + return true; }