char *computerString[ENGINES];
char *chessProgram[ENGINES];
char *directory[ENGINES];
+ char *pgnName[ENGINES];
Boolean firstPlaysBlack;
Boolean noChessProgram;
char *host[ENGINES];
Boolean isUCI[ENGINES];
Boolean hasOwnBookUCI[ENGINES];
char * adapterCommand;
+ char * ucciAdapter;
char * polyglotDir;
Boolean usePolyglotBook;
char * polyglotBook;
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 */
Boolean markers; /* [HGM] markers */
Boolean pieceMenu;
Boolean sweepSelect;
+ Boolean whitePOV;
+
+ char *tourneyFile;
+ char *defName;
+ char *processes;
+ char *results;
+ char *participants;
+ int tourneyType;
+ int tourneyCycles;
+ Boolean roundSync;
+ Boolean cycleSync;
} AppData, *AppDataPtr;
/* PGN tags (for showing in the game list) */
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