- ei.mgMobility += Sign[us] * MidgameKnightMobilityBonus[mob];
- ei.egMobility += Sign[us] * EndgameKnightMobilityBonus[mob];
+ ei.mgMobility += Sign[us] * mgBonus[mob];
+ ei.egMobility += Sign[us] * egBonus[mob];
+
+ return mob;
+ }
+
+ // evaluate_knight() assigns bonuses and penalties to a knight of a given
+ // color on a given square.
+
+ void evaluate_knight(const Position &p, Square s, Color us, EvalInfo &ei) {
+
+ Color them = opposite_color(us);
+ Bitboard b = p.knight_attacks(s);
+ ei.attackedBy[us][KNIGHT] |= b;
+
+ // King attack and mobility
+ evaluate_common(p, b, us, ei, KnightAttackWeight,
+ MidgameKnightMobilityBonus, EndgameKnightMobilityBonus);