]> git.sesse.net Git - stockfish/blobdiff - src/position.h
Fix an overflow bug in pawns stormValue
[stockfish] / src / position.h
index bd59b5c959d624c90c66a63f943a04f33d19fd0b..510784e593e8e1d5ab811d98177f295c6ada56e5 100644 (file)
@@ -79,14 +79,15 @@ enum CastleRights {
 /// must be passed as a parameter.
 
 struct StateInfo {
-  Bitboard checkersBB;
   Key key, pawnKey, materialKey;
   int castleRights, rule50;
   Square epSquare;
   Value mgValue, egValue;
+
   PieceType capture;
-  StateInfo* previous;
+  Bitboard checkersBB;
   Move lastMove;
+  StateInfo* previous;
 };
 
 
@@ -311,8 +312,8 @@ private:
   template<PieceType Piece>
   void update_checkers(Bitboard* pCheckersBB, Square ksq, Square from, Square to, Bitboard dcCandidates);
 
-  template<PieceType Piece, bool FindPinned>
-  Bitboard hidden_checks(Color c, Square ksq, Bitboard& pinners) const;
+  template<bool FindPinned>
+  Bitboard hidden_checkers(Color c) const;
 
   // Computing hash keys from scratch (for initialization and debugging)
   Key compute_key() const;
@@ -649,15 +650,9 @@ inline Value Position::non_pawn_material(Color c) const {
 
 inline Phase Position::game_phase() const {
 
-  // The purpose of the Value(325) terms below is to make sure the difference
-  // between MidgameLimit and EndgameLimit is a power of 2, which should make
-  // the division at the end of the function a bit faster.
-  static const Value MidgameLimit =  2 * QueenValueMidgame
-                                   + 2 * RookValueMidgame
-                                   + 6 * BishopValueMidgame
-                                   + Value(325);
-
-  static const Value EndgameLimit = 4 * RookValueMidgame - Value(325);
+  // Values modified by Joona Kiiski
+  static const Value MidgameLimit = Value(15713);
+  static const Value EndgameLimit = Value(4428);
 
   Value npm = non_pawn_material(WHITE) + non_pawn_material(BLACK);