X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmovegen.cpp;h=98e411b14e76939c0e0d7d2aaf2f94c8f1bbc3ed;hb=4f5680950a4e4c55da2877e1be91efd2be1c76ba;hp=ed204672378fa81edeaacf417494982c1ac36b6a;hpb=e56342ed002b2d567fbecd2e4432b881f1b244bc;p=stockfish diff --git a/src/movegen.cpp b/src/movegen.cpp index ed204672..98e411b1 100644 --- a/src/movegen.cpp +++ b/src/movegen.cpp @@ -35,16 +35,14 @@ namespace { template MoveStack* generate_castle(const Position& pos, MoveStack* mlist, Color us) { - CastleRight cr = CastleRight((Side == KING_SIDE ? WHITE_OO : WHITE_OOO) << us); - - if (pos.castle_impeded(us, Side) || !pos.can_castle(cr)) + if (pos.castle_impeded(us, Side) || !pos.can_castle(make_castle_right(us, Side))) return mlist; // After castling, the rook and king final positions are the same in Chess960 // as they would be in standard chess. Square kfrom = pos.king_square(us); - Square kto = relative_square(us, Side == KING_SIDE ? SQ_G1 : SQ_C1); Square rfrom = pos.castle_rook_square(us, Side); + Square kto = relative_square(us, Side == KING_SIDE ? SQ_G1 : SQ_C1); Bitboard enemies = pos.pieces(~us); assert(!pos.in_check()); @@ -128,8 +126,8 @@ namespace { Bitboard b1, b2, dc1, dc2, emptySquares; - Bitboard pawnsOn7 = pos.pieces(PAWN, Us) & TRank7BB; - Bitboard pawnsNotOn7 = pos.pieces(PAWN, Us) & ~TRank7BB; + Bitboard pawnsOn7 = pos.pieces(Us, PAWN) & TRank7BB; + Bitboard pawnsNotOn7 = pos.pieces(Us, PAWN) & ~TRank7BB; Bitboard enemies = (Type == MV_EVASION ? pos.pieces(Them) & target: Type == MV_CAPTURE ? target : pos.pieces(Them)); @@ -412,7 +410,7 @@ MoveStack* generate(const Position& pos, MoveStack* mlist) { // If queen and king are far or not on a diagonal line we can safely // remove all the squares attacked in the other direction becuase are // not reachable by the king anyway. - if (squares_between(ksq, checksq) || !(PseudoAttacks[BISHOP][checksq] & ksq)) + if (between_bb(ksq, checksq) || !(PseudoAttacks[BISHOP][checksq] & ksq)) sliderAttacks |= PseudoAttacks[QUEEN][checksq]; // Otherwise we need to use real rook attacks to check if king is safe @@ -436,7 +434,7 @@ MoveStack* generate(const Position& pos, MoveStack* mlist) { return mlist; // Blocking evasions or captures of the checking piece - target = squares_between(checksq, ksq) | checkers; + target = between_bb(checksq, ksq) | checkers; mlist = (us == WHITE ? generate_pawn_moves(pos, mlist, target) : generate_pawn_moves(pos, mlist, target));