summaryrefslogtreecommitdiff
path: root/src/move.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/move.c')
-rwxr-xr-xsrc/move.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/move.c b/src/move.c
index 1ed1485..44e7073 100755
--- a/src/move.c
+++ b/src/move.c
@@ -121,6 +121,8 @@ Return value:
ASSERT(IS_VALID_COLOR(c));
ASSERT(pos->cPawns[c][uIndex] == cFrom);
pos->cPawns[c][uIndex] = cTo;
+ pos->bbPawns[c] &= ~COOR_TO_BB(cFrom);
+ pos->bbPawns[c] |= COOR_TO_BB(cTo);
pos->u64PawnSig ^= g_u64PawnSigSeeds[cFrom][c];
pos->u64PawnSig ^= g_u64PawnSigSeeds[cTo][c];
pos->rgSquare[cTo].pPiece = p;
@@ -224,6 +226,8 @@ Return value:
ASSERT(IS_VALID_COLOR(c));
ASSERT(pos->cPawns[c][uIndex] == cFrom);
pos->cPawns[c][uIndex] = cTo;
+ pos->bbPawns[c] &= ~COOR_TO_BB(cFrom);
+ pos->bbPawns[c] |= COOR_TO_BB(cTo);
pos->rgSquare[cTo].pPiece = p;
pos->rgSquare[cTo].uIndex = uIndex;
#ifdef DEBUG
@@ -293,10 +297,11 @@ Return value:
ASSERT(pos->uPawnMaterial[color] <= (7 * VALUE_PAWN));
pos->u64PawnSig ^= g_u64PawnSigSeeds[cSquare][color];
+ pos->bbPawns[color] &= ~COOR_TO_BB(cSquare);
//
// Remove this pawn from the pawn list.
- //
+ //
pos->uPawnCount[color]--;
ASSERT(pos->uPawnCount[color] < 8);
uLastIndex = pos->uPawnCount[color];
@@ -426,10 +431,11 @@ Return value:
pos->uPawnMaterial[color] -= pv;
ASSERT(pos->uPawnMaterial[color] <= (7 * VALUE_PAWN));
-
+ pos->bbPawns[color] &= ~COOR_TO_BB(cSquare);
+
//
// Remove this pawn from the pawn list.
- //
+ //
pos->uPawnCount[color]--;
ASSERT(pos->uPawnCount[color] < 8);
uLastIndex = pos->uPawnCount[color]; // optimized...
@@ -542,6 +548,7 @@ Return value:
pos->uPawnCount[color]++;
ASSERT(pos->uPawnCount[color] <= 8);
pos->cPawns[color][uIndex] = cSquare;
+ pos->bbPawns[color] |= COOR_TO_BB(cSquare);
pos->u64PawnSig ^= g_u64PawnSigSeeds[cSquare][color];
}
else
@@ -634,6 +641,7 @@ Return value:
pos->uPawnCount[color]++;
ASSERT(pos->uPawnCount[color] <= 8);
pos->cPawns[color][uIndex] = cSquare;
+ pos->bbPawns[color] |= COOR_TO_BB(cSquare);
}
else
{