Updated copyright notice to 2011
[xboard.git] / common.h
index 03f7bb0..f0e87fb 100644 (file)
--- a/common.h
+++ b/common.h
@@ -5,7 +5,7 @@
  * Massachusetts. 
  *
  * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009 Free Software Foundation, Inc.
+ * 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
  *
  * Enhancements Copyright 2005 Alessandro Scotti
  *
@@ -154,7 +154,7 @@ int pclose(FILE *);
 #define FIRST_HOST             "localhost"
 #define SECOND_HOST            "localhost"
 #define TELNET_PROGRAM          "telnet"
-#define DEF_BITMAP_DIR          "/usr/share/games/xboard/bitmaps.xchess" /* AP: shouldn't be hardcoded directory, but better than nothing at the moment */
+#define DEF_BITMAP_DIR          BITMAPDIR
 #define MATCH_MODE             "False"
 #define INIT_STRING            "new\nrandom\n"
 #define WHITE_STRING           "white\ngo\n"
@@ -173,6 +173,15 @@ int pclose(FILE *);
 #define NULLCHAR                '\000'
 #define FEATURE_TIMEOUT         10000 /*ms*/
 
+#define CLOCK_FONT 0
+#define MESSAGE_FONT 1
+#define COORD_FONT 2
+#define CONSOLE_FONT 3
+#define COMMENT_FONT 4
+#define EDITTAGS_FONT 5
+#define MOVEHISTORY_FONT 6
+#define NUM_FONTS 7
+
 /* Default to no flashing (the "usual" XBoard behavior) */
 #define FLASH_COUNT    0               /* Number of times to flash */
 #define FLASH_RATE     5               /* Flashes per second */
@@ -180,6 +189,11 @@ int pclose(FILE *);
 /* Default delay per character (in msec) while sending login script */
 #define MS_LOGIN_DELAY  0
 
+/* [AS] Support for background textures */
+#define BACK_TEXTURE_MODE_DISABLED      0
+#define BACK_TEXTURE_MODE_PLAIN         1
+#define BACK_TEXTURE_MODE_FULL_RANDOM   2
+
 /* Zippy defaults */
 #define ZIPPY_TALK FALSE
 #define ZIPPY_PLAY FALSE
