stage = PROBCUT_TT + !(ttm && pos.capture_stage(ttm)
&& pos.pseudo_legal(ttm)
- && pos.see_ge(ttm, threshold));
+ && pos.see_ge(ttm, occupied, threshold));
}
/// MovePicker::score() assigns a numerical value to each move in a list, used
case GOOD_CAPTURE:
if (select<Next>([&](){
- return pos.see_ge(*cur, Value(-cur->value)) ?
+ return pos.see_ge(*cur, occupied, Value(-cur->value)) ?
// Move losing capture to endBadCaptures to be tried later
true : (*endBadCaptures++ = *cur, false); }))
return *(cur - 1);
return select<Best>([](){ return true; });
case PROBCUT:
- return select<Next>([&](){ return pos.see_ge(*cur, threshold); });
+ return select<Next>([&](){ return pos.see_ge(*cur, occupied, threshold); });
case QCAPTURE:
if (select<Next>([&](){ return depth > DEPTH_QS_RECAPTURES