//// Types
////
+/// struct checkInfo is initialized at c'tor time and keeps
+/// info used to detect if a move gives check.
+
+struct CheckInfo {
+
+ CheckInfo(const Position&);
+
+ Square ksq;
+ Bitboard dc;
+ Bitboard checkSq[8];
+};
+
/// Castle rights, encoded as bit fields
enum CastleRights {
/// must be passed as a parameter.
struct StateInfo {
- Key key, pawnKey, materialKey;
+ Key pawnKey, materialKey;
int castleRights, rule50, pliesFromNull;
Square epSquare;
Score value;
Value npMaterial[2];
+ Key key;
PieceType capture;
Bitboard checkersBB;
StateInfo* previous;