]> git.sesse.net Git - stockfish/blobdiff - src/movepick.cpp
Fix: In qsearch do not use TT value when in a PV node
[stockfish] / src / movepick.cpp
index 20aaabbdde0288a28743ea230706dc2905cc281f..d9fe8d2cf329c2cf4fe109efec6f0225f329611d 100644 (file)
@@ -97,7 +97,7 @@ MovePicker::MovePicker(const Position& p, bool pv, Move ttm,
       phaseIndex = (noCaptures ? NoMovesPhaseIndex : QsearchWithoutChecksPhaseIndex);
 
   dc = p.discovered_check_candidates(us);
-  pinned = p.pinned_pieces(p.side_to_move());
+  pinned = p.pinned_pieces(us);
 
   finished = false;
 }
@@ -151,7 +151,7 @@ Move MovePicker::get_next_move() {
         break;
 
     case PH_BAD_CAPTURES:
-        badCapturesPicked = 0;
+        movesPicked = 0;
         break;
 
     case PH_NONCAPTURES:
@@ -162,7 +162,7 @@ Move MovePicker::get_next_move() {
 
     case PH_EVASIONS:
         assert(pos.is_check());
-        numOfMoves = generate_evasions(pos, moves);
+        numOfMoves = generate_evasions(pos, moves, pinned);
         score_evasions();
         movesPicked = 0;
         break;
@@ -434,12 +434,12 @@ Move MovePicker::pick_move_from_list() {
 
   case PH_BAD_CAPTURES:
       assert(!pos.is_check());
-      assert(badCapturesPicked >= 0);
+      assert(movesPicked >= 0);
       // It's probably a good idea to use SEE move ordering here, instead
       // of just picking the first move.  FIXME
-      while (badCapturesPicked < numOfBadCaptures)
+      while (movesPicked < numOfBadCaptures)
       {
-          move = badCaptures[badCapturesPicked++].move;
+          move = badCaptures[movesPicked++].move;
           if (   move != ttMove
               && move != mateKiller
               && pos.pl_move_is_legal(move, pinned))