+++ /dev/null
-/*
- * common.h -- Common definitions for X and Windows NT versions of XBoard
- * $Id$
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts.
- * Enhancements Copyright 1992-95 Free Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard distributed
- * by the Free Software Foundation:
- * ------------------------------------------------------------------------
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * ------------------------------------------------------------------------
- */
-
-#ifndef _COMMON
-#define _COMMON
-
-/* Begin compatibility grunge */
-
-#if defined(__STDC__) || defined(WIN32) || defined(_amigados)
-#define P(args) args
-typedef void *VOIDSTAR;
-#else
-#define P(args) ()
-typedef char *VOIDSTAR;
-#endif
-
-#ifdef WIN32
-typedef char Boolean;
-typedef char *String;
-#define popen _popen
-#define pclose _pclose
-
-#else
-#ifdef _amigados /* It is important, that these types have */
-typedef int Boolean; /* a length of 4 bytes each, as we are */
-typedef char *String; /* using ReadArgs() for argument parsing. */
-#ifdef _DCC
-FILE *popen(const char *, const char *);
-int pclose(FILE *);
-#endif
-
-#else
-#include <X11/Intrinsic.h>
-#endif
-#endif
-
-
-#ifndef TRUE
-#define TRUE 1
-#define FALSE 0
-#endif
-
-#if !HAVE_RANDOM
-# if HAVE_RAND48
-# define srandom srand48
-# define random lrand48
-# else /* not HAVE_RAND48 */
-# define srandom srand
-# define random rand
-# endif /* not HAVE_RAND48 */
-#endif /* !HAVE_RANDOM */
-
-/* End compatibility grunge */
-
-#define PROTOVER 2 /* engine protocol version */
-
-#define BOARD_SIZE 8
-#define DROP_RANK -3
-#define MAX_MOVES 1000
-#define MSG_SIZ 2048
-#define DIALOG_SIZE 256
-#define STAR_MATCH_N 16
-#define MOVE_LEN 32
-#define TIME_CONTROL "5" /* in minutes */
-#define TIME_DELAY_QUOTE "1.0" /* seconds between moves */
-#define TIME_DELAY ((float) 1.0)
-#define MOVES_PER_SESSION 40 /* moves per TIME_CONTROL */
-#define TIME_INCREMENT -1 /* if >= 0, MOVES_PER_SESSION unused */
-#define WhiteOnMove(move) (((move) % 2) == 0)
-#define ICS_HOST "chessclub.com"
-#define ICS_PORT "5000"
-#define ICS_COMM_PORT ""
-#define FIRST_HOST "localhost"
-#define SECOND_HOST "localhost"
-#define TELNET_PROGRAM "telnet"
-#define MATCH_MODE "False"
-#define INIT_STRING "new\nrandom\n"
-#define WHITE_STRING "white\ngo\n"
-#define BLACK_STRING "black\ngo\n"
-#define COMPUTER_STRING "computer\n"
-#define REUSE_CHESS_PROGRAMS 1
-#define WHITE_PIECE_COLOR "#FFFFCC"
-#define BLACK_PIECE_COLOR "#202020"
-#define LIGHT_SQUARE_COLOR "#C8C365"
-#define DARK_SQUARE_COLOR "#77A26D"
-#define JAIL_SQUARE_COLOR "#808080"
-#define HIGHLIGHT_SQUARE_COLOR "#FFFF00"
-#define PREMOVE_HIGHLIGHT_COLOR "#FF0000"
-#define BELLCHAR '\007'
-#define NULLCHAR '\000'
-#define FEATURE_TIMEOUT 10000 /*ms*/
-
-/* Zippy defaults */
-#define ZIPPY_TALK FALSE
-#define ZIPPY_PLAY FALSE
-#define ZIPPY_LINES "yow.lines"
-#define ZIPPY_PINHEAD ""
-#define ZIPPY_PASSWORD ""
-#define ZIPPY_PASSWORD2 ""
-#define ZIPPY_PASSWORD3 ""
-#define ZIPPY_WRONG_PASSWORD ""
-#define ZIPPY_ACCEPT_ONLY ""
-#define ZIPPY_USE_I TRUE
-#define ZIPPY_BUGHOUSE 0
-#define ZIPPY_NOPLAY_CRAFTY FALSE
-#define ZIPPY_GAME_END "gameend\n"
-#define ZIPPY_GAME_START ""
-#define ZIPPY_ADJOURN FALSE
-#define ZIPPY_ABORT FALSE
-#define ZIPPY_VARIANTS "normal"
-#define ZIPPY_MAX_GAMES 0
-#define ZIPPY_REPLAY_TIMEOUT 120
-
-typedef enum {
- BeginningOfGame, MachinePlaysWhite, MachinePlaysBlack,
- AnalyzeMode, AnalyzeFile, TwoMachinesPlay,
- EditGame, PlayFromGameFile, EndOfGame, EditPosition, Training,
- IcsIdle, IcsPlayingWhite, IcsPlayingBlack, IcsObserving,
- IcsExamining
- } GameMode;
-
-GameMode gameMode;
-
-typedef enum {
- WhitePawn, WhiteKnight, WhiteBishop, WhiteRook, WhiteQueen, WhiteKing,
- BlackPawn, BlackKnight, BlackBishop, BlackRook, BlackQueen, BlackKing,
- EmptySquare,
- ClearBoard, WhitePlay, BlackPlay /*for use on EditPosition menus*/
- } ChessSquare;
-
-typedef ChessSquare Board[BOARD_SIZE][BOARD_SIZE];
-
-typedef enum {
- WhiteKingSideCastle = 1, WhiteQueenSideCastle,
- WhiteKingSideCastleWild, WhiteQueenSideCastleWild,
- WhiteHSideCastleFR, WhiteASideCastleFR,
- BlackKingSideCastle, BlackQueenSideCastle,
- BlackKingSideCastleWild, BlackQueenSideCastleWild,
- BlackHSideCastleFR, BlackASideCastleFR,
- WhitePromotionKnight, WhitePromotionBishop,
- WhitePromotionRook, WhitePromotionQueen, WhitePromotionKing,
- BlackPromotionKnight, BlackPromotionBishop,
- BlackPromotionRook, BlackPromotionQueen, BlackPromotionKing,
- WhiteCapturesEnPassant, BlackCapturesEnPassant,
- WhiteDrop, BlackDrop,
- NormalMove, AmbiguousMove, IllegalMove, ImpossibleMove,
- WhiteWins, BlackWins, GameIsDrawn, GameUnfinished,
- GNUChessGame, XBoardGame, MoveNumberOne,
- Comment, PositionDiagram, ElapsedTime, PGNTag, NAG
- } ChessMove;
-
-typedef enum {
- ColorShout, ColorSShout, ColorChannel1, ColorChannel, ColorKibitz,
- ColorTell, ColorChallenge, ColorRequest, ColorSeek, ColorNormal,
- ColorNone, NColorClasses
-} ColorClass;
-
-typedef enum {
- SoundMove, SoundBell, SoundAlarm, SoundIcsWin, SoundIcsLoss,
- SoundIcsDraw, SoundIcsUnfinished, NSoundClasses
-} SoundClass;
-
-/* Names for chess variants, not necessarily supported */
-typedef enum {
- VariantNormal, /* Normal chess */
- VariantLoadable, /* "loadgame" command allowed (not really a variant)*/
- VariantWildCastle, /* Shuffle chess where king can castle from d file */
- VariantNoCastle, /* Shuffle chess with no castling at all */
- VariantFischeRandom, /* FischeRandom */
- VariantBughouse, /* Bughouse, ICC/FICS rules */
- VariantCrazyhouse, /* Crazyhouse, ICC/FICS rules */
- VariantLosers, /* Try to lose all pieces or get mated (ICC wild 17)*/
- VariantSuicide, /* Try to lose all pieces incl. king (FICS) */
- VariantGiveaway, /* Try to have no legal moves left (ICC wild 26) */
- VariantTwoKings, /* Weird ICC wild 9 */
- VariantKriegspiel, /* Kriegspiel; pawns can capture invisible pieces */
- VariantAtomic, /* Capturing piece explodes (ICC wild 27) */
- Variant3Check, /* Win by giving check 3 times (ICC wild 25) */
- VariantShatranj, /* Unsupported (ICC wild 28) */
- Variant29, /* Temporary name for possible future ICC wild 29 */
- Variant30, /* Temporary name for possible future ICC wild 30 */
- Variant31, /* Temporary name for possible future ICC wild 31 */
- Variant32, /* Temporary name for possible future ICC wild 32 */
- Variant33, /* Temporary name for possible future ICC wild 33 */
- Variant34, /* Temporary name for possible future ICC wild 34 */
- Variant35, /* Temporary name for possible future ICC wild 35 */
- Variant36, /* Temporary name for possible future ICC wild 36 */
- VariantUnknown /* Catchall for other unknown variants */
-} VariantClass;
-
-#define VARIANT_NAMES { \
- "normal", \
- "normal", \
- "wildcastle", \
- "nocastle", \
- "fischerandom", \
- "bughouse", \
- "crazyhouse", \
- "losers", \
- "suicide", \
- "giveaway", \
- "twokings", \
- "kriegspiel", \
- "atomic", \
- "3check", \
- "shatranj", \
- "wild29", \
- "wild30", \
- "wild31", \
- "wild32", \
- "wild33", \
- "wild34", \
- "wild35", \
- "wild36", \
- "unknown" \
-}
-
-typedef struct {
-#if !defined(_amigados)
- char *whitePieceColor;
- char *blackPieceColor;
- char *lightSquareColor;
- char *darkSquareColor;
- char *jailSquareColor;
- char *highlightSquareColor;
- char *premoveHighlightColor;
-#else
- int whitePieceColor;
- int blackPieceColor;
- int lightSquareColor;
- int darkSquareColor;
- int jailSquareColor;
- int highlightSquareColor;
- int premoveHighlightColor;
-#endif
- int movesPerSession;
- int timeIncrement;
- char *initString;
- char *secondInitString;
- char *firstComputerString;
- char *secondComputerString;
- char *firstChessProgram;
- char *secondChessProgram;
- char *firstDirectory;
- char *secondDirectory;
- Boolean firstPlaysBlack;
- Boolean noChessProgram;
- char *firstHost;
- char *secondHost;
- char *bitmapDirectory;
- char *remoteShell;
- char *remoteUser;
- float timeDelay;
- char *timeControl;
- Boolean icsActive;
- char *icsHost;
- char *icsPort;
- char *icsCommPort; /* if set, use serial port instead of tcp host/port */
- char *icsLogon; /* Hack to permit variable logon scripts. */
- char *icsHelper;
- Boolean icsInputBox;
- Boolean useTelnet;
- char *telnetProgram;
- char *gateway;
- char *loadGameFile;
- int loadGameIndex; /* game # within file */
- char *saveGameFile;
- Boolean autoSaveGames;
- char *loadPositionFile;
- int loadPositionIndex; /* position # within file */
- char *savePositionFile;
- Boolean matchMode;
- int matchGames;
- Boolean monoMode;
- Boolean debugMode;
- Boolean clockMode;
- /* daniel */
- Boolean userVersion; /* programmer version */
- Boolean icsAnalyze;
- Boolean icsEngineKillPV;
- Boolean icsEngineWhisper;
- Boolean icsEngineKibitz;
- Boolean icsEngineTell;
- Boolean icsEngineNone;
- Boolean icsAnalyzeWindow;
- Boolean smartQueue; /* Live broadcast quere */
- Boolean ICC_feature; /* Enable special ICC fetures */
- Boolean windowMove; /* Drop fail high/low moves at icsAnalyzeOutPut */
- int icsAnalyzeOutPut; /* 1=whisper 2=kibitz 3=tell 4=none */
- int icsKillPVs;
- char icsTells[MSG_SIZ]; /* handle/channel do we tell somthing */
- Boolean icsWBprotoNorm;
- Boolean icsWBprotoAgr;
- int icsWBproto; /* dummy */
- int icsSmartQueue; /* 0 = standard game 1 = Blitzgame */
- /* Split smartQueue with int because i want more for the future */
- Boolean icsSmartQueueStd;
- Boolean icsSmartQueueBlitz;
- Boolean icsShowBook; /* True = show book False = disable */
- Boolean AnalysisWindow; /* Engine Room */
- Boolean engineStart; /* EngineRoom Button */
- Boolean engineTourneyMode; /* EngineRoom checkbox tourneyMode */
- Boolean engineStatLine; /* EngineRoom Statline disable */
- Boolean zippyDraw; /* active zippy draw Handling ? */
- int SendOutPutToICS; /* Analysis window: Send thinking lines to ICS */
- /* 0 none 1 whisper 2 kibitz */
- Boolean ButtonSendOutPutToICS; /* Checkbox analysis window */
- char *boardSize;
- Boolean Iconic;
- char *searchTime;
- int searchDepth;
- Boolean showCoords;
- char *clockFont;
- char *messageFont; /* WinBoard only */
- char *coordFont;
- char *font; /* xboard only: all other fonts */
- char *tagsFont; /* WinBoard only */
- char *commentFont; /* WinBoard only */
- char *icsFont; /* WinBoard only */
- Boolean ringBellAfterMoves;
- Boolean autoCallFlag;
- Boolean flipView;
- Boolean autoFlipView;
- char *cmailGameName; /* xboard only */
- Boolean alwaysPromoteToQueen;
- Boolean oldSaveStyle;
- Boolean quietPlay;
- Boolean showThinking;
- Boolean ponderNextMove;
- Boolean periodicUpdates;
- Boolean autoObserve;
- Boolean autoComment;
- Boolean getMoveList;
- Boolean testLegality;
- int borderXoffset; /* xboard only */
- int borderYoffset; /* xboard only */
- Boolean titleInWindow; /* xboard only */
- Boolean localLineEditing; /* WinBoard only */
- Boolean zippyTalk;
- Boolean zippyPlay;
- int flashCount; /* Number of times to flash (xboard only) */
- int flashRate; /* Flashes per second (xboard only) */
- char *pixmapDirectory; /* Path to XPM/XIM files to use (xboard only) */
- int msLoginDelay; /* Delay per character (in msec) while sending
- ICS logon script (xboard only) */
- Boolean colorize; /* If True, use the following colors to color text */
- /* Strings for colors, as "fg, bg, bold" (strings used in xboard only) */
- char *colorShout;
- char *colorSShout;
- char *colorChannel1;
- char *colorChannel;
- char *colorKibitz;
- char *colorTell;
- char *colorChallenge;
- char *colorRequest;
- char *colorSeek;
- char *colorNormal;
- char *soundProgram; /* sound-playing program */
- char *soundShout;
- char *soundSShout;
- char *soundChannel1;
- char *soundChannel;
- char *soundKibitz;
- char *soundTell;
- char *soundChallenge;
- char *soundRequest;
- char *soundSeek;
- char *soundMove;
- char *soundIcsWin;
- char *soundIcsLoss;
- char *soundIcsDraw;
- char *soundIcsUnfinished;
- char *soundIcsAlarm;
- Boolean reuseFirst;
- Boolean reuseSecond;
- Boolean animateDragging; /* If True, animate mouse dragging of pieces */
- Boolean animate; /* If True, animate non-mouse moves */
- int animSpeed; /* Delay in milliseconds between animation frames */
- Boolean popupMoveErrors;
- Boolean popupExitMessage;
- int showJail;
- Boolean highlightLastMove;
- Boolean highlightDragging;
- Boolean blindfold; /* if true, no pieces are drawn */
- Boolean premove; /* true if premove feature enabled */
- Boolean premoveWhite; /* true if premoving White first move */
- char *premoveWhiteText; /* text of White premove 1 */
- Boolean premoveBlack; /* true if premoving Black first move */
- char *premoveBlackText; /* text of Black premove 1 */
- Boolean icsAlarm; /* true if sounding alarm at a certain time */
- int icsAlarmTime; /* time to sound alarm, in milliseconds */
- Boolean autoRaiseBoard;
- int fontSizeTolerance; /* xboard only */
- char *initialMode;
- char *variant;
- int firstProtocolVersion;
- int secondProtocolVersion;
- Boolean showButtonBar;
-#if ZIPPY
- char *zippyLines;
- char *zippyPinhead;
- char *zippyPassword;
- char *zippyPassword2;
- char *zippyPassword3;
- char *zippyWrongPassword;
- char *zippyAcceptOnly;
- int zippyUseI;
- int zippyBughouse;
- int zippyNoplayCrafty;
- char *zippyGameEnd;
- char *zippyGameStart;
- int zippyAdjourn;
- int zippyAbort;
- char *zippyVariants;
- int zippyMaxGames;
- int zippyReplayTimeout; /*seconds*/
-#endif
-} AppData, *AppDataPtr;
-
-extern AppData appData;
-
-typedef struct {
- /* PGN 7-tag info */
- char *event;
- char *site;
- char *date;
- char *round;
- char *white;
- char *black;
- ChessMove result;
- /* Additional info */
- char *fen; /* NULL or FEN for starting position; input only */
- char *resultDetails;
- char *timeControl;
- char *extraTags; /* NULL or "[Tag \"Value\"]\n", etc. */
- int whiteRating; /* -1 if unknown */
- int blackRating; /* -1 if unknown */
- VariantClass variant;
-} GameInfo;
-
-
-
-#endif