diff --git a/position/src/move_generator/king.rs b/position/src/move_generator/king.rs index 121905a..1813339 100644 --- a/position/src/move_generator/king.rs +++ b/position/src/move_generator/king.rs @@ -4,9 +4,10 @@ //! generating the possible moves for the king in the given position. use super::{move_generator_declaration, MoveGeneratorInternal, MoveSet}; -use crate::{r#move::Castle, Position}; +use crate::Position; use chessfriend_bitboard::BitBoard; use chessfriend_core::{PlacedPiece, Shape}; +use chessfriend_moves::Castle; move_generator_declaration!(KingMoveGenerator, struct); move_generator_declaration!(KingMoveGenerator, new); diff --git a/position/src/move_generator/move_set.rs b/position/src/move_generator/move_set.rs index 6cefb7a..d03eaef 100644 --- a/position/src/move_generator/move_set.rs +++ b/position/src/move_generator/move_set.rs @@ -1,8 +1,8 @@ // Eryn Wells -use crate::{r#move::Castle, Move, MoveBuilder}; use chessfriend_bitboard::BitBoard; use chessfriend_core::{Color, Piece, PlacedPiece, Shape, Square}; +use chessfriend_moves::{Builder as MoveBuilder, Castle, Move}; /// A set of bitboards defining the moves for a single piece on the board. #[derive(Clone, Debug, Default, Eq, PartialEq)] diff --git a/position/src/position/builders/position_builder.rs b/position/src/position/builders/position_builder.rs index 96757ce..28652ed 100644 --- a/position/src/position/builders/position_builder.rs +++ b/position/src/position/builders/position_builder.rs @@ -2,10 +2,10 @@ use crate::{ position::{flags::Flags, piece_sets::PieceBitBoards}, - r#move::Castle, Position, }; use chessfriend_core::{piece, Color, Piece, PlacedPiece, Rank, Shape, Square}; +use chessfriend_moves::Castle; use std::collections::BTreeMap; #[derive(Clone)] diff --git a/position/src/position/flags.rs b/position/src/position/flags.rs index 47e49bf..7c722a9 100644 --- a/position/src/position/flags.rs +++ b/position/src/position/flags.rs @@ -1,7 +1,7 @@ // Eryn Wells -use crate::r#move::Castle; use chessfriend_core::Color; +use chessfriend_moves::Castle; use std::fmt; #[derive(Clone, Copy, Eq, Hash, PartialEq)] @@ -10,7 +10,7 @@ pub struct Flags(u8); impl Flags { #[inline] pub(super) fn player_has_right_to_castle_flag_offset(color: Color, castle: Castle) -> usize { - ((color as usize) << 1) + castle.into_index() + ((color as usize) << 1) + castle as usize } pub(super) fn player_has_right_to_castle(&self, color: Color, castle: Castle) -> bool { diff --git a/position/src/position/position.rs b/position/src/position/position.rs index 9b913c2..bbdcb9e 100644 --- a/position/src/position/position.rs +++ b/position/src/position/position.rs @@ -5,12 +5,11 @@ use crate::{ check::CheckingPieces, move_generator::{MoveSet, Moves}, position::DiagramFormatter, - r#move::Castle, sight::SightExt, }; use chessfriend_bitboard::BitBoard; use chessfriend_core::{Color, Piece, PlacedPiece, Shape, Square}; -use chessfriend_moves::EnPassant; +use chessfriend_moves::{Castle, EnPassant}; use std::{cell::OnceCell, fmt}; #[derive(Clone, Debug, Eq)] @@ -93,7 +92,7 @@ impl Position { return false; } - let castling_parameters = castle.parameters(); + let castling_parameters = castle.parameters(player); let all_pieces = self.occupied_squares(); if !(all_pieces & castling_parameters.clear_squares()).is_empty() {