From: Marco Costalba Date: Thu, 12 Feb 2009 08:28:18 +0000 (+0100) Subject: Rename generate_piece_blocking_evasions() X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=68d36b6f59c5e071a60b4a8559c055bbcdc36aa0 Rename generate_piece_blocking_evasions() In generate_piece_moves() to be more uniform with other functions. Unfortunatly the different number of calling arguments do not allow us to easily integrate in generate_piece_moves() template family. Signed-off-by: Marco Costalba --- diff --git a/src/movegen.cpp b/src/movegen.cpp index 0fc68436..f5890a1a 100644 --- a/src/movegen.cpp +++ b/src/movegen.cpp @@ -40,8 +40,10 @@ namespace { QUEEN_SIDE }; - const bool CAPTURE = true; - const bool NON_CAPTURE = false; + enum MoveType { + CAPTURE, + NON_CAPTURE + }; // Functions bool castling_is_check(const Position&, CastlingSide); @@ -81,14 +83,14 @@ namespace { MoveStack* generate_piece_moves(const Position&, MoveStack*, Color us, Bitboard); template<> - MoveStack* generate_piece_moves(const Position& pos, MoveStack* mlist, Color us, Bitboard target); + MoveStack* generate_piece_moves(const Position&, MoveStack*, Color, Bitboard); - template + template inline MoveStack* generate_piece_moves(const Position& p, MoveStack* m, Color us) { assert(Piece == PAWN); - if (Capture) + if (Type == CAPTURE) return (us == WHITE ? generate_pawn_captures(p, m) : generate_pawn_captures(p, m)); else @@ -96,17 +98,16 @@ namespace { : generate_pawn_noncaptures(p, m)); } - // Template generate_piece_blocking_evasions() with specializations template - MoveStack* generate_piece_blocking_evasions(const Position&, MoveStack*, Color us, Bitboard, Bitboard); + MoveStack* generate_piece_moves(const Position&, MoveStack*, Color us, Bitboard, Bitboard); template<> - inline MoveStack* generate_piece_blocking_evasions(const Position& p, MoveStack* m, Color us, - Bitboard pnd, Bitboard bs) { + inline MoveStack* generate_piece_moves(const Position& p, MoveStack* m, + Color us, Bitboard t, Bitboard pnd) { if (us == WHITE) - return generate_pawn_blocking_evasions(p, pnd, bs, m); + return generate_pawn_blocking_evasions(p, pnd, t, m); else - return generate_pawn_blocking_evasions(p, pnd, bs, m); + return generate_pawn_blocking_evasions(p, pnd, t, m); } } @@ -299,11 +300,11 @@ int generate_evasions(const Position& pos, MoveStack* mlist, Bitboard pinned) { if (blockSquares != EmptyBoardBB) { // Pieces moves - mlist = generate_piece_blocking_evasions(pos, mlist, us, pinned, blockSquares); - mlist = generate_piece_blocking_evasions(pos, mlist, us, pinned, blockSquares); - mlist = generate_piece_blocking_evasions(pos, mlist, us, pinned, blockSquares); - mlist = generate_piece_blocking_evasions(pos, mlist, us, pinned, blockSquares); - mlist = generate_piece_blocking_evasions(pos, mlist, us, pinned, blockSquares); + mlist = generate_piece_moves(pos, mlist, us, blockSquares, pinned); + mlist = generate_piece_moves(pos, mlist, us, blockSquares, pinned); + mlist = generate_piece_moves(pos, mlist, us, blockSquares, pinned); + mlist = generate_piece_moves(pos, mlist, us, blockSquares, pinned); + mlist = generate_piece_moves(pos, mlist, us, blockSquares, pinned); } } @@ -562,20 +563,9 @@ namespace { return mlist; } - template<> - MoveStack* generate_piece_moves(const Position& pos, MoveStack* mlist, Color us, Bitboard target) { - - Bitboard b; - Square from = pos.king_square(us); - - b = pos.piece_attacks(from) & target; - SERIALIZE_MOVES(b); - return mlist; - } - template - MoveStack* generate_piece_blocking_evasions(const Position& pos, MoveStack* mlist, Color us, - Bitboard pinned, Bitboard blockSquares) { + MoveStack* generate_piece_moves(const Position& pos, MoveStack* mlist, + Color us, Bitboard target, Bitboard pinned) { Square from; Bitboard b; @@ -585,12 +575,23 @@ namespace { if (pinned && bit_is_set(pinned, from)) continue; - b = pos.piece_attacks(from) & blockSquares; + b = pos.piece_attacks(from) & target; SERIALIZE_MOVES(b); } return mlist; } + template<> + MoveStack* generate_piece_moves(const Position& pos, MoveStack* mlist, Color us, Bitboard target) { + + Bitboard b; + Square from = pos.king_square(us); + + b = pos.piece_attacks(from) & target; + SERIALIZE_MOVES(b); + return mlist; + } + template