* Massachusetts.
*
* Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ * 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
*
* Enhancements Copyright 2005 Alessandro Scotti
*
// [HGM] license: Messages that engines must print to satisfy their license requirements for patented variants
#define GOTHIC "Gothic Chess (see www.GothicChess.com) is licensed under U.S. Patent #6,481,716 by Ed Trice"
-#define NOFALCON "Falcon Chess (see www.chessvariants.com) is licensed under U.S. Patent #5,690,334 by George W. Duke"
+#define FALCON "Falcon Chess (see www.chessvariants.com) is licensed under U.S. Patent #5,690,334 by George W. Duke"
/* [HGM] Some notes about board sizes:
In games that allow piece drops, the holdings are considered part of the
#define COMMENT_FONT 4
#define EDITTAGS_FONT 5
#define MOVEHISTORY_FONT 6
-#define NUM_FONTS 7
+#define GAMELIST_FONT 7
+#define NUM_FONTS 8
/* Default to no flashing (the "usual" XBoard behavior) */
#define FLASH_COUNT 0 /* Number of times to flash */
VariantTwilight,
VariantMakruk,
VariantSChess,
+ VariantGrand,
VariantSpartan,
VariantUnknown /* Catchall for other unknown variants */
} VariantClass;
"twilight",\
"makruk",\
"seirawan",\
+ "grand",\
"spartan",\
"unknown" \
}
char *computerString[ENGINES];
char *chessProgram[ENGINES];
char *directory[ENGINES];
+ char *pgnName[ENGINES];
Boolean firstPlaysBlack;
Boolean noChessProgram;
char *host[ENGINES];
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 useBitmaps;
+ Boolean useFont;
char * liteBackTextureFile; /* Name of texture bitmap for lite squares */
char * darkBackTextureFile; /* Name of texture bitmap for dark squares */
int liteBackTextureMode;
Boolean useStickyWindows;
Boolean bgObserve; /* [HGM] bughouse */
Boolean dualBoard; /* [HGM] dual */
+ Boolean viewer;
+ char * viewerOptions;
int adjudicateDrawMoves;
Boolean autoDisplayComment;
Boolean autoDisplayTags;
Boolean isUCI[ENGINES];
Boolean hasOwnBookUCI[ENGINES];
char * adapterCommand;
+ char * ucciAdapter;
char * polyglotDir;
Boolean usePolyglotBook;
+ Boolean defNoBook;
char * polyglotBook;
int bookDepth;
int bookStrength;
int NPS[ENGINES];
Boolean autoKibitz;
int engineComments;
+ int eloThreshold1; /* [HGM] select */
+ int eloThreshold2;
+ int dateThreshold;
+ int searchMode;
+ int stretch;
+ Boolean ignoreColors;
+ Boolean findMirror;
char *userName;
int rewindIndex; /* [HGM] autoinc */
int sameColorGames; /* [HGM] alternate */
char *egtFormats;
int niceEngines; /* [HGM] nice */
char *logo[ENGINES];/* [HGM] logo */
+ char *pairingEngine;/* [HGM] pairing */
Boolean autoLogo;
Boolean noGUI; /* [HGM] fast: suppress all display updates */
char *engOptions[ENGINES]; /* [HGM] options */
char *fenOverride[ENGINES];
+ char *features[ENGINES];
+ char *featureDefaults;
Boolean keepAlive; /* [HGM] alive */
Boolean forceIllegal;/*[HGM] illegal */
Boolean noJoin; /* [HGM] join */
Boolean useInternalWrap; /* use internal wrapping -- noJoin usurps this if set */
Boolean pasteSelection; /* paste X selection instead of clipboard */
int nrVariations; /* [HGM] multivar */
+ int zoom; /* [HGM] evalGraph */
+ int evalThreshold; /* [HGM] evalGraph */
Boolean dropMenu; /* [HGM] pv */
Boolean markers; /* [HGM] markers */
Boolean pieceMenu;
Boolean sweepSelect;
+ Boolean whitePOV;
+ Boolean scoreWhite;
+ Boolean pvSAN[ENGINES];
+ int recentEngines;
+ char *recentEngineList;
char *tourneyFile;
+ char *defName;
char *processes;
char *results;
char *participants;
+ char *afterGame;
+ char *afterTourney;
int tourneyType;
int tourneyCycles;
+ int seedBase;
Boolean roundSync;
Boolean cycleSync;
+ Boolean numberTag;
} AppData, *AppDataPtr;
/* PGN tags (for showing in the game list) */
extern WindowPlacement wpGameList;
extern WindowPlacement wpTags;
+#define MAXENGINES 2000
+
// [HGM] chat
#define MAX_CHAT 5
extern int chatCount;
extern char chatPartner[MAX_CHAT][MSG_SIZ];
+// [HGM] generally useful macros; there are way too many memory leaks...
+#define FREE(x) if(x) free(x)
+#define ASSIGN(x, y) if(x) free(x); x = strdup(y)
+
// [HGM] for now we use the kludge to redefine all the unstructured options by their array counterpart
// in due time we would have to make the actual substitutions all through the source