diff options
Diffstat (limited to 'src/generate.c')
| -rwxr-xr-x | src/generate.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/generate.c b/src/generate.c index f1ebab8..7d7778f 100755 --- a/src/generate.c +++ b/src/generate.c @@ -2522,6 +2522,7 @@ Return value: // // Captures and promotions, use SEE // + pStack->mvf[u].bvFlags &= ~(MVF_SEE_KNOWN | MVF_SEE_NONNEGATIVE); if (IS_CAPTURE_OR_PROMOTION(mv)) { ASSERT((mv.pCaptured) || (mv.pPromoted)); @@ -2530,6 +2531,8 @@ Return value: if ((s <= 0) || mv.pPromoted) { s = SEE(pos, mv); + pStack->mvf[u].bvFlags |= MVF_SEE_KNOWN | + ((s >= 0) ? MVF_SEE_NONNEGATIVE : 0); } if (s >= 0) @@ -2568,7 +2571,7 @@ Return value: s |= (IS_SAME_MOVE(sKillers[1].mv, mv) * sKillers[1].uBonus); s |= (IS_SAME_MOVE(sKillers[2].mv, mv) * sKillers[2].uBonus); s |= (IS_SAME_MOVE(sKillers[3].mv, mv) * sKillers[3].uBonus); - s |= ((GOOD_MOVE + PIECE_VALUE(mv.pMoved) / 2) * + s |= ((GOOD_MOVE + PIECE_VALUE(mv.pMoved) / 2) * (mv.cFrom == cEnprise)); ASSERT(s >= 0); } @@ -2683,6 +2686,7 @@ Return value: // // Captures and promotions, use SEE // + pStack->mvf[u].bvFlags &= ~(MVF_SEE_KNOWN | MVF_SEE_NONNEGATIVE); if (IS_CAPTURE_OR_PROMOTION(mv)) { ASSERT((mv.pCaptured) || (mv.pPromoted)); @@ -2691,6 +2695,8 @@ Return value: if ((s <= 0) || mv.pPromoted) { s = SEE(pos, mv); + pStack->mvf[u].bvFlags |= MVF_SEE_KNOWN | + ((s >= 0) ? MVF_SEE_NONNEGATIVE : 0); } if (s > 0) |
