summaryrefslogtreecommitdiff
path: root/src/chess.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/chess.h')
-rwxr-xr-xsrc/chess.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/chess.h b/src/chess.h
index f39a956..41c8734 100755
--- a/src/chess.h
+++ b/src/chess.h
@@ -659,8 +659,8 @@ typedef struct _POSITION
// Per-color pawn location bitboard -- same incremental-maintenance
// idea as bbPieces above, but for pawns (which bbPieces
- // deliberately excludes). Exists so _BuildOccupiedBB (see.c) can
- // build full-board occupancy via two ORs instead of looping
+ // deliberately excludes). Exists so full-board occupancy
+ // (pos->bbOccupied below) can be built via two ORs instead of looping
// cPawns[2][8] (up to 16 iterations) on every call -- see
// board_representation/MIGRATION.md section 3. Also the single
// source of truth for pawn locations used by pawn eval
@@ -671,6 +671,23 @@ typedef struct _POSITION
// this field directly instead.
BITBOARD bbPawns[2];
+ // Full-board occupancy (both colors, every piece including pawns
+ // and kings) -- same incremental-maintenance idea as bbPieces/
+ // bbPawns above, added 2026-09-05 per board_representation/
+ // EVAL.md section 0 (was previously only on MOVE_STACK, rebuilt
+ // on demand via _BuildFullOccupiedBB at many independent call
+ // sites in generate.c/movesup.c/see.c, and needed again by the
+ // planned eval.c mobility rewrite -- one incrementally-maintained
+ // copy here replaces all of that). Maintained by move.c's
+ // SlidePiece/SlidePawn/LiftPiece/PlacePiece (and their
+ // WithoutSigs variants) at the same sites that already maintain
+ // bbPieces/bbPawns, unconditionally (no per-color/per-type branch
+ // needed, unlike those). _BuildFullOccupiedBB(pos) (generate.c)
+ // remains as the from-scratch ground truth used to verify this
+ // field stays in sync (see VerifyPositionConsistency, board.c),
+ // not as something callers should call directly anymore.
+ BITBOARD bbOccupied;
+
ULONG uWhiteSqBishopCount[2]; // num bishops on white squares
SCORE iMaterialBalance[2]; // material balance