uint64_t book_key(const Position& pos) {
uint64_t key = 0;
- Bitboard b = pos.occupied_squares();
+ Bitboard b = pos.pieces();
while (b)
{
key ^= ZobPiece[PieceOffset[pos.piece_on(s)] + s];
}
- b = (pos.can_castle(WHITE_OO) << 0) | (pos.can_castle(WHITE_OOO) << 1)
- | (pos.can_castle(BLACK_OO) << 2) | (pos.can_castle(BLACK_OOO) << 3);
+ b = pos.can_castle(ALL_CASTLES);
while (b)
key ^= ZobCastle[pop_1st_bit(&b)];
Book::Book() : size(0) {
- for (int i = abs(system_time() % 10000); i > 0; i--)
+ for (int i = Time::current_time().msec() % 10000; i > 0; i--)
RKiss.rand<unsigned>(); // Make random number generation less deterministic
}
return false; // Silently fail if the file is not found
// Get the book size in number of entries, we are already at the end of file
- size = tellg() / sizeof(BookEntry);
+ size = (size_t)tellg() / sizeof(BookEntry);
if (!good())
{