X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Ftypes.h;h=f85ad9a92c9e2c8be9ff0f718ff5552b8fe8f1c5;hp=345751455dbf54d853a88dd874eea367ecd58e35;hb=b9f8cb78372773128257866881f632bce0884aed;hpb=89ec224cb92f49a6edc3d8b03a43d1c4418c285a diff --git a/src/types.h b/src/types.h index 34575145..f85ad9a9 100644 --- a/src/types.h +++ b/src/types.h @@ -201,9 +201,10 @@ enum Depth { ONE_PLY = 2, - DEPTH_ZERO = 0 * ONE_PLY, - DEPTH_QS_CHECKS = -1 * ONE_PLY, - DEPTH_QS_NO_CHECKS = -2 * ONE_PLY, + DEPTH_ZERO = 0 * ONE_PLY, + DEPTH_QS_CHECKS = -1 * ONE_PLY, + DEPTH_QS_NO_CHECKS = -2 * ONE_PLY, + DEPTH_QS_RECAPTURES = -4 * ONE_PLY, DEPTH_NONE = -127 * ONE_PLY }; @@ -251,6 +252,15 @@ enum ScaleFactor { SCALE_FACTOR_NONE = 255 }; +enum CastleRight { + CASTLES_NONE = 0, + WHITE_OO = 1, + BLACK_OO = 2, + WHITE_OOO = 4, + BLACK_OOO = 8, + ALL_CASTLES = 15 +}; + /// Score enum keeps a midgame and an endgame value in a single /// integer (enum), first LSB 16 bits are used to store endgame @@ -336,6 +346,17 @@ const Value RookValueEndgame = Value(0x4FE); const Value QueenValueMidgame = Value(0x9D9); const Value QueenValueEndgame = Value(0x9FE); +extern const Value PieceValueMidgame[17]; +extern const Value PieceValueEndgame[17]; + +inline Value piece_value_midgame(Piece p) { + return PieceValueMidgame[p]; +} + +inline Value piece_value_endgame(Piece p) { + return PieceValueEndgame[p]; +} + inline Value value_mate_in(int ply) { return VALUE_MATE - ply; } @@ -348,11 +369,11 @@ inline Piece make_piece(Color c, PieceType pt) { return Piece((c << 3) | pt); } -inline PieceType type_of_piece(Piece p) { +inline PieceType piece_type(Piece p) { return PieceType(p & 7); } -inline Color color_of_piece(Piece p) { +inline Color piece_color(Piece p) { return Color(p >> 3); }