aboutsummaryrefslogtreecommitdiff
path: root/src/board
diff options
context:
space:
mode:
Diffstat (limited to 'src/board')
-rw-r--r--src/board/board.cpp9
-rw-r--r--src/board/board.hpp2
2 files changed, 10 insertions, 1 deletions
diff --git a/src/board/board.cpp b/src/board/board.cpp
index 572a3f0..2257010 100644
--- a/src/board/board.cpp
+++ b/src/board/board.cpp
@@ -259,6 +259,8 @@ void UnMakeMove(UndoMove undo, Game *g) {
};
void UpdateHelpers(Game *g) {
g->PieceBitboard = 0;
+ g->WhitePieceBitboard = 0;
+ g->BlackPieceBitboard = 0;
for (uint8_t i = 0; i < 64; i++) {
Piece piece = g->pieces[i];
if (piece.type == NONEPIECE) {
@@ -271,8 +273,13 @@ void UpdateHelpers(Game *g) {
g->BlackKingPosition = i;
}
}
- g->PieceBitboard |= (1ULL << i);
+ if (piece.color) {
+ g->WhitePieceBitboard |= (1ULL << i);
+ } else {
+ g->BlackPieceBitboard |= (1ULL << i);
+ }
}
+ g->PieceBitboard = g->WhitePieceBitboard | g->BlackPieceBitboard;
}
void SetPiece(int i, PieceType type, bool color, Game *g) {
g->pieces[i] = {.color = color, .type = type};
diff --git a/src/board/board.hpp b/src/board/board.hpp
index 869e223..e754991 100644
--- a/src/board/board.hpp
+++ b/src/board/board.hpp
@@ -53,6 +53,8 @@ struct TranspositionsEntry {
struct Game {
Piece pieces[64];
uint64_t PieceBitboard = 0; // used for quicly iterating over all squares
+ uint64_t WhitePieceBitboard = 0;
+ uint64_t BlackPieceBitboard = 0;
uint8_t WhiteKingPosition = 0;
uint8_t BlackKingPosition = 0;
bool turn = true; // 1 white; 0 black