+ assert (m != MOVE_NONE && m != MOVE_NULL);
+ return (m & (3 << 15)) ? !move_is_castle(m) : !square_is_empty(move_to(m));
+}
+
+inline bool Position::move_is_capture_or_promotion(Move m) const {
+
+ assert (m != MOVE_NONE && m != MOVE_NULL);
+ return (m & (0x1F << 12)) ? !move_is_castle(m) : !square_is_empty(move_to(m));
+}
+
+inline PieceType Position::captured_piece_type() const {
+ return st->capturedType;
+}
+
+inline int Position::thread() const {
+ return threadID;
+}
+
+inline void Position::do_allow_oo(Color c) {
+ st->castleRights |= (1 + int(c));
+}