sf = ScaleFactor(50 * sf / SCALE_FACTOR_NORMAL);
}
- // Stealmate detection
- Color stm = pos.side_to_move();
- if ( (ei.attackedBy[stm][ALL_PIECES] == ei.attackedBy[stm][KING])
- && (!(ei.attackedBy[stm][KING] & ~ei.attackedBy[~stm][ALL_PIECES]))
- && !MoveList<LEGAL>(pos).size())
- sf = SCALE_FACTOR_DRAW;
-
// Interpolate between a middlegame and a (scaled by 'sf') endgame score
Value v = mg_value(score) * int(ei.mi->game_phase())
+ eg_value(score) * int(PHASE_MIDGAME - ei.mi->game_phase()) * sf / SCALE_FACTOR_NORMAL;