X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.h;h=0597025569bbeda9237f8a98f38d3df86f24fa57;hb=0a8f96e95c703feb86bb9770442d6842e3d67248;hp=7003bd0e6f60d009f4110a15ccf91589fdafb620;hpb=49ff2afc84db668b0f58cc3c6f785fc1942039a9;p=xboard.git diff --git a/backend.h b/backend.h index 7003bd0..0597025 100644 --- a/backend.h +++ b/backend.h @@ -5,7 +5,7 @@ * Massachusetts. * * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006, - * 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + * 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. * * Enhancements Copyright 2005 Alessandro Scotti * @@ -96,6 +96,8 @@ #include "lists.h" +typedef int (*FileProc) P((FILE *f, int n, char *title)); + extern char *wbOptions; extern int gotPremove; extern GameMode gameMode; @@ -113,10 +115,13 @@ extern char lastMsg[MSG_SIZ]; extern Boolean bookUp; extern int tinyLayout, smallLayout; extern Boolean mcMode; +extern int dragging; +extern char variantError[]; +void MarkMenuItem P((char *menuRef, int state)); char *CmailMsg P((void)); /* Tord: Added the useFEN960 parameter in PositionToFEN() below */ -char *PositionToFEN P((int move, char* useFEN960)); +char *PositionToFEN P((int move, char* useFEN960, int moveCounts)); void AlphaRank P((char *s, int n)); /* [HGM] Shogi move preprocessor */ void EditPositionPasteFEN P((char *fen)); void TimeDelay P((long ms)); @@ -238,8 +243,9 @@ int PromoScroll P((int x, int y)); void EditBookEvent P((void)); Boolean DisplayBook P((int moveNr)); void SaveToBook P((char *text)); +void HoverEvent P((int hiX, int hiY, int x, int y)); int PackGame P((Board board)); -Boolean ParseFEN P((Board board, int *blackPlaysFirst, char *fen)); +Boolean ParseFEN P((Board board, int *blackPlaysFirst, char *fen, Boolean autoSize)); void ApplyMove P((int fromX, int fromY, int toX, int toY, int promoChar, Board board)); void PackMove P((int fromX, int fromY, int toX, int toY, ChessSquare promoPiece)); void ics_printf P((char *format, ...)); @@ -366,9 +372,9 @@ typedef struct XB_CPS { int sdKludge; /* 0=use "sd DEPTH" command; 1=use "depth\nDEPTH" */ int stKludge; /* 0=use "st TIME" command; 1=use "level 1 TIME" */ int excludeMoves;/* 0=don't use "exclude" command; 1=do */ - char tidy[MSG_SIZ]; + char *tidy; int matchWins; - char variants[MSG_SIZ]; + char *variants; int analysisSupport; int analyzing; int protocolVersion; @@ -388,14 +394,16 @@ typedef struct XB_CPS { int debug; /* [HGM] ignore engine debug lines starting with '#' */ int maxNrOfSessions; /* [HGM] secondary TC: max args in 'level' command */ int accumulateTC; /* [HGM] secondary TC: how to handle extra sessions */ + int drawDepth; /* [HGM] egbb: search depth to play egbb draws */ int nps; /* [HGM] nps: factor for node count to replace time */ int supportsNPS; int alphaRank; /* [HGM] shogi: engine uses shogi-type coordinates */ int maxCores; /* [HGM] SMP: engine understands cores command */ int memSize; /* [HGM] memsize: engine understands memory command */ - char egtFormats[MSG_SIZ]; /* [HGM] EGT: supported tablebase formats */ + char *egtFormats; /* [HGM] EGT: supported tablebase formats */ int bookSuspend; /* [HGM] book: go was deferred because of book hit */ int pause; /* [HGM] pause: 1=supports it, 2=actually paused */ + int highlight; /* [HGM] engine wants to get lift and put commands */ int nrOptions; /* [HGM] options: remembered option="..." features */ #define MAX_OPTIONS 200 Option option[MAX_OPTIONS]; @@ -405,6 +413,7 @@ typedef struct XB_CPS { void *programLogo; /* [HGM] logo: bitmap of the logo */ char *fenOverride; /* [HGM} FRC: force FEN casling & ep fields by hand */ char userError; /* [HGM] crash: flag to suppress fatal-error messages*/ + char reload; /* [HGM] options: flag to resend options with xreuse */ } ChessProgramState; extern ChessProgramState first, second; @@ -434,6 +443,8 @@ extern int errorExitStatus; extern char *recentEngines; extern char *comboLine; extern Boolean partnerUp, twoBoards; +extern char engineVariant[]; +char *EngineDefinedVariant P((ChessProgramState *cps, int n)); void SettingsPopUp P((ChessProgramState *cps)); // [HGM] really in front-end, but CPS not known in frontend.h int WaitForEngine P((ChessProgramState *cps, DelayedEventCallback x)); void Load P((ChessProgramState *cps, int n)); @@ -442,6 +453,7 @@ void MoveHistorySet P(( char movelist[][2*MOVE_LEN], int first, int last, int cu void MakeEngineOutputTitle P((void)); void LoadTheme P((void)); void CreateBookEvent P((void)); +char *SupportedVariant P((char *list, VariantClass v, int w, int h, int s, int proto, char *engine)); /* A point in time */ typedef struct {