struct StateInfo {
Key key, pawnKey, materialKey;
int castleRights, rule50;
- Square kingSquare[2], epSquare;
+ Square epSquare;
Value mgValue, egValue;
Value npMaterial[2];
// Piece lists
Square piece_list(Color c, PieceType pt, int index) const;
+ const Square* piece_list_begin(Color c, PieceType pt) const;
// Information about attacks to or from a given square
Bitboard attackers_to(Square s) const;
template<GamePhase> Value compute_value() const;
Value compute_non_pawn_material(Color c) const;
- // Bitboards
- Bitboard byColorBB[2], byTypeBB[8];
-
// Board
Piece board[64];
+ // Bitboards
+ Bitboard byTypeBB[8], byColorBB[2];
+
// Piece counts
int pieceCount[2][8]; // [color][pieceType]
return pieceList[c][pt][index];
}
+inline const Square* Position::piece_list_begin(Color c, PieceType pt) const {
+ return pieceList[c][pt];
+}
+
inline Square Position::ep_square() const {
return st->epSquare;
}
inline Square Position::king_square(Color c) const {
- return st->kingSquare[c];
+ return pieceList[c][KING][0];
}
inline bool Position::can_castle_kingside(Color side) const {