- // Update gain for the parent non-capture move given the static position
- // evaluation before and after the move.
- if ( (move = (ss-1)->currentMove) != MOVE_NULL
- && (ss-1)->eval != VALUE_NONE
- && ss->eval != VALUE_NONE
- && pos.captured_piece_type() == PIECE_TYPE_NONE
- && !is_special(move))
- {
- Square to = move_to(move);
- H.update_gain(pos.piece_on(to), to, -(ss-1)->eval - ss->eval);
- }
+ // Save gain for the parent non-capture move
+ update_gains(pos, (ss-1)->currentMove, (ss-1)->eval, ss->eval);