-inline bool Position::can_castle(Color side) const {
- return can_castle_kingside(side) || can_castle_queenside(side);
+inline bool Position::can_castle(Color c) const {
+ return st->castleRights & ((WHITE_OO | WHITE_OOO) << c);
+}
+
+inline void Position::set_castle_kingside(Color c) {
+ st->castleRights |= (WHITE_OO << c);
+}
+
+inline void Position::set_castle_queenside(Color c) {
+ st->castleRights |= (WHITE_OOO << c);