summaryrefslogtreecommitdiff
path: root/src/move.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/move.c')
-rwxr-xr-xsrc/move.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/move.c b/src/move.c
index 27d86df..1da5546 100755
--- a/src/move.c
+++ b/src/move.c
@@ -66,6 +66,8 @@ Return value:
pos->bbPieces[c][PIECE_TYPE(p)] |= COOR_TO_BB(cTo);
pos->bbOccupied &= ~COOR_TO_BB(cFrom);
pos->bbOccupied |= COOR_TO_BB(cTo);
+ pos->bbOccupiedSide[c] &= ~COOR_TO_BB(cFrom);
+ pos->bbOccupiedSide[c] |= COOR_TO_BB(cTo);
pos->u64NonPawnSig ^= g_u64SigSeeds[cFrom][PIECE_TYPE(p)][c];
pos->u64NonPawnSig ^= g_u64SigSeeds[cTo][PIECE_TYPE(p)][c];
#ifdef DEBUG
@@ -127,6 +129,8 @@ Return value:
pos->bbPawns[c] |= COOR_TO_BB(cTo);
pos->bbOccupied &= ~COOR_TO_BB(cFrom);
pos->bbOccupied |= COOR_TO_BB(cTo);
+ pos->bbOccupiedSide[c] &= ~COOR_TO_BB(cFrom);
+ pos->bbOccupiedSide[c] |= COOR_TO_BB(cTo);
pos->u64PawnSig ^= g_u64PawnSigSeeds[cFrom][c];
pos->u64PawnSig ^= g_u64PawnSigSeeds[cTo][c];
pos->rgSquare[cTo].pPiece = p;
@@ -183,6 +187,8 @@ Return value:
pos->bbPieces[c][PIECE_TYPE(p)] |= COOR_TO_BB(cTo);
pos->bbOccupied &= ~COOR_TO_BB(cFrom);
pos->bbOccupied |= COOR_TO_BB(cTo);
+ pos->bbOccupiedSide[c] &= ~COOR_TO_BB(cFrom);
+ pos->bbOccupiedSide[c] |= COOR_TO_BB(cTo);
pos->rgSquare[cTo].pPiece = p;
pos->rgSquare[cTo].uIndex = uIndex;
#ifdef DEBUG
@@ -236,6 +242,8 @@ Return value:
pos->bbPawns[c] |= COOR_TO_BB(cTo);
pos->bbOccupied &= ~COOR_TO_BB(cFrom);
pos->bbOccupied |= COOR_TO_BB(cTo);
+ pos->bbOccupiedSide[c] &= ~COOR_TO_BB(cFrom);
+ pos->bbOccupiedSide[c] |= COOR_TO_BB(cTo);
pos->rgSquare[cTo].pPiece = p;
pos->rgSquare[cTo].uIndex = uIndex;
#ifdef DEBUG
@@ -284,6 +292,7 @@ Return value:
ASSERT(IS_VALID_PIECE(pLifted));
ASSERT(!IS_KING(pLifted));
pos->bbOccupied &= ~COOR_TO_BB(cSquare);
+ pos->bbOccupiedSide[GET_COLOR(pLifted)] &= ~COOR_TO_BB(cSquare);
uIndex = pos->rgSquare[cSquare].uIndex;
#ifdef DEBUG
ASSERT(IS_VALID_PIECE_INDEX(uIndex));
@@ -420,6 +429,7 @@ Return value:
ASSERT(IS_VALID_PIECE(pLifted));
ASSERT(!IS_KING(pLifted));
pos->bbOccupied &= ~COOR_TO_BB(cSquare);
+ pos->bbOccupiedSide[GET_COLOR(pLifted)] &= ~COOR_TO_BB(cSquare);
uIndex = pos->rgSquare[cSquare].uIndex;
#ifdef DEBUG
@@ -544,6 +554,7 @@ Return value:
pos->iMaterialBalance[FLIP(color)] -= pv;
ASSERT(pos->iMaterialBalance[WHITE] * -1 == pos->iMaterialBalance[BLACK]);
pos->bbOccupied |= COOR_TO_BB(cSquare);
+ pos->bbOccupiedSide[color] |= COOR_TO_BB(cSquare);
if (IS_PAWN(pPiece))
{
@@ -638,6 +649,7 @@ Return value:
pos->iMaterialBalance[FLIP(color)] -= pv;
ASSERT(pos->iMaterialBalance[WHITE] * -1 == pos->iMaterialBalance[BLACK]);
pos->bbOccupied |= COOR_TO_BB(cSquare);
+ pos->bbOccupiedSide[color] |= COOR_TO_BB(cSquare);
if (IS_PAWN(pPiece))
{