X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.h;h=b304cb40add960d4f96a308c6ed36ffd42efcd8b;hb=9f42d7d28b859796650bda0b7d5900199010948d;hp=0ca31209402f471d6018e7b8b224357722ac5062;hpb=c37d45adc7d98a702a7459ccdc0ac23df01a476e;p=xboard.git diff --git a/backend.h b/backend.h index 0ca3120..b304cb4 100644 --- a/backend.h +++ b/backend.h @@ -73,13 +73,17 @@ extern Board boards[]; extern char marker[BOARD_RANKS][BOARD_FILES]; extern char lastMsg[MSG_SIZ]; extern Boolean bookUp; +extern Boolean addToBookFlag; extern int tinyLayout, smallLayout; extern Boolean mcMode; +extern int dragging; +extern char variantError[]; +extern char lastTalker[]; 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)); @@ -201,8 +205,11 @@ int PromoScroll P((int x, int y)); void EditBookEvent P((void)); Boolean DisplayBook P((int moveNr)); void SaveToBook P((char *text)); +void AddBookMove P((char *text)); +void PlayBookMove P((char *text, int index)); +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, ...)); @@ -283,7 +290,7 @@ int Explode P((Board board, int fromX, int fromY, int toX, int toY)); typedef enum { CheckBox, ComboBox, TextBox, Button, Spin, ResetButton, SaveButton, ListBox, Graph, PopUp, FileName, PathName, Slider, Message, Fractional, Label, Icon, - BoxBegin, BoxEnd, BarBegin, BarEnd, DropDown, Break, EndMark } Control; + BoxBegin, BoxEnd, BarBegin, BarEnd, DropDown, Break, EndMark, Skip } Control; typedef struct XB_OPT { // [HGM] options: descriptor of UCI-style option int value; // current setting, starts as default @@ -351,6 +358,7 @@ 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 */ @@ -359,6 +367,7 @@ typedef struct XB_CPS { 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]; @@ -398,6 +407,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)); @@ -406,6 +417,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 { @@ -413,6 +425,8 @@ typedef struct { int ms; /* Assuming this is >= 16 bits */ } TimeMark; +extern TimeMark programStartTime; + void GetTimeMark P((TimeMark *)); long SubtractTimeMarks P((TimeMark *, TimeMark *));