* Massachusetts.
*
* Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
+ * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
+ * Software Foundation, Inc.
*
* Enhancements Copyright 2005 Alessandro Scotti
*
#define BOARD_RGHT (gameInfo.boardWidth + gameInfo.holdingsWidth)
#define CASTLING (BOARD_RANKS-1) /* [HGM] hide in upper rank */
#define VIRGIN (BOARD_RANKS-2) /* [HGM] pieces not moved */
+#define CHECK_COUNT CASTLING][(BOARD_FILES-8) /* [HGM] in upper rank */
+#define LAST_TO CASTLING][(BOARD_FILES-7) /* [HGM] in upper rank */
+#define TOUCHED_W CASTLING][(BOARD_FILES-6) /* [HGM] in upper rank */
+#define TOUCHED_B CASTLING][(BOARD_FILES-5) /* [HGM] in upper rank */
+#define EP_RANK CASTLING][(BOARD_FILES-4) /* [HGM] in upper rank */
+#define EP_FILE CASTLING][(BOARD_FILES-3) /* [HGM] in upper rank */
#define EP_STATUS CASTLING][(BOARD_FILES-2) /* [HGM] in upper rank */
#define HOLDINGS_SET CASTLING][(BOARD_FILES-1) /* [HGM] in upper-right corner*/
-#define ONE ('1'-(BOARD_HEIGHT==10)) /* [HGM] foremost board rank */
+#define ONE ('1'-(BOARD_HEIGHT==10)-appData.rankOffset) /* [HGM] foremost board rank */
#define AAA ('a'-BOARD_LEFT) /* [HGM] leftmost board file */
#define VIRGIN_W 1 /* [HGM] flags in Board[VIRGIN][X] */
#define VIRGIN_B 2
#define LOWTIMEWARNING_COLOR "#FF0000"
#define BELLCHAR '\007'
#define NULLCHAR '\000'
-#define FEATURE_TIMEOUT 10000 /*ms*/
+#define FEATURE_TIMEOUT 1000 /*ms*/
+#define MATE_SCORE 100000
#define CLOCK_FONT 0
#define MESSAGE_FONT 1
WhiteFerz, WhiteAlfil, WhiteAngel, WhiteMarshall, WhiteWazir, WhiteMan,
WhiteCannon, WhiteNightrider, WhiteCardinal, WhiteDragon, WhiteGrasshopper,
WhiteSilver, WhiteFalcon, WhiteLance, WhiteCobra, WhiteUnicorn, WhiteLion,
- WhiteTokin, WhiteDagger, WhitePCardinal, WhitePDragon, WhiteCat,
- WhitePSword, WhiteMonarch, WhiteMother, WhiteNothing, WhitePRook, WhitePDagger,
- WhiteDolphin, WhiteStag, WhiteHorned, WhiteEagle, WhiteSword,
- WhiteCrown, WhiteHCrown, WhiteHorse, WhiteDrunk, WhitePBishop, WhiteKing,
+ WhiteSword, WhiteZebra, WhiteCamel, WhiteTower, WhiteWolf,
+ WhiteHat, WhiteDuck, WhiteAmazon, WhiteFlying, WhiteGnu, WhiteCub,
+ WhiteShield, WhiteHorse, WhiteWizard, WhiteCopper, WhiteIron,
+ WhiteViking, WhiteFlag, WhiteAxe, WhiteDolphin, WhiteCat, WhiteClaw,
+ WhiteWheel, WhiteButterfly, WhitePBishop, WhitePRook, WhiteHCrown,
+ WhiteShierd, WhiteMonarch, WhiteMother, WhiteNothing, WhiteDrunk, WhiteWheer,
+ WhiteTokin, WhitePKnight, WhitePCardinal, WhitePDragon, WhitePLance,
+ WhitePSilver, WhiteDagger, WhitePSword, WhitePDagger, WhiteCrown, WhiteKing,
BlackPawn, BlackKnight, BlackBishop, BlackRook, BlackQueen,
BlackFerz, BlackAlfil, BlackAngel, BlackMarshall, BlackWazir, BlackMan,
BlackCannon, BlackNightrider, BlackCardinal, BlackDragon, BlackGrasshopper,
BlackSilver, BlackFalcon, BlackLance, BlackCobra, BlackUnicorn, BlackLion,
- BlackTokin, BlackDagger, BlackPCardinal, BlackPDragon, BlackCat,
- BlackPSword, BlackMonarch, BlackMother, BlackNothing, BlackPRook, BlackPDagger,
- BlackDolphin, BlackStag, BlackHorned, BlackEagle, BlackSword,
- BlackCrown, BlackHCrown, BlackHorse, BlackDrunk, BlackPBishop, BlackKing,
+ BlackSword, BlackZebra, BlackCamel, BlackTower, BlackWolf,
+ BlackHat, BlackDuck, BlackAmazon, BlackFlying, BlackGnu, BlackCub,
+ BlackShield, BlackHorse, BlackWizard, BlackCopper, BlackIron,
+ BlackViking, BlackFlag, BlackAxe, BlackDolphin, BlackCat, BlackClaw,
+ BlackWheel, BlackButterfly, BlackPBishop, BlackPRook, BlackHCrown,
+ BlackShierd, BlackMonarch, BlackMother, BlackNothing, BlackDrunk, BlackWheer,
+ BlackTokin, BlackPKnight, BlackPCardinal, BlackPDragon, BlackPLance,
+ BlackPSilver, BlackDagger, BlackPSword, BlackPDagger, BlackCrown, BlackKing,
EmptySquare, DarkSquare,
NoRights, // [HGM] gamestate: for castling rights hidden in board[CASTLING]
ClearBoard, WhitePlay, BlackPlay, PromotePiece, DemotePiece /*for use on EditPosition menus*/
/* [HGM] some macros that can be used as prefixes to convert piece types */
#define WHITE_TO_BLACK (int)BlackPawn - (int)WhitePawn + (int)
#define BLACK_TO_WHITE (int)WhitePawn - (int)BlackPawn + (int)
-#define PROMOTED (int)WhiteDragon - (int)WhiteRook + (int)
-#define DEMOTED (int)WhiteRook - (int)WhiteDragon + (int)
+#define PROMO (int)WhiteDragon - (int)WhiteRook + (int)
+#define PROMOTED(X) (promoPartner[X])
+#define DEMOTED(X) (promoPartner[X])
#define SHOGI (int)EmptySquare + (int)
-#define CHUPROMOTED ((int)WhitePDragon - (int)WhiteDragon)*(gameInfo.variant == VariantChu) + PROMOTED
+#define CHUPROMOTED(X) (promoPartner[X])
+#define CHUDEMOTED(X) (promoPartner[X])
#define IS_SHOGI(V) ((V) == VariantShogi || (V) == VariantChu)
#define IS_LION(V) ((V) == WhiteLion || (V) == BlackLion)
Variant36, /* Temporary name for possible future ICC wild 36 */
VariantShogi, /* [HGM] added variants */
VariantChu,
- VariantXiangqi,
VariantCourier,
VariantGothic,
VariantCapablanca,
VariantGreat,
VariantTwilight,
VariantMakruk,
- VariantASEAN,
VariantSChess,
VariantGrand,
VariantSpartan,
+ VariantXiangqi,
+ VariantASEAN,
VariantLion,
VariantChuChess,
VariantUnknown /* Catchall for other unknown variants */
"wild36", \
"shogi", \
"chu", \
- "xiangqi", \
"courier", \
"gothic", \
"capablanca", \
"great",\
"twilight",\
"makruk",\
- "asean",\
"seirawan",\
"grand",\
"spartan",\
+ "xiangqi", \
+ "asean",\
"lion",\
- "chuchess",\
+ "elven",\
"unknown" \
}
char *pgnName[ENGINES];
Boolean firstPlaysBlack;
Boolean noChessProgram;
+ char *positionDir;
char *host[ENGINES];
char *themeNames;
char *pieceDirectory;
char *loadGameFile;
int loadGameIndex; /* game # within file */
char *saveGameFile;
+ char *autoInstall;
Boolean autoSaveGames;
Boolean onlyOwn; /* [HGM] suppress auto-saving of observed games */
char *loadPositionFile;
Boolean fischerCastling;/* [HGM] fischer: allow Fischr castling in any variant */
Boolean matchMode;
int matchGames;
+ Boolean epd;
Boolean monoMode;
Boolean debugMode;
Boolean clockMode;
char *clockFont;
char *messageFont; /* WinBoard only */
char *coordFont;
- char *font; /* xboard only: all other fonts */
- char *tagsFont; /* WinBoard only */
- char *commentFont; /* WinBoard only */
- char *icsFont; /* WinBoard only */
+ char *font; /* xboard only */
+ char *tagsFont;
+ char *commentFont;
+ char *historyFont;
+ char *gameListFont;
+ char *icsFont;
+ int analysisBell;
Boolean ringBellAfterMoves;
Boolean autoCallFlag;
Boolean flipView;
Boolean autoFlipView;
char *cmailGameName; /* xboard only */
+ Boolean moveTime;
Boolean headers;
Boolean alwaysPromoteToQueen;
Boolean oldSaveStyle;
Boolean localLineEditing; /* WinBoard only */
Boolean zippyTalk;
Boolean zippyPlay;
+ int jewelled;
int flashCount; /* Number of times to flash (xboard only) */
int flashRate; /* Flashes per second (xboard only) */
int msLoginDelay; /* Delay per character (in msec) while sending
Boolean scoreIsAbsolute[ENGINES]; /* If true, engine score is always from white side */
Boolean saveExtendedInfoInPGN; /* If true, saved PGN games contain extended info */
Boolean hideThinkingFromHuman; /* If true, program thinking is generated but not displayed in human/computer matches */
+ Boolean cumulativeTimePGN; /* If true, times saved in PGN extended info is time left on clock */
Boolean useBitmaps;
Boolean useFont;
Boolean useBorder;
int darkBackTextureMode;
char * renderPiecesWithFont; /* Name of font for rendering chess pieces */
char * fontToPieceTable; /* Map to translate font character to chess pieces */
+ char * inscriptions; /* text (kanji) to write on top of a piece */
int fontBackColorWhite;
int fontForeColorWhite;
int fontBackColorBlack;
int adjudicateDrawMoves;
Boolean autoDisplayComment;
Boolean autoDisplayTags;
+ Boolean pseudo[ENGINES]; /* [HGM] pseudo-engines */
Boolean isUCI[ENGINES];
Boolean hasOwnBookUCI[ENGINES];
char * adapterCommand;
/* [HGM] Board size */
int NrFiles;
int NrRanks;
+ int rankOffset;
int holdingsSize;
int matchPause;
char * pieceToCharTable;
int dateThreshold;
int searchMode;
int stretch;
+ int minPieces;
+ int maxPieces;
Boolean ignoreColors;
Boolean findMirror;
char *userName;
char *logo[ENGINES];/* [HGM] logo */
char *pairingEngine;/* [HGM] pairing */
Boolean autoLogo;
+ Boolean fixedSize;
Boolean noGUI; /* [HGM] fast: suppress all display updates */
char *engOptions[ENGINES]; /* [HGM] options */
char *fenOverride[ENGINES];
Boolean autoCopyPV;
Boolean pieceMenu;
Boolean sweepSelect;
+ Boolean monoMouse;
Boolean whitePOV;
Boolean scoreWhite;
Boolean pvSAN[ENGINES];
int recentEngines;
char *recentEngineList;
+ char *defEngDir;
+ char *message;
+ char *suppress;
+ char *fen;
+ char *men;
char *tourneyFile;
char *defName;
char *processes;
int tourneyType;
int tourneyCycles;
int seedBase;
+ int bmpSave;
Boolean roundSync;
Boolean cycleSync;
Boolean numberTag;
int whiteRating; /* -1 if unknown */
int blackRating; /* -1 if unknown */
VariantClass variant;
+ char *variantName;
char *outOfBook; /* [AS] Move and score when engine went out of book */
int boardWidth; /* [HGM] adjustable board size */
int boardHeight;
extern WindowPlacement wpMoveHistory;
extern WindowPlacement wpGameList;
extern WindowPlacement wpTags;
+extern WindowPlacement wpTextMenu;
#define MAXENGINES 2000