X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmovegen.cpp;h=a0c06aa8dc6404f1c4b4df109a7fefa6ae0ef67f;hp=84acfc0cc0d69dad63ee9f8867c96a311863d2ac;hb=99e547f4cb190e462d0c582b731a0fcf25ce1545;hpb=1fd020a8ba98a95775639cdebd19e3592b767eb3 diff --git a/src/movegen.cpp b/src/movegen.cpp index 84acfc0c..a0c06aa8 100644 --- a/src/movegen.cpp +++ b/src/movegen.cpp @@ -32,7 +32,7 @@ namespace { template - MoveStack* generate_castle(const Position& pos, MoveStack* mlist, Color us) { + ExtMove* generate_castle(const Position& pos, ExtMove* mlist, Color us) { if (pos.castle_impeded(us, Side) || !pos.can_castle(make_castle_right(us, Side))) return mlist; @@ -69,8 +69,8 @@ namespace { template - inline MoveStack* generate_promotions(MoveStack* mlist, Bitboard pawnsOn7, - Bitboard target, const CheckInfo* ci) { + inline ExtMove* generate_promotions(ExtMove* mlist, Bitboard pawnsOn7, + Bitboard target, const CheckInfo* ci) { Bitboard b = shift_bb(pawnsOn7) & target; @@ -101,8 +101,8 @@ namespace { template - MoveStack* generate_pawn_moves(const Position& pos, MoveStack* mlist, - Bitboard target, const CheckInfo* ci) { + ExtMove* generate_pawn_moves(const Position& pos, ExtMove* mlist, + Bitboard target, const CheckInfo* ci) { // Compute our parametrized parameters at compile time, named according to // the point of view of white side. @@ -206,12 +206,12 @@ namespace { template FORCE_INLINE - MoveStack* generate_moves(const Position& pos, MoveStack* mlist, Color us, - Bitboard target, const CheckInfo* ci) { + ExtMove* generate_moves(const Position& pos, ExtMove* mlist, Color us, + Bitboard target, const CheckInfo* ci) { assert(Pt != KING && Pt != PAWN); - const Square* pl = pos.piece_list(us, Pt); + const Square* pl = pos.list(us); for (Square from = *pl; from != SQ_NONE; from = *++pl) { @@ -238,8 +238,8 @@ namespace { template FORCE_INLINE - MoveStack* generate_all(const Position& pos, MoveStack* mlist, Color us, - Bitboard target, const CheckInfo* ci = NULL) { + ExtMove* generate_all(const Position& pos, ExtMove* mlist, Color us, + Bitboard target, const CheckInfo* ci = NULL) { const bool Checks = Type == QUIET_CHECKS; @@ -289,7 +289,7 @@ namespace { /// non-captures. Returns a pointer to the end of the move list. template -MoveStack* generate(const Position& pos, MoveStack* mlist) { +ExtMove* generate(const Position& pos, ExtMove* mlist) { assert(Type == CAPTURES || Type == QUIETS || Type == NON_EVASIONS); assert(!pos.checkers()); @@ -304,15 +304,15 @@ MoveStack* generate(const Position& pos, MoveStack* mlist) { } // Explicit template instantiations -template MoveStack* generate(const Position&, MoveStack*); -template MoveStack* generate(const Position&, MoveStack*); -template MoveStack* generate(const Position&, MoveStack*); +template ExtMove* generate(const Position&, ExtMove*); +template ExtMove* generate(const Position&, ExtMove*); +template ExtMove* generate(const Position&, ExtMove*); /// generate generates all pseudo-legal non-captures and knight /// underpromotions that give check. Returns a pointer to the end of the move list. template<> -MoveStack* generate(const Position& pos, MoveStack* mlist) { +ExtMove* generate(const Position& pos, ExtMove* mlist) { assert(!pos.checkers()); @@ -342,7 +342,7 @@ MoveStack* generate(const Position& pos, MoveStack* mlist) { /// generate generates all pseudo-legal check evasions when the side /// to move is in check. Returns a pointer to the end of the move list. template<> -MoveStack* generate(const Position& pos, MoveStack* mlist) { +ExtMove* generate(const Position& pos, ExtMove* mlist) { assert(pos.checkers()); @@ -404,9 +404,9 @@ MoveStack* generate(const Position& pos, MoveStack* mlist) { /// generate generates all the legal moves in the given position template<> -MoveStack* generate(const Position& pos, MoveStack* mlist) { +ExtMove* generate(const Position& pos, ExtMove* mlist) { - MoveStack *end, *cur = mlist; + ExtMove *end, *cur = mlist; Bitboard pinned = pos.pinned_pieces(); Square ksq = pos.king_square(pos.side_to_move());