]> git.sesse.net Git - stockfish/blobdiff - src/position.h
Fix a warning under Intel compiler in square.h
[stockfish] / src / position.h
index 173de0c081c59396996b1d6b1d244e38bc1747d0..d2b37478e4ce681714fc11b654986da82a016209 100644 (file)
 // Forcing value to bool 'true' or 'false' (performance warning)
 #pragma warning(disable: 4800)
 
+// Conditional expression is constant
+#pragma warning(disable: 4127)
+
+
 #endif
 
 ////
@@ -38,7 +42,6 @@
 #include "direction.h"
 #include "move.h"
 #include "piece.h"
-#include "phase.h"
 #include "square.h"
 #include "value.h"
 
@@ -61,7 +64,7 @@ const int MaxGameLength = 220;
 //// Types
 ////
 
-/// Castle rights, encoded as bit fields:
+/// Castle rights, encoded as bit fields
 
 enum CastleRights {
   NO_CASTLES = 0,
@@ -72,6 +75,12 @@ enum CastleRights {
   ALL_CASTLES = 15
 };
 
+/// Game phase
+enum Phase {
+  PHASE_ENDGAME = 0,
+  PHASE_MIDGAME = 128
+};
+
 
 /// The StateInfo struct stores information we need to restore a Position
 /// object to its previous state when we retract a move. Whenever a move
@@ -300,7 +309,7 @@ private:
   void allow_ooo(Color c);
 
   // Helper functions for doing and undoing moves
-  void do_capture_move(Move m, PieceType capture, Color them, Square to);
+  void do_capture_move(PieceType capture, Color them, Square to);
   void do_castle_move(Move m);
   void do_promotion_move(Move m);
   void do_ep_move(Move m);
@@ -650,15 +659,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);