]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Assume input FEN string is correct in from_fen()
[stockfish] / src / search.cpp
index 53deb0f2617d5e1749802858e135ae7231b6d319..daf40dec7cc05a9c1b6f336bf9b3bb062d4311e2 100644 (file)
@@ -300,7 +300,7 @@ namespace {
     if (moveIsCheck && pos.see_sign(m) >= 0)
         result += CheckExtension[PvNode];
 
-    if (pos.type_of_piece_on(move_from(m)) == PAWN)
+    if (piece_type(pos.piece_on(move_from(m))) == PAWN)
     {
         Color c = pos.side_to_move();
         if (relative_rank(c, move_to(m)) == RANK_7)
@@ -316,9 +316,9 @@ namespace {
     }
 
     if (   captureOrPromotion
-        && pos.type_of_piece_on(move_to(m)) != PAWN
+        && piece_type(pos.piece_on(move_to(m))) != PAWN
         && (  pos.non_pawn_material(WHITE) + pos.non_pawn_material(BLACK)
-            - pos.midgame_value_of_piece_on(move_to(m)) == VALUE_ZERO)
+            - piece_value_midgame(pos.piece_on(move_to(m))) == VALUE_ZERO)
         && !move_is_special(m))
     {
         result += PawnEndgameExtension[PvNode];
@@ -403,7 +403,7 @@ bool think(Position& pos, const SearchLimits& limits, Move searchMoves[]) {
   NodesSincePoll = 0;
   current_search_time(get_system_time());
   Limits = limits;
-  TimeMgr.init(Limits, pos.startpos_ply_counter());
+  TimeMgr.init(Limits, pos.full_moves());
 
   // Set output steram in normal or chess960 mode
   cout << set960(pos.is_chess960());
@@ -916,7 +916,7 @@ namespace {
 
         assert(rdepth >= ONE_PLY);
 
-        MovePicker mp(pos, ttMove, H, Position::see_value(pos.captured_piece_type()));
+        MovePicker mp(pos, ttMove, H, pos.captured_piece_type());
         CheckInfo ci(pos);
 
         while ((move = mp.get_next_move()) != MOVE_NONE)
@@ -1412,7 +1412,7 @@ split_point_start: // At split points actual search starts from here
           && !pos.move_is_passed_pawn_push(move))
       {
           futilityValue =  futilityBase
-                         + pos.endgame_value_of_piece_on(move_to(move))
+                         + piece_value_endgame(pos.piece_on(move_to(move)))
                          + (move_is_ep(move) ? PawnValueEndgame : VALUE_ZERO);
 
           if (futilityValue < alpha)
@@ -1530,7 +1530,7 @@ split_point_start: // At split points actual search starts from here
         return true;
 
     // Rule 2. Queen contact check is very dangerous
-    if (   type_of_piece(pc) == QUEEN
+    if (   piece_type(pc) == QUEEN
         && bit_is_set(kingAtt, to))
         return true;
 
@@ -1540,7 +1540,7 @@ split_point_start: // At split points actual search starts from here
     while (b)
     {
         victimSq = pop_1st_bit(&b);
-        futilityValue = futilityBase + pos.endgame_value_of_piece_on(victimSq);
+        futilityValue = futilityBase + piece_value_endgame(pos.piece_on(victimSq));
 
         // Note that here we generate illegal "double move"!
         if (   futilityValue >= beta
@@ -1665,8 +1665,8 @@ split_point_start: // At split points actual search starts from here
     // Case 2: If the threatened piece has value less than or equal to the
     // value of the threatening piece, don't prune moves which defend it.
     if (   pos.move_is_capture(threat)
-        && (   pos.midgame_value_of_piece_on(tfrom) >= pos.midgame_value_of_piece_on(tto)
-            || pos.type_of_piece_on(tfrom) == KING)
+        && (   piece_value_midgame(pos.piece_on(tfrom)) >= piece_value_midgame(pos.piece_on(tto))
+            || piece_type(pos.piece_on(tfrom)) == KING)
         && pos.move_attacks_square(m, tto))
         return true;