Add secondry adapter command for UCCI or USI
[xboard.git] / args.h
diff --git a/args.h b/args.h
index c0e569b..bc82aa7 100644 (file)
--- a/args.h
+++ b/args.h
@@ -60,7 +60,7 @@
 typedef enum {
   ArgString, ArgInt, ArgFloat, ArgBoolean, ArgTrue, ArgFalse, ArgNone,
   ArgColor, ArgAttribs, ArgFilename, ArgBoardSize, ArgFont, ArgCommSettings,
-  ArgSettingsFilename,
+  ArgSettingsFilename, ArgTwo,
   ArgX, ArgY, ArgZ // [HGM] placement: for window-placement options stored relative to main window
 } ArgType;
 
@@ -103,6 +103,7 @@ IcsTextMenuEntry icsTextMenuEntry[ICS_TEXT_MENU_SIZE];
 
 int junk;
 Boolean singleList;
+char *homeDir;\r
 
 void EnsureOnScreen(int *x, int *y, int minX, int minY);
 char StringGet(void *getClosure);
@@ -536,6 +537,10 @@ ArgDescriptor argDescriptors[] = {
   { "firstUCI", ArgTrue, (void *) &appData.firstIsUCI, FALSE, INVALID },
   { "secondIsUCI", ArgBoolean, (void *) &appData.secondIsUCI, FALSE, (ArgIniType) FALSE },
   { "sUCI", ArgTrue, (void *) &appData.secondIsUCI, FALSE, INVALID },
+  { "fUCCI", ArgTwo, (void *) &appData.firstIsUCI, FALSE, INVALID },
+  { "sUCCI", ArgTwo, (void *) &appData.secondIsUCI, FALSE, INVALID },
+  { "fUSI", ArgTwo, (void *) &appData.firstIsUCI, FALSE, INVALID },
+  { "sUSI", ArgTwo, (void *) &appData.secondIsUCI, FALSE, INVALID },
   { "secondUCI", ArgTrue, (void *) &appData.secondIsUCI, FALSE, INVALID },
   { "firstHasOwnBookUCI", ArgBoolean, (void *) &appData.firstHasOwnBookUCI, FALSE, (ArgIniType) TRUE },
   { "fNoOwnBookUCI", ArgFalse, (void *) &appData.firstHasOwnBookUCI, FALSE, INVALID },
@@ -544,6 +549,7 @@ ArgDescriptor argDescriptors[] = {
   { "sNoOwnBookUCI", ArgFalse, (void *) &appData.secondHasOwnBookUCI, FALSE, INVALID },
   { "secondXBook", ArgFalse, (void *) &appData.secondHasOwnBookUCI, FALSE, INVALID },
   { "adapterCommand", ArgFilename, (void *) &appData.adapterCommand, TRUE, (ArgIniType) "polyglot -noini -ec \"%fcp\" -ed \"%fd\"" },
+  { "uxiAdapter", ArgFilename, (void *) &appData.ucciAdapter, TRUE, (ArgIniType) "" },
   { "polyglotDir", ArgFilename, (void *) &appData.polyglotDir, TRUE, (ArgIniType) "" },
   { "usePolyglotBook", ArgBoolean, (void *) &appData.usePolyglotBook, TRUE, (ArgIniType) FALSE },
   { "polyglotBook", ArgFilename, (void *) &appData.polyglotBook, TRUE, (ArgIniType) "" },
@@ -553,6 +559,7 @@ ArgDescriptor argDescriptors[] = {
   { "defaultCacheSizeEGTB", ArgInt, (void *) &appData.defaultCacheSizeEGTB, TRUE, (ArgIniType) 4 },
   { "defaultPathEGTB", ArgFilename, (void *) &appData.defaultPathEGTB, TRUE, (ArgIniType) "c:\\egtb" },
   { "language", ArgFilename, (void *) &appData.language, TRUE, (ArgIniType) "" },
+  { "userFileDirectory", ArgFilename, (void *) &homeDir, FALSE, (ArgIniType) installDir },
 
   // [HGM] tournament options
   { "tourney", ArgFilename, (void *) &appData.tourneyFile, FALSE, (ArgIniType) "" },
@@ -609,6 +616,11 @@ ArgDescriptor argDescriptors[] = {
   { "icstype", ArgInt, (void *) &ics_type, FALSE, INVALID },
   { "forceIllegalMoves", ArgTrue, (void *) &appData.forceIllegal, FALSE, INVALID },
   { "showTargetSquares", ArgBoolean, (void *) &appData.markers, TRUE, FALSE },
+  { "firstPgnName", ArgString, (void *) &appData.pgnName[0], FALSE, (ArgIniType) "" },
+  { "fn", ArgString, (void *) &appData.pgnName[0], FALSE, INVALID },
+  { "secondPgnName", ArgString, (void *) &appData.pgnName[1], FALSE, (ArgIniType) "" },
+  { "sn", ArgString, (void *) &appData.pgnName[1], FALSE, INVALID },
+  { "absoluteAnalysisScores", ArgBoolean, (void *) &appData.whitePOV, TRUE, FALSE },
 
 #if ZIPPY
   { "zippyTalk", ArgBoolean, (void *) &appData.zippyTalk, FALSE, (ArgIniType) ZIPPY_TALK },
@@ -847,6 +859,10 @@ ParseArgs(GetFunc get, void *cl)
       strncpy(argName, ad->argName,sizeof(argName)/sizeof(argName[0]));
     }
 
+    if (ad->argType == ArgTwo) { // [HGM] kludgey arg type, not suitable for saving
+      *(Boolean *) ad->argLoc = 2;
+      continue;
+    }
     if (ad->argType == ArgTrue) {
       *(Boolean *) ad->argLoc = TRUE;
       continue;