int score;
};
-// Note that operator< is set up such that std::sort() will sort in descending order
+// Note that operator< is set up such that std::stable_sort() will sort in descending order
inline bool operator<(const MoveStack& f, const MoveStack& s) { return s.score < f.score; }
return Square(m & 0x3F);
}
-inline PieceType move_promotion(Move m) {
+inline PieceType move_promotion_piece(Move m) {
return PieceType((int(m) >> 12) & 7);
}
+inline int move_is_promotion(Move m) {
+ return m & (7 << 12);
+}
+
inline int move_is_ep(Move m) {
return m & (1 << 15);
}