@@ -236,23 +250,20 @@ typedef enum {
 typedef ChessSquare Board[BOARD_RANKS][BOARD_FILES];
 
 typedef enum {
-    WhiteKingSideCastle = 1, WhiteQueenSideCastle,
+    EndOfFile = 0,
+    WhiteKingSideCastle, WhiteQueenSideCastle,
     WhiteKingSideCastleWild, WhiteQueenSideCastleWild,
     WhiteHSideCastleFR, WhiteASideCastleFR, 
     BlackKingSideCastle, BlackQueenSideCastle,
     BlackKingSideCastleWild, BlackQueenSideCastleWild,
     BlackHSideCastleFR, BlackASideCastleFR, 
-    WhitePromotionKnight, WhitePromotionBishop,
-    WhitePromotionRook, WhitePromotionQueen, WhitePromotionKing,
-    WhitePromotionChancellor, WhitePromotionArchbishop, WhitePromotionCentaur,
-    BlackPromotionKnight, BlackPromotionBishop,
-    BlackPromotionRook, BlackPromotionQueen, BlackPromotionKing,
-    BlackPromotionChancellor, BlackPromotionArchbishop, BlackPromotionCentaur,
+    WhitePromotion, WhiteNonPromotion,
+    BlackPromotion, BlackNonPromotion,
     WhiteCapturesEnPassant, BlackCapturesEnPassant,
     WhiteDrop, BlackDrop, 
     NormalMove, AmbiguousMove, IllegalMove, ImpossibleMove,
     WhiteWins, BlackWins, GameIsDrawn, GameUnfinished,
-    GNUChessGame, XBoardGame, MoveNumberOne, 
+    GNUChessGame, XBoardGame, MoveNumberOne, Open, Close, Nothing,
     Comment, PositionDiagram, ElapsedTime, PGNTag, NAG
   } ChessMove;
 
@@ -307,6 +318,9 @@ typedef enum {
     VariantSuper,
     VariantGreat,
     VariantTwilight,
+    VariantMakruk,
+    VariantSChess,
+    VariantSpartan,
     VariantUnknown       /* Catchall for other unknown variants */
 } VariantClass;
 
@@ -349,10 +363,14 @@ typedef enum {
   "super",\
   "great",\
   "twilight",\
+  "makruk",\
+  "seirawan",\
+  "spartan",\
   "unknown" \
 }
 
 typedef struct {
+    char *language;
 #if !defined(_amigados)
     char *whitePieceColor;
     char *blackPieceColor;
@@ -371,7 +389,7 @@ typedef struct {
     int premoveHighlightColor;
 #endif
     int movesPerSession;
-    int timeIncrement;
+    float timeIncrement;
     char *initString;
     char *secondInitString;
     char *firstComputerString;
@@ -397,6 +415,8 @@ typedef struct {
     char *icsHelper;
     Boolean icsInputBox;
     Boolean useTelnet;
+    Boolean seekGraph;
+    Boolean autoRefresh;
     char *telnetProgram;
     char *gateway;
     char *loadGameFile;
@@ -430,6 +450,7 @@ typedef struct {
     char *cmailGameName; /* xboard only */
     Boolean alwaysPromoteToQueen;
     Boolean oldSaveStyle;
+    Boolean oneClick;
     Boolean quietPlay;
     Boolean showThinking;
     Boolean ponderNextMove;
@@ -478,6 +499,7 @@ typedef struct {
     char *soundIcsLoss;
     char *soundIcsDraw;
     char *soundIcsUnfinished;
+    Boolean disguise;        /* [HGM] Promoted Pawns look like pieces in bughouse */
     Boolean reuseFirst;
     Boolean reuseSecond;
     Boolean animateDragging; /* If True, animate mouse dragging of pieces */
@@ -500,10 +522,12 @@ typedef struct {
     int fontSizeTolerance; /* xboard only */
     char *initialMode;
     char *variant;
+    char *chatBoxes;
     int firstProtocolVersion;
     int secondProtocolVersion;
     Boolean showButtonBar;
     Boolean icsEngineAnalyze; 
+    Boolean variations;         /* [HGM] enable variation-tree walking */
 
     /* [AS] New properties (down to the "ZIPPY" part) */
     Boolean firstScoreIsAbsolute;  /* If true, engine score is always from white side */
@@ -536,6 +560,8 @@ typedef struct {
     Boolean highlightMoveWithArrow;
     int highlightArrowColor;
     Boolean useStickyWindows;
+    Boolean bgObserve;   /* [HGM] bughouse */
+    Boolean dualBoard;   /* [HGM] dual     */
     int adjudicateDrawMoves;
     Boolean autoDisplayComment;
     Boolean autoDisplayTags;
@@ -543,12 +569,16 @@ typedef struct {
     Boolean secondIsUCI;
     Boolean firstHasOwnBookUCI;
     Boolean secondHasOwnBookUCI;
+    char * adapterCommand;
     char * polyglotDir;
     Boolean usePolyglotBook;
     char * polyglotBook;
+    int bookDepth;
+    int bookStrength;
     int defaultHashSize;
     int defaultCacheSizeEGTB;
     char * defaultPathEGTB;
+    int defaultMatchGames;
 
     /* [HGM] Board size */
     int NrFiles;
@@ -556,6 +586,8 @@ typedef struct {
     int holdingsSize;
     int matchPause;
     char * pieceToCharTable;
+    char * pieceNickNames;
+    char * colorNickNames;
     Boolean allWhite;
     Boolean upsideDown;
     Boolean alphaRank;
@@ -621,9 +653,13 @@ typedef struct {
     Boolean useInternalWrap; /* use internal wrapping -- noJoin usurps this if set */
     Boolean pasteSelection; /* paste X selection instead of clipboard */
     int nrVariations;   /* [HGM] multivar  */
+    Boolean dropMenu;   /* [HGM] pv        */
+    Boolean markers;    /* [HGM] markers   */
 } AppData, *AppDataPtr;
 
-/* [AS] PGN tags (for showing in the game list) */
+/*  PGN tags (for showing in the game list) */
+#define LPUSERGLT_SIZE      64
+
 #define GLT_EVENT           'e'
 #define GLT_SITE            's'
 #define GLT_DATE            'd'
@@ -678,8 +714,23 @@ typedef struct {
     int time;   /* Milliseconds */
 } ChessProgramStats_Move;
 
+/* [AS] Layout management */
+typedef struct {
+    Boolean visible;
+    int x;
+    int y;
+    int width;
+    int height;
+} WindowPlacement;
+
+extern WindowPlacement wpEngineOutput;
+extern WindowPlacement wpEvalGraph;
+extern WindowPlacement wpMoveHistory;
+extern WindowPlacement wpGameList;
+extern WindowPlacement wpTags;
+
 // [HGM] chat  
-#define MAX_CHAT 3
+#define MAX_CHAT 5
 extern int chatCount;
 extern char chatPartner[MAX_CHAT][MSG_SIZ];