diff options
Diffstat (limited to 'src/move.c')
| -rwxr-xr-x | src/move.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -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)) { |
