X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=59b605eca2665f12b40f4a816d71badc9fa6c449;hp=36a9b10a2f653c0361a351e4e51e25cd8cf8ead5;hb=980124c6094f90741a250a40c160efb593244ffb;hpb=5f7d37273caf4256d10c0b92e68c397c398fedd1 diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 36a9b10a..59b605ec 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -571,25 +571,25 @@ namespace { ei.egMobility += Sign[us] * EgBonus[Piece][mob]; // Bishop and Knight outposts - if ( (Piece != BISHOP && Piece != KNIGHT) // compile time condition - || !p.square_is_weak(s, them)) - return mob; - - // Initial bonus based on square - Value v, bonus; - v = bonus = OutpostBonus[Piece][relative_square(us, s)]; - - // Increase bonus if supported by pawn, especially if the opponent has - // no minor piece which can exchange the outpost piece - if (v && (p.pawn_attacks(them, s) & p.pawns(us))) + if ( (Piece == BISHOP || Piece == KNIGHT) // compile time condition + && p.square_is_weak(s, them)) { - bonus += v / 2; - if ( p.piece_count(them, KNIGHT) == 0 - && (SquaresByColorBB[square_color(s)] & p.bishops(them)) == EmptyBoardBB) - bonus += v; + // Initial bonus based on square + Value v, bonus; + v = bonus = OutpostBonus[Piece][relative_square(us, s)]; + + // Increase bonus if supported by pawn, especially if the opponent has + // no minor piece which can exchange the outpost piece + if (v && (p.pawn_attacks(them, s) & p.pawns(us))) + { + bonus += v / 2; + if ( p.piece_count(them, KNIGHT) == 0 + && (SquaresByColorBB[square_color(s)] & p.bishops(them)) == EmptyBoardBB) + bonus += v; + } + ei.mgValue += Sign[us] * bonus; + ei.egValue += Sign[us] * bonus; } - ei.mgValue += Sign[us] * bonus; - ei.egValue += Sign[us] * bonus; return mob; }