X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fposition.cpp;h=9306965c45a625a4a76f39ead713a0cc6696899b;hb=42b77ea7eecaf5f31bf87c7075945273685aa4f5;hp=1aa476b6dea9529d5a68cc565c86716f44a6b27f;hpb=578b21bbeedc41b6e0d1b2df46887b1636a78e2b;p=stockfish diff --git a/src/position.cpp b/src/position.cpp index 1aa476b6..9306965c 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -94,12 +94,12 @@ CheckInfo::CheckInfo(const Position& pos) { pinned = pos.pinned_pieces(pos.side_to_move()); dcCandidates = pos.discovered_check_candidates(); - checkSq[PAWN] = pos.attacks_from(ksq, them); - checkSq[KNIGHT] = pos.attacks_from(ksq); - checkSq[BISHOP] = pos.attacks_from(ksq); - checkSq[ROOK] = pos.attacks_from(ksq); - checkSq[QUEEN] = checkSq[BISHOP] | checkSq[ROOK]; - checkSq[KING] = 0; + checkSquares[PAWN] = pos.attacks_from(ksq, them); + checkSquares[KNIGHT] = pos.attacks_from(ksq); + checkSquares[BISHOP] = pos.attacks_from(ksq); + checkSquares[ROOK] = pos.attacks_from(ksq); + checkSquares[QUEEN] = checkSquares[BISHOP] | checkSquares[ROOK]; + checkSquares[KING] = 0; } @@ -266,14 +266,15 @@ void Position::set(const string& fenStr, bool isChess960, Thread* th) { { Square rsq; Color c = islower(token) ? BLACK : WHITE; + Piece rook = make_piece(c, ROOK); token = char(toupper(token)); if (token == 'K') - for (rsq = relative_square(c, SQ_H1); type_of(piece_on(rsq)) != ROOK; --rsq) {} + for (rsq = relative_square(c, SQ_H1); piece_on(rsq) != rook; --rsq) {} else if (token == 'Q') - for (rsq = relative_square(c, SQ_A1); type_of(piece_on(rsq)) != ROOK; ++rsq) {} + for (rsq = relative_square(c, SQ_A1); piece_on(rsq) != rook; ++rsq) {} else if (token >= 'A' && token <= 'H') rsq = make_square(File(token - 'A'), relative_rank(c, RANK_1)); @@ -616,7 +617,7 @@ bool Position::gives_check(Move m, const CheckInfo& ci) const { Square to = to_sq(m); // Is there a direct check? - if (ci.checkSq[type_of(piece_on(from))] & to) + if (ci.checkSquares[type_of(piece_on(from))] & to) return true; // Is there a discovered check?