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;
}
break;
case PH_BAD_CAPTURES:
- badCapturesPicked = 0;
+ movesPicked = 0;
break;
case PH_NONCAPTURES:
case PH_EVASIONS:
assert(pos.is_check());
- numOfMoves = generate_evasions(pos, moves);
+ numOfMoves = generate_evasions(pos, moves, pinned);
score_evasions();
movesPicked = 0;
break;
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))