Fix book file regression
authorMarco Costalba <mcostalba@gmail.com>
Sat, 26 May 2012 09:11:59 +0000 (10:11 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sat, 26 May 2012 09:14:08 +0000 (10:14 +0100)
Revision 2aac860db3d04881103a3b0d0 of 27 / 4 / 2012
changed can_castle() signatures from bool to int and
this broke the code that calculates polyglot hash key
in book.cpp

Instead of directly fixing the code we prefer to change
castling rights definitions to align to the polyglot ones
(as we did in previous patch). After this step we can simply
take internal castle rights as they are and use them
directly to calculate polyglot book hash key, as we do
in this patch that fixes the regression.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/book.cpp

index cc557e4800aac7126ed74ccdb1cf33c29ba9436c..0fff6827e1125a26a59ea158202dfd2409144e84 100644 (file)
@@ -323,8 +323,7 @@ namespace {
         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)];