summaryrefslogtreecommitdiff
path: root/src/chess.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/chess.h')
-rwxr-xr-xsrc/chess.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/chess.h b/src/chess.h
index 137344f..a83a13d 100755
--- a/src/chess.h
+++ b/src/chess.h
@@ -652,7 +652,18 @@ typedef struct _POSITION
SCORE iMaterialBalance[2]; // material balance
// temporary storage space for use in eval
- COOR cTrapped[2];
+ //
+ // Small fixed-capacity list of zero-mobility piece candidates per
+ // color (bishop/knight/rook/queen evals each can push one), not
+ // just the single most-recently-evaluated one -- a single COOR
+ // here used to silently let a later piece's candidacy overwrite an
+ // earlier one on the same side, discarding it even if it was a
+ // genuinely trapped (zero mobility + actually attacked) piece.
+ // Capacity of 4 is deliberately generous; if a position somehow
+ // has more than 4 simultaneously zero-mobility non-pawn pieces on
+ // one side, the rest are just dropped, not a real concern.
+ COOR cTrapped[2][4];
+ ULONG uNumTrapped[2];
ULONG uArmyScaler[2];
ULONG uClosedScaler;
SCORE iScore[2];