#if STDC_HEADERS
# include <stdlib.h>
# include <string.h>
+# include <stdarg.h>
#else /* not STDC_HEADERS */
# if HAVE_STRING_H
# include <string.h>
char *buf, int count, int error));
void read_from_ics P((InputSourceRef isr, VOIDSTAR closure,
char *buf, int count, int error));
+void ics_printf P((char *format, ...));
void SendToICS P((char *s));
void SendToICSDelayed P((char *s, long msdelay));
void SendMoveToICS P((ChessMove moveType, int fromX, int fromY,
void InitEngineUCI( const char * iniDir, ChessProgramState * cps ); // [HGM] moved here from winboard.c
char *ProbeBook P((int moveNr, char *book)); // [HGM] book: returns a book move
char *SendMoveToBookUser P((int nr, ChessProgramState *cps, int initial)); // [HGM] book
+void ics_update_width P((int new_width));
extern char installDir[MSG_SIZ];
extern int tinyLayout, smallLayout;
if(appData.keepAlive) ScheduleDelayedEvent(KeepAlive, appData.keepAlive*60*1000);
}
+/* added routine for printf style output to ics */
+void ics_printf(char *format, ...)
+{
+ char buffer[MSG_SIZ];
+ va_list args;
+
+ va_start(args, format);
+ vsnprintf(buffer, sizeof(buffer), format, args);
+ buffer[sizeof(buffer)-1] = '\0';
+ SendToICS(buffer);
+ va_end(args);
+}
+
void
SendToICS(s)
char *s;
while( *e++ != '_');
}
+ if(StrCaseStr(e, "misc/")) { // [HGM] on FICS, misc/shogi is not shogi
+ v = VariantNormal;
+ found = TRUE;
+ } else
for (i=0; i<sizeof(variantNames)/sizeof(char*); i++) {
if (StrCaseStr(e, variantNames[i])) {
v = (VariantClass) i;
VariantSwitch(Board board, VariantClass newVariant)
{
int newHoldingsWidth, newWidth = 8, newHeight = 8, i, j;
- int oldCurrentMove = currentMove, oldForwardMostMove = forwardMostMove, oldBackwardMostMove = backwardMostMove;
-// Board tempBoard; int saveCastling[BOARD_SIZE], saveEP;
startedFromPositionFile = FALSE;
if(gameInfo.variant == newVariant) return;
* but also when receiving holdings of a crazyhouse game. In the latter
* case we want to add those holdings to the already received position.
*/
-
-
- if (appData.debugMode) {
- fprintf(debugFP, "Switch board from %s to %s\n",
- VariantName(gameInfo.variant), VariantName(newVariant));
- setbuf(debugFP, NULL);
- }
- shuffleOpenings = 0; /* [HGM] shuffle */
- gameInfo.holdingsSize = 5; /* [HGM] prepare holdings */
- switch(newVariant) {
- case VariantShogi:
- newWidth = 9; newHeight = 9;
- gameInfo.holdingsSize = 7;
- case VariantBughouse:
- case VariantCrazyhouse:
- newHoldingsWidth = 2; break;
- default:
- newHoldingsWidth = gameInfo.holdingsSize = 0;
- }
-
- if(newWidth != gameInfo.boardWidth ||
- newHeight != gameInfo.boardHeight ||
- newHoldingsWidth != gameInfo.holdingsWidth ) {
-
- /* shift position to new playing area, if needed */
- if(newHoldingsWidth > gameInfo.holdingsWidth) {
- for(i=0; i<BOARD_HEIGHT; i++)
- for(j=BOARD_RGHT-1; j>=BOARD_LEFT; j--)
- board[i][j+newHoldingsWidth-gameInfo.holdingsWidth] =
- board[i][j];
- for(i=0; i<newHeight; i++) {
- board[i][0] = board[i][newWidth+2*newHoldingsWidth-1] = EmptySquare;
- board[i][1] = board[i][newWidth+2*newHoldingsWidth-2] = (ChessSquare) 0;
- }
- } else if(newHoldingsWidth < gameInfo.holdingsWidth) {
- for(i=0; i<BOARD_HEIGHT; i++)
- for(j=BOARD_LEFT; j<BOARD_RGHT; j++)
- board[i][j+newHoldingsWidth-gameInfo.holdingsWidth] =
- board[i][j];
- }
-
- gameInfo.boardWidth = newWidth;
- gameInfo.boardHeight = newHeight;
- gameInfo.holdingsWidth = newHoldingsWidth;
- gameInfo.variant = newVariant;
- InitDrawingSizes(-2, 0);
-
- /* [HGM] The following should definitely be solved in a better way */
- InitPosition(FALSE); /* this sets up board[0], but also other stuff */
- } else { gameInfo.variant = newVariant; InitPosition(FALSE); }
-
- forwardMostMove = oldForwardMostMove;
- backwardMostMove = oldBackwardMostMove;
- currentMove = oldCurrentMove; /* InitPos reset these, but we need still to redraw the position */
+
+ if (appData.debugMode) {
+ fprintf(debugFP, "Switch board from %s to %s\n",
+ VariantName(gameInfo.variant), VariantName(newVariant));
+ setbuf(debugFP, NULL);
+ }
+ shuffleOpenings = 0; /* [HGM] shuffle */
+ gameInfo.holdingsSize = 5; /* [HGM] prepare holdings */
+ switch(newVariant)
+ {
+ case VariantShogi:
+ newWidth = 9; newHeight = 9;
+ gameInfo.holdingsSize = 7;
+ case VariantBughouse:
+ case VariantCrazyhouse:
+ newHoldingsWidth = 2; break;
+ case VariantGreat:
+ newWidth = 10;
+ case VariantSuper:
+ newHoldingsWidth = 2;
+ gameInfo.holdingsSize = 8;
+ return;
+ case VariantGothic:
+ case VariantCapablanca:
+ case VariantCapaRandom:
+ newWidth = 10;
+ default:
+ newHoldingsWidth = gameInfo.holdingsSize = 0;
+ };
+
+ if(newWidth != gameInfo.boardWidth ||
+ newHeight != gameInfo.boardHeight ||
+ newHoldingsWidth != gameInfo.holdingsWidth ) {
+
+ /* shift position to new playing area, if needed */
+ if(newHoldingsWidth > gameInfo.holdingsWidth) {
+ for(i=0; i<BOARD_HEIGHT; i++)
+ for(j=BOARD_RGHT-1; j>=BOARD_LEFT; j--)
+ board[i][j+newHoldingsWidth-gameInfo.holdingsWidth] =
+ board[i][j];
+ for(i=0; i<newHeight; i++) {
+ board[i][0] = board[i][newWidth+2*newHoldingsWidth-1] = EmptySquare;
+ board[i][1] = board[i][newWidth+2*newHoldingsWidth-2] = (ChessSquare) 0;
+ }
+ } else if(newHoldingsWidth < gameInfo.holdingsWidth) {
+ for(i=0; i<BOARD_HEIGHT; i++)
+ for(j=BOARD_LEFT; j<BOARD_RGHT; j++)
+ board[i][j+newHoldingsWidth-gameInfo.holdingsWidth] =
+ board[i][j];
+ }
+ gameInfo.boardWidth = newWidth;
+ gameInfo.boardHeight = newHeight;
+ gameInfo.holdingsWidth = newHoldingsWidth;
+ gameInfo.variant = newVariant;
+ InitDrawingSizes(-2, 0);
+ InitPosition(FALSE); /* this sets up board[0], but also other stuff */
+ } else { gameInfo.variant = newVariant; InitPosition(FALSE); }
+
+ DrawPosition(TRUE, boards[currentMove]);
}
static int loggedOn = FALSE;
for (i = 0; i < count; i++) {
if (data[i] != NULLCHAR && data[i] != '\r')
buf[buf_len++] = data[i];
- if(buf_len >= 5 && buf[buf_len-5]=='\n' && buf[buf_len-4]=='\\' &&
+ if(!appData.noJoin && buf_len >= 5 && buf[buf_len-5]=='\n' && buf[buf_len-4]=='\\' &&
buf[buf_len-3]==' ' && buf[buf_len-2]==' ' && buf[buf_len-1]==' ') {
buf_len -= 5; // [HGM] ICS: join continuation line of Lasker 2.2.3 server with previous
if(buf_len == 0 || buf[buf_len-1] != ' ')
sprintf(str,
"/set-quietly interface %s\n/set-quietly style 12\n",
programVersion);
-
+ if (!appData.noJoin)
+ strcat(str, "/set-quietly wrap 0\n");
} else if (ics_type == ICS_CHESSNET) {
sprintf(str, "/style 12\n");
} else {
#ifdef WIN32
strcat(str, "$iset nohighlight 1\n");
#endif
+ if (!appData.noJoin)
+ strcat(str, "$iset nowrap 1\n");
strcat(str, "$iset lock 1\n$style 12\n");
}
SendToICS(str);
+ NotifyFrontendLogin();
intfSet = TRUE;
}
programStats.ok_to_send = 0;
}
+void ics_update_width(new_width)
+ int new_width;
+{
+ ics_printf("set width %d\n", new_width);
+}
+
void
SendMoveToProgram(moveNum, cps)
int moveNum;
fprintf(f, " ");
linelen++;
}
- fprintf(f, numtext);
+ fprintf(f, "%s", numtext);
linelen += numlen;
/* Get move */
fprintf(f, " ");
linelen++;
}
- fprintf(f, move_buffer);
+ fprintf(f, "%s", move_buffer);
linelen += movelen;
/* [AS] Add PV info if present */
fprintf(f, " ");
linelen++;
}
- fprintf(f, move_buffer);
+ fprintf(f, "%s", move_buffer);
linelen += movelen;
}
first.analyzing = TRUE;
/*first.maybeThinking = TRUE;*/
first.maybeThinking = FALSE; /* avoid killing GNU Chess */
- AnalysisPopUp(_("Analysis"),
- _("Starting analysis mode...\nIf this message stays up, your chess program does not support analysis."));
+ EngineOutputPopUp();
}
if (!appData.icsEngineAnalyze) gameMode = AnalyzeMode;
pausing = FALSE;
first.analyzing = TRUE;
/*first.maybeThinking = TRUE;*/
first.maybeThinking = FALSE; /* avoid killing GNU Chess */
- AnalysisPopUp(_("Analysis"),
- _("Starting analysis mode...\nIf this message stays up, your chess program does not support analysis."));
+ EngineOutputPopUp();
}
gameMode = AnalyzeFile;
pausing = FALSE;
SendToProgram("exit\n", &first);
first.analyzing = FALSE;
}
- AnalysisPopDown();
+ EngineOutputPopDown();
thinkOutput[0] = NULLCHAR;
}
DisplayAnalysisText(text)
char *text;
{
- char buf[MSG_SIZ];
-
- if (gameMode == AnalyzeMode || gameMode == AnalyzeFile
- || appData.icsEngineAnalyze) {
- sprintf(buf, "Analysis (%s)", first.tidy);
- AnalysisPopUp(buf, text);
+ if (gameMode == AnalyzeMode || gameMode == AnalyzeFile
+ || appData.icsEngineAnalyze)
+ {
+ EngineOutputPopUp();
}
}
} else {
*p++ = '-';
}
+ } else if(move == backwardMostMove) {
+ // [HGM] perhaps we should always do it like this, and forget the above?
+ if(epStatus[move] >= 0) {
+ *p++ = epStatus[move] + AAA;
+ *p++ = whiteToPlay ? '6'+BOARD_HEIGHT-8 : '3';
+ } else {
+ *p++ = '-';
+ }
} else {
*p++ = '-';
}
extern char* StripHighlight P((char *)); /* returns static data */
extern char* StripHighlightAndTitle P((char *)); /* returns static data */
-
+extern void ics_update_width P((int new_width));
typedef enum { CheckBox, ComboBox, TextBox, Button, Spin, ResetButton,
SaveButton, FileName, PathName, Slider, Message } Control;
extern int startedFromSetupPosition;
extern int firstMove;
extern GameInfo gameInfo;
+extern void ics_printf P((char *format, ...));
extern void SendToICS P((char *s));
extern int looking_at P((char *, int *, char *));
extern void SendToProgram P((char *message, ChessProgramState *cps));
gpointer user_data;
{
ResetGameEvent();
- AnalysisPopDown();
+ EngineOutputPopDown();
}
void WhiteClockProc(object, user_data)
char *fenOverride2;
Boolean keepAlive; /* [HGM] alive */
Boolean forceIllegal;/*[HGM] illegal */
+ Boolean noJoin; /* [HGM] join */
} AppData, *AppDataPtr;
/* [AS] PGN tags (for showing in the game list) */
void DisplayIcsInteractionTitle P((String title));
void DrawPosition P((int fullRedraw, Board board));
void ResetFrontEnd P((void));
+void NotifyFrontendLogin P((void));
void CommentPopUp P((String title, String comment));
void CommentPopDown P((void));
void EditCommentPopUp P((int index, String title, String text));
void ICSInitScript P((void));
void StartAnalysisClock P((void));
-void AnalysisPopUp P((char *title, char *label));
-void AnalysisPopDown P((void));
void SetHighlights P((int fromX, int fromY, int toX, int toY));
void ClearHighlights P((void));
/* XPM */\r
static char *asdd72[] = {\r
/* columns rows colors chars-per-pixel */\r
-"72 72 2 1",\r
+"72 72 3 1",\r
" c black s dark_piece",\r
". c green s dark_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"........................................................................",\r
"........................................................................",\r
"........ ........................ .........",\r
"........ ...................... .........",\r
"........ .................... .........",\r
-"........ . .................. .........",\r
-"........ .. ................ . .........",\r
-"........ .. .............. .. .........",\r
-"........ .. ............ .. .........",\r
-"........ .. .......... .. .........",\r
-"........ .. ........ .. .........",\r
-"........ .. ...... .. .........",\r
-"........ .. .... .. .........",\r
-"......... .. .. .. .........",\r
-".......... .. .. ..........",\r
-"........... .. .. .. ...........",\r
-"............ .. .. .. ............",\r
-"............. .. .. .. .............",\r
-".............. .. .. .. ..............",\r
-"............... .. .. ...............",\r
-"................ .. .. ................",\r
-"................. .. .. .................",\r
-".................. .. .. ..................",\r
-"................... .. .. ...................",\r
-".................... .. .. ....................",\r
-"..................... .. .. .....................",\r
-"...................... .. ......................",\r
-"....................... .. .......................",\r
-"...................... .. ......................",\r
-"........ .......... .. .. .......... ........",\r
-"....... ........ .. .. ........ .......",\r
-"...... ...... .. .. ...... ......",\r
-"..... .... .. .. .... .....",\r
-".... .. .. .. .. ....",\r
-".... .. .. .. .. ....",\r
-".... .. .. .. .. ....",\r
-".... .. . .. .. .. ....",\r
-"..... .. .. .. .. .. .....",\r
-"...... .. . .. . .. ......",\r
-"....... .. . .. .......",\r
-"........ .. .. ........",\r
-"......... .. .. .. .........",\r
-"............ .. .... .. ............",\r
-"............. .. ...... .. .............",\r
-"............ . .. ........ .. . ............",\r
-"........... . .. .......... .. . ...........",\r
-".......... . ................ . ..........",\r
-"......... . .............. . .........",\r
-"........ . ............ . ........",\r
-"....... . .......... . .......",\r
+"........ X .................. .........",\r
+"........ XX ................ X .........",\r
+"........ XX .............. XX .........",\r
+"........ XX ............ XX .........",\r
+"........ XX .......... XX .........",\r
+"........ XX ........ XX .........",\r
+"........ XX ...... XX .........",\r
+"........ XX .... XX .........",\r
+"......... XX .. XX .........",\r
+".......... XX XX ..........",\r
+"........... XX XX XX ...........",\r
+"............ XX XX XX ............",\r
+"............. XX XX XX .............",\r
+".............. XX XX XX ..............",\r
+"............... XX XX ...............",\r
+"................ XX XX ................",\r
+"................. XX XX .................",\r
+".................. XX XX ..................",\r
+"................... XX XX ...................",\r
+".................... XX XX ....................",\r
+"..................... XX XX .....................",\r
+"...................... XX ......................",\r
+"....................... XX .......................",\r
+"...................... XX ......................",\r
+"........ .......... XX XX .......... ........",\r
+"....... ........ XX XX ........ .......",\r
+"...... ...... XX XX ...... ......",\r
+"..... .... XX XX .... .....",\r
+".... .. XX XX .. ....",\r
+".... XX XX XX XX ....",\r
+".... XX XX XX XX ....",\r
+".... XX X XX XX XX ....",\r
+"..... XX XX XX XX XX .....",\r
+"...... XX X XX X XX ......",\r
+"....... XX X XX .......",\r
+"........ XX XX ........",\r
+"......... XX .. XX .........",\r
+"............ XX .... XX ............",\r
+"............. XX ...... XX .............",\r
+"............ X XX ........ XX X ............",\r
+"........... X XX .......... XX X ...........",\r
+".......... X XX............XX X ..........",\r
+"......... X .............. X .........",\r
+"........ X ............ X ........",\r
+"....... X .......... X .......",\r
"...... . ........ . ......",\r
"..... .. ...... .. .....",\r
".... .... .... .... ....",\r
/* XPM */\r
static char *asdl72[] = {\r
/* columns rows colors chars-per-pixel */\r
-"72 72 2 1",\r
+"72 72 3 1",\r
" c black s dark_piece",\r
". c gray s light_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"........................................................................",\r
"........................................................................",\r
"........ ........................ .........",\r
"........ ...................... .........",\r
"........ .................... .........",\r
-"........ . .................. .........",\r
-"........ .. ................ . .........",\r
-"........ .. .............. .. .........",\r
-"........ .. ............ .. .........",\r
-"........ .. .......... .. .........",\r
-"........ .. ........ .. .........",\r
-"........ .. ...... .. .........",\r
-"........ .. .... .. .........",\r
-"......... .. .. .. .........",\r
-".......... .. .. ..........",\r
-"........... .. .. .. ...........",\r
-"............ .. .. .. ............",\r
-"............. .. .. .. .............",\r
-".............. .. .. .. ..............",\r
-"............... .. .. ...............",\r
-"................ .. .. ................",\r
-"................. .. .. .................",\r
-".................. .. .. ..................",\r
-"................... .. .. ...................",\r
-".................... .. .. ....................",\r
-"..................... .. .. .....................",\r
-"...................... .. ......................",\r
-"....................... .. .......................",\r
-"...................... .. ......................",\r
-"........ .......... .. .. .......... ........",\r
-"....... ........ .. .. ........ .......",\r
-"...... ...... .. .. ...... ......",\r
-"..... .... .. .. .... .....",\r
-".... .. .. .. .. ....",\r
-".... .. .. .. .. ....",\r
-".... .. .. .. .. ....",\r
-".... .. . .. .. .. ....",\r
-"..... .. .. .. .. .. .....",\r
-"...... .. . .. . .. ......",\r
-"....... .. . .. .......",\r
-"........ .. .. ........",\r
-"......... .. .. .. .........",\r
-"............ .. .... .. ............",\r
-"............. .. ...... .. .............",\r
-"............ . .. ........ .. . ............",\r
-"........... . .. .......... .. . ...........",\r
-".......... . ................ . ..........",\r
-"......... . .............. . .........",\r
-"........ . ............ . ........",\r
-"....... . .......... . .......",\r
+"........ X .................. .........",\r
+"........ XX ................ X .........",\r
+"........ XX .............. XX .........",\r
+"........ XX ............ XX .........",\r
+"........ XX .......... XX .........",\r
+"........ XX ........ XX .........",\r
+"........ XX ...... XX .........",\r
+"........ XX .... XX .........",\r
+"......... XX .. XX .........",\r
+".......... XX XX ..........",\r
+"........... XX XX XX ...........",\r
+"............ XX XX XX ............",\r
+"............. XX XX XX .............",\r
+".............. XX XX XX ..............",\r
+"............... XX XX ...............",\r
+"................ XX XX ................",\r
+"................. XX XX .................",\r
+".................. XX XX ..................",\r
+"................... XX XX ...................",\r
+".................... XX XX ....................",\r
+"..................... XX XX .....................",\r
+"...................... XX ......................",\r
+"....................... XX .......................",\r
+"...................... XX ......................",\r
+"........ .......... XX XX .......... ........",\r
+"....... ........ XX XX ........ .......",\r
+"...... ...... XX XX ...... ......",\r
+"..... .... XX XX .... .....",\r
+".... .. XX XX .. ....",\r
+".... XX XX XX XX ....",\r
+".... XX XX XX XX ....",\r
+".... XX X XX XX XX ....",\r
+"..... XX XX XX XX XX .....",\r
+"...... XX X XX X XX ......",\r
+"....... XX X XX .......",\r
+"........ XX XX ........",\r
+"......... XX .. XX .........",\r
+"............ XX .... XX ............",\r
+"............. XX ...... XX .............",\r
+"............ X XX ........ XX X ............",\r
+"........... X XX .......... XX X ...........",\r
+".......... X XX............XX X ..........",\r
+"......... X .............. X .........",\r
+"........ X ............ X ........",\r
+"....... X .......... X .......",\r
"...... . ........ . ......",\r
"..... .. ...... .. .....",\r
".... .... .... .... ....",\r
for(i=0; i<size; i++) for(j=0; j<size; j++) if(!src[i][j]) dest[i][j] = c;\r
}\r
\r
+FloodFill(char a[130][130], int size, int x, int y)\r
+{\r
+ char old = 'X', new = '.';\r
+ if(a[x][y] != old) return; else {\r
+ a[x][y] = new;\r
+ if(x > 0) FloodFill(a, size, x-1, y);\r
+ if(y > 0) FloodFill(a, size, x, y-1);\r
+ if(x < size-1) FloodFill(a, size, x+1, y);\r
+ if(y < size-1) FloodFill(a, size, x, y+1);\r
+ }\r
+ \r
+}\r
+\r
void Save(FILE *f, char *name, char data[130][130], int size, char *col, int depth)\r
{ // write out data in source format for d x d pixmap with specified square color\r
int i, j;\r
\r
main(int argc, char **argv)\r
{\r
- int i, j, k, d, cnt, p, s, t; char c, h, w, *name, buf[80];\r
+ int i, j, k, d, cnt, p, s, t; char c, h, w, *name, buf[80], transparent;\r
FILE *f;\r
\r
+ transparent = argc > 1 && !strcmp(argv[1], "-t");\r
+\r
for(s=0; s<18; s++) for(p=0; pieceList[p] != NULL; p++) {\r
\r
// Load the 3 kinds of Windows monochrome bitmaps (outline, solid, white fill)\r
printf("%s loaded\n", buf);\r
// construct pixmaps as character arrays\r
d = sizeList[s];\r
- for(i=0; i<d; i++) { for(j=0; j<d; j++) data[i][j] = '.'; data[i][d] = 0; } // fill square\r
+ for(i=0; i<d; i++) { for(j=0; j<d; j++) data[i][j] = transparent? '.' : 'X'; data[i][d] = 0; } // fill square\r
\r
Paint(data, sData, d, ' '); // overay with solid piece bitmap\r
\r
+ if(!transparent) { // background was painted same color as piece details; flood-fill it from corners\r
+ FloodFill(data, d, 0, 0);\r
+ FloodFill(data, d, 0, d-1);\r
+ FloodFill(data, d, d-1, 0);\r
+ FloodFill(data, d, d-1, d-1);\r
+ }\r
+\r
sprintf(buf, "%s%s%d.xpm", pieceList[p], "dd", d);\r
sprintf(name, "%s%s%d", pieceList[p], "dd", d);\r
f = fopen(buf, "w");\r
- Save(f, name, data, d, "c green s dark_square", 2);\r
+ Save(f, name, data, d, "c green s dark_square", 3);\r
\r
sprintf(buf, "%s%s%d.xpm", pieceList[p], "dl", d);\r
sprintf(name, "%s%s%d", pieceList[p], "dl", d);\r
f = fopen(buf, "w");\r
- Save(f, name, data, d, "c gray s light_square", 2); // silly duplication; pixmap is te same, but other color\r
+ Save(f, name, data, d, "c gray s light_square", 3); // silly duplication; pixmap is te same, but other color\r
\r
// now the light piece\r
for(i=0; i<d; i++) { for(j=0; j<d; j++) data[i][j] = '.'; data[i][d] = 0; } // fill square\r
/* XPM */\r
static char *cvdd33[] = {\r
/* columns rows colors chars-per-pixel */\r
-"33 33 2 1",\r
+"33 33 3 1",\r
" c black s dark_piece",\r
". c green s dark_square",\r
+"X c white s light_piece",\r
/* pixels */\r
".................................",\r
".................................",\r
"................... ... .........",\r
".................. . .........",\r
"............... .........",\r
-"............. ... .. ........",\r
-"........... .. .. ........",\r
-"........... .. . . .......",\r
-".......... .. .. .......",\r
-"......... . ......",\r
-"......... . . ......",\r
-"......... .. .....",\r
-"........ . .....",\r
-"........ . .. .. ....",\r
-"........ .. .... . ....",\r
-"........ .. .... ....",\r
-"....... . .... .....",\r
-"....... . ... .......",\r
-"....... .. ...........",\r
-"....... .. ...........",\r
-"....... .. ..........",\r
+"............. XXX XX ........",\r
+"........... XX XX ........",\r
+"........... XX X X .......",\r
+".......... XX XX .......",\r
+"......... X ......",\r
+"......... X X ......",\r
+"......... XX .....",\r
+"........ X .....",\r
+"........ X .. XX ....",\r
+"........ XX .... X ....",\r
+"........ XX .... ....",\r
+"....... X .... .....",\r
+"....... X ... .......",\r
+"....... XX ...........",\r
+"....... XX ...........",\r
+"....... XX ..........",\r
"....... ..........",\r
"....... ..........",\r
-"........ ............. ..........",\r
+"........ XXXXXXXXXXXXX ..........",\r
"....... .........",\r
"...... ........",\r
-"..... ................. .......",\r
+"..... XXXXXXXXXXXXXXXXX .......",\r
"..... .......",\r
"..... .......",\r
"..... ... ... .......",\r
/* XPM */\r
static char *cvdd37[] = {\r
/* columns rows colors chars-per-pixel */\r
-"37 37 2 1",\r
+"37 37 3 1",\r
" c black s dark_piece",\r
". c green s dark_square",\r
+"X c white s light_piece",\r
/* pixels */\r
".....................................",\r
"..................... .... ..........",\r
".................... .. ..........",\r
".................... . ..........",\r
"................ ..........",\r
-"............... ... .. ..........",\r
-".............. . .........",\r
-"............. . .. .........",\r
-"............ . . ........",\r
-"............ .. . ........",\r
-"........... . .......",\r
-"........... .. . .......",\r
-"........... . ......",\r
-".......... .. ......",\r
-".......... .. .. .....",\r
-".......... . .... .. .....",\r
-"............ .... . .....",\r
-"......... .. .... . .....",\r
-"......... .. ..... ......",\r
-"......... .. ..............",\r
-"......... .. .............",\r
-"......... .. ............",\r
-"......... .. ...........",\r
-"......... . ...........",\r
+"............... XXX XX ..........",\r
+".............. X .........",\r
+"............. X XX .........",\r
+"............ X X ........",\r
+"............ XX X ........",\r
+"........... X .......",\r
+"........... XX X .......",\r
+"........... X ......",\r
+".......... XX ......",\r
+".......... XX .. .....",\r
+".......... X .... XX .....",\r
+"..........XX .... X .....",\r
+"......... XX .... X .....",\r
+"......... XX ..... ......",\r
+"......... XX ..............",\r
+"......... XX .............",\r
+"......... XX ............",\r
+"......... XX ...........",\r
+"......... X ...........",\r
"......... ...........",\r
-".......... .............. ...........",\r
+".......... XXXXXXXXXXXXXX ...........",\r
"......... ..........",\r
"........ .........",\r
".....................................",\r
/* XPM */\r
static char *cvdd40[] = {\r
/* columns rows colors chars-per-pixel */\r
-"40 40 2 1",\r
+"40 40 3 1",\r
" c black s dark_piece",\r
". c green s dark_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"........................................",\r
"........................................",\r
"..................... .. ............",\r
"..................... . ............",\r
".................. ............",\r
-"................ ... .. ............",\r
-"............... .. ...........",\r
-"............. .. .. ...........",\r
-"............ .. . ..........",\r
-"............ .. . ..........",\r
-"........... . .........",\r
-"........... .. . .........",\r
-"........... . ........",\r
-".......... .. ........",\r
-".......... .. .. .......",\r
-".......... . .... .. .......",\r
-".......... . .... . .......",\r
-"......... .. .... . .......",\r
-"......... .. .... ........",\r
-"......... .. ...............",\r
-"......... .. ..............",\r
-"......... .. .............",\r
-"......... .. .............",\r
-"......... .. ............",\r
-"......... .. ............",\r
-"......... .. ............",\r
+"................ XXX XX ............",\r
+"............... XX ...........",\r
+"............. XX XX ...........",\r
+"............ XX X ..........",\r
+"............ XX X ..........",\r
+"........... X .........",\r
+"........... XX X .........",\r
+"........... X ........",\r
+".......... XX ........",\r
+".......... XX .. .......",\r
+".......... X .... XX .......",\r
+".......... X .... X .......",\r
+"......... XX .... X .......",\r
+"......... XX .... ........",\r
+"......... XX ...............",\r
+"......... XX ..............",\r
+"......... XX .............",\r
+"......... XX .............",\r
+"......... XX ............",\r
+"......... XX ............",\r
+"......... XX ............",\r
"......... .............",\r
-".......... .............. ............",\r
+".......... XXXXXXXXXXXXXX ............",\r
"......... ...........",\r
"........ ..........",\r
-"....... ...................... .........",\r
+"....... XXXXXXXXXXXXXXXXXXXXXX .........",\r
"...... ........",\r
"...... ........",\r
"...... ........",\r
/* XPM */\r
static char *cvdd45[] = {\r
/* columns rows colors chars-per-pixel */\r
-"45 45 2 1",\r
+"45 45 3 1",\r
" c black s dark_piece",\r
". c green s dark_square",\r
+"X c white s light_piece",\r
/* pixels */\r
".............................................",\r
".............................................",\r
"......................... ... ............",\r
"........................ . ............",\r
"..................... ............",\r
-"................... ... .. ............",\r
-"................. .. . ...........",\r
-"................ . ...........",\r
-"............... . . ..........",\r
-".............. . .. ..........",\r
-".............. .. .. ..........",\r
-"............. . .........",\r
-"............. .. .........",\r
-"............ . .........",\r
-"............ .. . ........",\r
-"............ . ........",\r
-".............. . .......",\r
-"........... .. .. ......",\r
-"........... .. .... .. ......",\r
-"........... . ..... . ......",\r
-"............. ...... ......",\r
-"............. ...... . ......",\r
-".......... .. ..... .......",\r
-".......... .. ...... ...........",\r
-".......... .. .................",\r
-".......... .. ................",\r
-".......... .. ...............",\r
-".......... .. ...............",\r
-".......... .. ..............",\r
-".......... . ..............",\r
+"................... XXX XX ............",\r
+"................. XX X ...........",\r
+"................ X ...........",\r
+"............... X X ..........",\r
+".............. X XX ..........",\r
+".............. XX XX ..........",\r
+"............. X .........",\r
+"............. XX .........",\r
+"............ X .........",\r
+"............ XX X ........",\r
+"............ X ........",\r
+"............XX . .......",\r
+"........... XX .. ......",\r
+"........... XX .... XX ......",\r
+"........... X ..... X ......",\r
+"...........XX ...... ......",\r
+"...........XX ...... X ......",\r
+".......... XX ..... .......",\r
+".......... XX ...... ...........",\r
+".......... XX .................",\r
+".......... XX ................",\r
+".......... XX ...............",\r
+".......... XX ...............",\r
+".......... XX ..............",\r
+".......... X ..............",\r
".......... ..............",\r
-".......... ................... ..............",\r
+".......... XXXXXXXXXXXXXXXXXXX ..............",\r
"......... .............",\r
"........ ............",\r
"....... ...........",\r
-"...... ......................... ..........",\r
+"...... XXXXXXXXXXXXXXXXXXXXXXXXX ..........",\r
"...... ..........",\r
"...... ..........",\r
"...... ..........",\r
/* XPM */\r
static char *cvdd49[] = {\r
/* columns rows colors chars-per-pixel */\r
-"49 49 2 1",\r
+"49 49 3 1",\r
" c black s dark_piece",\r
". c green s dark_square",\r
+"X c white s light_piece",\r
/* pixels */\r
".................................................",\r
"........................... ...... .............",\r
".......................... .. .............",\r
".......................... . .............",\r
"..................... ..............",\r
-"................... ... ... .............",\r
-".................. .. ............",\r
-"................. . ............",\r
-"................ . .. ...........",\r
-"............... . .. ...........",\r
-"............... .. .. ...........",\r
-".............. .. . ...........",\r
-".............. .. ..........",\r
-"............. .. ..........",\r
-"............. .. .........",\r
-"............ . . ........",\r
-"............ .. ........",\r
-"............ .. . .......",\r
-"............ . .. .......",\r
-"........... .. .... .. ......",\r
-"........... .. ..... .. ......",\r
-"........... .. ...... . ......",\r
-"........... . ...... . ......",\r
-"........... . ....... .......",\r
-"............. ....... ........",\r
-".......... .. ....... ...........",\r
-".......... .. ..................",\r
-".......... .. .................",\r
-".......... .. .................",\r
-".......... .. ................",\r
-".......... .. ................",\r
-".......... ... ...............",\r
-"........... ..................... ...............",\r
+"................... XXX XXX .............",\r
+".................. XX ............",\r
+"................. X ............",\r
+"................ X XX ...........",\r
+"............... X XX ...........",\r
+"............... XX XX ...........",\r
+".............. XX X ...........",\r
+".............. XX ..........",\r
+"............. XX ..........",\r
+"............. XX .........",\r
+"............ X X ........",\r
+"............ XX ........",\r
+"............ XX . .......",\r
+"............ X .. .......",\r
+"........... XX .... XX ......",\r
+"........... XX ..... XX ......",\r
+"........... XX ...... X ......",\r
+"........... X ...... X ......",\r
+"........... X ....... .......",\r
+"...........XX ....... ........",\r
+".......... XX ....... ...........",\r
+".......... XX ..................",\r
+".......... XX .................",\r
+".......... XX .................",\r
+".......... XX ................",\r
+".......... XX ................",\r
+".......... XXX ...............",\r
+"........... XXXXXXXXXXXXXXXXXXXXX ...............",\r
"........... ...............",\r
"........... ...............",\r
-"........... ..................... ...............",\r
+"........... XXXXXXXXXXXXXXXXXXXXX ...............",\r
".......... ..............",\r
"......... .............",\r
"........ ............",\r
-"....... ............................. ...........",\r
+"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........",\r
"....... ...........",\r
"....... ...........",\r
"....... ...........",\r
/* XPM */\r
static char *cvdd54[] = {\r
/* columns rows colors chars-per-pixel */\r
-"54 54 2 1",\r
+"54 54 3 1",\r
" c black s dark_piece",\r
". c green s dark_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"......................................................",\r
"......................................................",\r
"............................. .. ...............",\r
"............................. . ...............",\r
"........................ ................",\r
-"...................... ... ... ...............",\r
-".................... .... ..............",\r
-"................... ... ..............",\r
-".................. ... .. .............",\r
-"................. ... .. .............",\r
-"................. .. .. .............",\r
-"................ ... . .............",\r
-"................ .. ............",\r
-"................ ... ............",\r
-"............... .. .. ...........",\r
-"............... .. . ..........",\r
-"............... .. ..........",\r
-".............. .. . .........",\r
-".............. .. .. .........",\r
-".............. .. .... .. ........",\r
-"............. .. ..... .. ........",\r
-"............. .. ...... . ........",\r
-"............. .. ...... . ........",\r
-"............. .. ....... .. .........",\r
-"............. . ....... ..........",\r
-"............. .. ....... .............",\r
-"............ .. ....................",\r
-"............ .. ...................",\r
-"............ .. ...................",\r
-"............ .. ..................",\r
-"............ .. ..................",\r
-"............ .. .................",\r
-"............ .. .................",\r
+"...................... XXX XXX ...............",\r
+".................... XXXX ..............",\r
+"................... XXX ..............",\r
+".................. XXX XX .............",\r
+"................. XXX XX .............",\r
+"................. XX XX .............",\r
+"................ XXX X .............",\r
+"................ XX ............",\r
+"................ XXX ............",\r
+"............... XX XX ...........",\r
+"............... XX X ..........",\r
+"............... XX ..........",\r
+".............. XX . .........",\r
+".............. XX .. .........",\r
+".............. XX .... XX ........",\r
+"............. XX ..... XX ........",\r
+"............. XX ...... X ........",\r
+"............. XX ...... X ........",\r
+"............. XX ....... XX .........",\r
+"............. X ....... ..........",\r
+"............. XX ....... .............",\r
+"............ XX ....................",\r
+"............ XX ...................",\r
+"............ XX ...................",\r
+"............ XX ..................",\r
+"............ XX ..................",\r
+"............ XX .................",\r
+"............ XX .................",\r
"............ .................",\r
"............ .................",\r
-"............. .................... .................",\r
-"............ .................... ................",\r
+"............. XXXXXXXXXXXXXXXXXXXX .................",\r
+"............ XXXXXXXXXXXXXXXXXXXX ................",\r
"........... ...............",\r
".......... ..............",\r
"......... .............",\r
-"........ ............................ ............",\r
-"........ ............................ ............",\r
+"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............",\r
+"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............",\r
"........ ............",\r
"........ ............",\r
"........ ............",\r
/* XPM */\r
static char *cvdd58[] = {\r
/* columns rows colors chars-per-pixel */\r
-"58 58 2 1",\r
+"58 58 3 1",\r
" c black s dark_piece",\r
". c green s dark_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"..........................................................",\r
"................................. ........ ...............",\r
"............................... .... ...............",\r
"............................... .. ...............",\r
"........................... ...............",\r
-"........................ ... ... ................",\r
-"....................... ..... .... ...............",\r
-"...................... ... ..............",\r
-"..................... .. .............",\r
-".................... . .............",\r
-"................... . . ............",\r
-".................. .. ... ............",\r
-".................. .. .. ............",\r
-"................. ... .. ............",\r
-"................ .. ...........",\r
-"................ ... ...........",\r
-"............... .. . ...........",\r
-"............... ... .. ..........",\r
-"............... .. . ..........",\r
-".............. .. .........",\r
-".............. .. ........",\r
-".............. .. . ........",\r
-"............. .. .. .......",\r
-"............. .. .... .......",\r
-"............. .. ..... .. ......",\r
-"............ .. ....... .. ......",\r
-"............ .. ....... ......",\r
-"............ .. ....... ......",\r
-"............ .. ........ .. ......",\r
-"............ .. ........ .. .......",\r
-"............ .. ........ ........",\r
-"........... ... ....... .............",\r
-"........... .. .....................",\r
-"........... .. ....................",\r
-"........... .. ...................",\r
-"........... .. ...................",\r
-"........... .. ...................",\r
-"........... .. ..................",\r
+"........................ XXX XXX ................",\r
+"....................... XXXXX XXXX ...............",\r
+"...................... XXX ..............",\r
+"..................... XX .............",\r
+".................... X .............",\r
+"................... X X ............",\r
+".................. XX XXX ............",\r
+".................. XX XX ............",\r
+"................. XXX XX ............",\r
+"................ XX ...........",\r
+"................ XXX ...........",\r
+"............... XX X ...........",\r
+"............... XXX XX ..........",\r
+"............... XX X ..........",\r
+".............. XX .........",\r
+".............. XX ........",\r
+".............. XX . ........",\r
+"............. XX .. .......",\r
+"............. XX .... .......",\r
+"............. XX ..... XX ......",\r
+"............ XX ....... XX ......",\r
+"............ XX ....... ......",\r
+"............ XX ....... ......",\r
+"............ XX ........ XX ......",\r
+"............ XX ........ XX .......",\r
+"............ XX ........ ........",\r
+"........... XXX ....... .............",\r
+"........... XX .....................",\r
+"........... XX ....................",\r
+"........... XX ...................",\r
+"........... XX ...................",\r
+"........... XX ...................",\r
+"........... XX ..................",\r
"........... ..................",\r
"........... ..................",\r
-"........... ........................ .................",\r
-"............ ........................ .................",\r
+"........... XXXXXXXXXXXXXXXXXXXXXXXX .................",\r
+"............ XXXXXXXXXXXXXXXXXXXXXXXX .................",\r
"........... ................",\r
"......... ...............",\r
"........ ..............",\r
-"....... ................................ .............",\r
-"....... ................................ .............",\r
+"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............",\r
+"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............",\r
"....... .............",\r
"....... .............",\r
"....... .............",\r
/* XPM */\r
static char *cvdd64[] = {\r
/* columns rows colors chars-per-pixel */\r
-"64 64 2 1",\r
+"64 64 3 1",\r
" c black s dark_piece",\r
". c green s dark_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"................................................................",\r
"................................................................",\r
"................................. .... ...................",\r
"................................. .. ...................",\r
"............................. ...................",\r
-".......................... ... ... ....................",\r
-"......................... ..... .... ...................",\r
-"........................ ... ..................",\r
-"....................... .. .................",\r
-"...................... . .................",\r
-"..................... . . ................",\r
-".................... .. ... ................",\r
-".................... .. .. ................",\r
-"................... ... .. ................",\r
-".................. .. ...............",\r
-".................. ... ...............",\r
-"................. .. . ...............",\r
-"................. ... .. ..............",\r
-"................. .. . ..............",\r
-"................ .. .............",\r
-"................ .. ............",\r
-"................ .. . ............",\r
-"............... .. .. ...........",\r
-"............... .. .... ...........",\r
-"............... . ...... .. ..........",\r
-"............... .. ....... .. ..........",\r
-".............. .. ........ ..........",\r
-".............. .. ........ ..........",\r
-".............. .. ........ .. ..........",\r
-".............. .. ......... .. ...........",\r
-".............. .. ......... ............",\r
-".............. .. ........ .................",\r
-"............. ... ..........................",\r
-"............. .. .........................",\r
-"............. .. ........................",\r
-"............. .. .......................",\r
-"............. .. .......................",\r
-"............. .. .......................",\r
-"............. .. ......................",\r
+".......................... XXX XXX ....................",\r
+"......................... XXXXX XXXX ...................",\r
+"........................ XXX ..................",\r
+"....................... XX .................",\r
+"...................... X .................",\r
+"..................... X X ................",\r
+".................... XX XXX ................",\r
+".................... XX XX ................",\r
+"................... XXX XX ................",\r
+".................. XX ...............",\r
+".................. XXX ...............",\r
+"................. XX X ...............",\r
+"................. XXX XX ..............",\r
+"................. XX X ..............",\r
+"................ XX .............",\r
+"................ XX ............",\r
+"................ XX . ............",\r
+"............... XX .. ...........",\r
+"............... XX .... ...........",\r
+"............... X ...... XX ..........",\r
+"............... XX ....... XX ..........",\r
+".............. XX ........ ..........",\r
+".............. XX ........ ..........",\r
+".............. XX ........ XX ..........",\r
+".............. XX ......... XX ...........",\r
+".............. XX ......... ............",\r
+".............. XX ........ .................",\r
+"............. XXX ..........................",\r
+"............. XX .........................",\r
+"............. XX ........................",\r
+"............. XX .......................",\r
+"............. XX .......................",\r
+"............. XX .......................",\r
+"............. XX ......................",\r
"............. ......................",\r
".............. ......................",\r
-".............. ...................... ......................",\r
-"............. ........................ .....................",\r
+".............. XXXXXXXXXXXXXXXXXXXXXX ......................",\r
+"............. XXXXXXXXXXXXXXXXXXXXXXXX .....................",\r
"............ ....................",\r
".......... ..................",\r
"......... .................",\r
-"........ .................................. ................",\r
-"........ .................................... ................",\r
+"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................",\r
+"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................",\r
"........ ................",\r
"........ ................",\r
"........ ................",\r
/* XPM */\r
static char *cvdd72[] = {\r
/* columns rows colors chars-per-pixel */\r
-"72 72 2 1",\r
+"72 72 3 1",\r
" c black s dark_piece",\r
". c green s dark_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"........................................................................",\r
"........................................................................",\r
"...................................... .. ....................",\r
".................................. ....................",\r
"............................... ....................",\r
-"............................. .... .. ....................",\r
-"........................... ..... ..... ...................",\r
-".......................... ..... ... ..................",\r
-"......................... .... .................",\r
-"........................ .... .................",\r
-"....................... .... .... ................",\r
-"...................... .... .... ................",\r
-"...................... .... .... ................",\r
-"..................... ... ... ................",\r
-"..................... .... . ...............",\r
-".................... .... ...............",\r
-".................... .... ...............",\r
-"................... .... . ..............",\r
-"................... .... . ..............",\r
-"................... .... .. .............",\r
-".................. .... . ............",\r
-".................. .... ...........",\r
-".................. .... ...........",\r
-"................. .... . ..........",\r
-"................. .... ... ..........",\r
-"................. .... ..... .. .........",\r
-"................. .... ..... ... .........",\r
-"................ .... ....... ... .........",\r
-"................ .... ....... .. .........",\r
-"................ ..... ........ .. .........",\r
-"................ .... ........ . .........",\r
-"................ .... ........ .. .........",\r
-"................ .... ........ ..........",\r
-"................ .... ....... ............",\r
-"............... .... ....... .................",\r
-"............... .... ..........................",\r
-"............... .... .........................",\r
-"............... .... .........................",\r
-"............... .... ........................",\r
-"............... ..... .......................",\r
-"............... ..... .......................",\r
-"............... .... ......................",\r
-"............... .... ......................",\r
+"............................. XXXX XX ....................",\r
+"........................... XXXXX XXXXX ...................",\r
+".......................... XXXXX XXX ..................",\r
+"......................... XXXX .................",\r
+"........................ XXXX .................",\r
+"....................... XXXX XXXX ................",\r
+"...................... XXXX XXXX ................",\r
+"...................... XXXX XXXX ................",\r
+"..................... XXX XXX ................",\r
+"..................... XXXX X ...............",\r
+".................... XXXX ...............",\r
+".................... XXXX ...............",\r
+"................... XXXX X ..............",\r
+"................... XXXX X ..............",\r
+"................... XXXX XX .............",\r
+".................. XXXX X ............",\r
+".................. XXXX ...........",\r
+".................. XXXX ...........",\r
+"................. XXXX . ..........",\r
+"................. XXXX ... ..........",\r
+"................. XXXX ..... XX .........",\r
+"................. XXXX ..... XXX .........",\r
+"................ XXXX ....... XXX .........",\r
+"................ XXXX ....... XX .........",\r
+"................ XXXXX ........ XX .........",\r
+"................ XXXX ........ X .........",\r
+"................ XXXX ........ XX .........",\r
+"................ XXXX ........ ..........",\r
+"................ XXXX ....... ............",\r
+"............... XXXX ....... .................",\r
+"............... XXXX ..........................",\r
+"............... XXXX .........................",\r
+"............... XXXX .........................",\r
+"............... XXXX ........................",\r
+"............... XXXXX .......................",\r
+"............... XXXXX .......................",\r
+"............... XXXX ......................",\r
+"............... XXXX ......................",\r
"............... ......................",\r
"............... ......................",\r
-"............... .............................. ......................",\r
-".............. .............................. ......................",\r
+"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................",\r
+".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................",\r
"............. .....................",\r
"........... ...................",\r
".......... ..................",\r
-"......... ........................................ .................",\r
-"......... ........................................ .................",\r
+"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................",\r
+"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................",\r
"......... .................",\r
"......... .................",\r
"......... .................",\r
/* XPM */\r
static char *cvdl33[] = {\r
/* columns rows colors chars-per-pixel */\r
-"33 33 2 1",\r
+"33 33 3 1",\r
" c black s dark_piece",\r
". c gray s light_square",\r
+"X c white s light_piece",\r
/* pixels */\r
".................................",\r
".................................",\r
"................... ... .........",\r
".................. . .........",\r
"............... .........",\r
-"............. ... .. ........",\r
-"........... .. .. ........",\r
-"........... .. . . .......",\r
-".......... .. .. .......",\r
-"......... . ......",\r
-"......... . . ......",\r
-"......... .. .....",\r
-"........ . .....",\r
-"........ . .. .. ....",\r
-"........ .. .... . ....",\r
-"........ .. .... ....",\r
-"....... . .... .....",\r
-"....... . ... .......",\r
-"....... .. ...........",\r
-"....... .. ...........",\r
-"....... .. ..........",\r
+"............. XXX XX ........",\r
+"........... XX XX ........",\r
+"........... XX X X .......",\r
+".......... XX XX .......",\r
+"......... X ......",\r
+"......... X X ......",\r
+"......... XX .....",\r
+"........ X .....",\r
+"........ X .. XX ....",\r
+"........ XX .... X ....",\r
+"........ XX .... ....",\r
+"....... X .... .....",\r
+"....... X ... .......",\r
+"....... XX ...........",\r
+"....... XX ...........",\r
+"....... XX ..........",\r
"....... ..........",\r
"....... ..........",\r
-"........ ............. ..........",\r
+"........ XXXXXXXXXXXXX ..........",\r
"....... .........",\r
"...... ........",\r
-"..... ................. .......",\r
+"..... XXXXXXXXXXXXXXXXX .......",\r
"..... .......",\r
"..... .......",\r
"..... ... ... .......",\r
/* XPM */\r
static char *cvdl37[] = {\r
/* columns rows colors chars-per-pixel */\r
-"37 37 2 1",\r
+"37 37 3 1",\r
" c black s dark_piece",\r
". c gray s light_square",\r
+"X c white s light_piece",\r
/* pixels */\r
".....................................",\r
"..................... .... ..........",\r
".................... .. ..........",\r
".................... . ..........",\r
"................ ..........",\r
-"............... ... .. ..........",\r
-".............. . .........",\r
-"............. . .. .........",\r
-"............ . . ........",\r
-"............ .. . ........",\r
-"........... . .......",\r
-"........... .. . .......",\r
-"........... . ......",\r
-".......... .. ......",\r
-".......... .. .. .....",\r
-".......... . .... .. .....",\r
-"............ .... . .....",\r
-"......... .. .... . .....",\r
-"......... .. ..... ......",\r
-"......... .. ..............",\r
-"......... .. .............",\r
-"......... .. ............",\r
-"......... .. ...........",\r
-"......... . ...........",\r
+"............... XXX XX ..........",\r
+".............. X .........",\r
+"............. X XX .........",\r
+"............ X X ........",\r
+"............ XX X ........",\r
+"........... X .......",\r
+"........... XX X .......",\r
+"........... X ......",\r
+".......... XX ......",\r
+".......... XX .. .....",\r
+".......... X .... XX .....",\r
+"..........XX .... X .....",\r
+"......... XX .... X .....",\r
+"......... XX ..... ......",\r
+"......... XX ..............",\r
+"......... XX .............",\r
+"......... XX ............",\r
+"......... XX ...........",\r
+"......... X ...........",\r
"......... ...........",\r
-".......... .............. ...........",\r
+".......... XXXXXXXXXXXXXX ...........",\r
"......... ..........",\r
"........ .........",\r
".....................................",\r
/* XPM */\r
static char *cvdl40[] = {\r
/* columns rows colors chars-per-pixel */\r
-"40 40 2 1",\r
+"40 40 3 1",\r
" c black s dark_piece",\r
". c gray s light_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"........................................",\r
"........................................",\r
"..................... .. ............",\r
"..................... . ............",\r
".................. ............",\r
-"................ ... .. ............",\r
-"............... .. ...........",\r
-"............. .. .. ...........",\r
-"............ .. . ..........",\r
-"............ .. . ..........",\r
-"........... . .........",\r
-"........... .. . .........",\r
-"........... . ........",\r
-".......... .. ........",\r
-".......... .. .. .......",\r
-".......... . .... .. .......",\r
-".......... . .... . .......",\r
-"......... .. .... . .......",\r
-"......... .. .... ........",\r
-"......... .. ...............",\r
-"......... .. ..............",\r
-"......... .. .............",\r
-"......... .. .............",\r
-"......... .. ............",\r
-"......... .. ............",\r
-"......... .. ............",\r
+"................ XXX XX ............",\r
+"............... XX ...........",\r
+"............. XX XX ...........",\r
+"............ XX X ..........",\r
+"............ XX X ..........",\r
+"........... X .........",\r
+"........... XX X .........",\r
+"........... X ........",\r
+".......... XX ........",\r
+".......... XX .. .......",\r
+".......... X .... XX .......",\r
+".......... X .... X .......",\r
+"......... XX .... X .......",\r
+"......... XX .... ........",\r
+"......... XX ...............",\r
+"......... XX ..............",\r
+"......... XX .............",\r
+"......... XX .............",\r
+"......... XX ............",\r
+"......... XX ............",\r
+"......... XX ............",\r
"......... .............",\r
-".......... .............. ............",\r
+".......... XXXXXXXXXXXXXX ............",\r
"......... ...........",\r
"........ ..........",\r
-"....... ...................... .........",\r
+"....... XXXXXXXXXXXXXXXXXXXXXX .........",\r
"...... ........",\r
"...... ........",\r
"...... ........",\r
/* XPM */\r
static char *cvdl45[] = {\r
/* columns rows colors chars-per-pixel */\r
-"45 45 2 1",\r
+"45 45 3 1",\r
" c black s dark_piece",\r
". c gray s light_square",\r
+"X c white s light_piece",\r
/* pixels */\r
".............................................",\r
".............................................",\r
"......................... ... ............",\r
"........................ . ............",\r
"..................... ............",\r
-"................... ... .. ............",\r
-"................. .. . ...........",\r
-"................ . ...........",\r
-"............... . . ..........",\r
-".............. . .. ..........",\r
-".............. .. .. ..........",\r
-"............. . .........",\r
-"............. .. .........",\r
-"............ . .........",\r
-"............ .. . ........",\r
-"............ . ........",\r
-".............. . .......",\r
-"........... .. .. ......",\r
-"........... .. .... .. ......",\r
-"........... . ..... . ......",\r
-"............. ...... ......",\r
-"............. ...... . ......",\r
-".......... .. ..... .......",\r
-".......... .. ...... ...........",\r
-".......... .. .................",\r
-".......... .. ................",\r
-".......... .. ...............",\r
-".......... .. ...............",\r
-".......... .. ..............",\r
-".......... . ..............",\r
+"................... XXX XX ............",\r
+"................. XX X ...........",\r
+"................ X ...........",\r
+"............... X X ..........",\r
+".............. X XX ..........",\r
+".............. XX XX ..........",\r
+"............. X .........",\r
+"............. XX .........",\r
+"............ X .........",\r
+"............ XX X ........",\r
+"............ X ........",\r
+"............XX . .......",\r
+"........... XX .. ......",\r
+"........... XX .... XX ......",\r
+"........... X ..... X ......",\r
+"...........XX ...... ......",\r
+"...........XX ...... X ......",\r
+".......... XX ..... .......",\r
+".......... XX ...... ...........",\r
+".......... XX .................",\r
+".......... XX ................",\r
+".......... XX ...............",\r
+".......... XX ...............",\r
+".......... XX ..............",\r
+".......... X ..............",\r
".......... ..............",\r
-".......... ................... ..............",\r
+".......... XXXXXXXXXXXXXXXXXXX ..............",\r
"......... .............",\r
"........ ............",\r
"....... ...........",\r
-"...... ......................... ..........",\r
+"...... XXXXXXXXXXXXXXXXXXXXXXXXX ..........",\r
"...... ..........",\r
"...... ..........",\r
"...... ..........",\r
/* XPM */\r
static char *cvdl49[] = {\r
/* columns rows colors chars-per-pixel */\r
-"49 49 2 1",\r
+"49 49 3 1",\r
" c black s dark_piece",\r
". c gray s light_square",\r
+"X c white s light_piece",\r
/* pixels */\r
".................................................",\r
"........................... ...... .............",\r
".......................... .. .............",\r
".......................... . .............",\r
"..................... ..............",\r
-"................... ... ... .............",\r
-".................. .. ............",\r
-"................. . ............",\r
-"................ . .. ...........",\r
-"............... . .. ...........",\r
-"............... .. .. ...........",\r
-".............. .. . ...........",\r
-".............. .. ..........",\r
-"............. .. ..........",\r
-"............. .. .........",\r
-"............ . . ........",\r
-"............ .. ........",\r
-"............ .. . .......",\r
-"............ . .. .......",\r
-"........... .. .... .. ......",\r
-"........... .. ..... .. ......",\r
-"........... .. ...... . ......",\r
-"........... . ...... . ......",\r
-"........... . ....... .......",\r
-"............. ....... ........",\r
-".......... .. ....... ...........",\r
-".......... .. ..................",\r
-".......... .. .................",\r
-".......... .. .................",\r
-".......... .. ................",\r
-".......... .. ................",\r
-".......... ... ...............",\r
-"........... ..................... ...............",\r
+"................... XXX XXX .............",\r
+".................. XX ............",\r
+"................. X ............",\r
+"................ X XX ...........",\r
+"............... X XX ...........",\r
+"............... XX XX ...........",\r
+".............. XX X ...........",\r
+".............. XX ..........",\r
+"............. XX ..........",\r
+"............. XX .........",\r
+"............ X X ........",\r
+"............ XX ........",\r
+"............ XX . .......",\r
+"............ X .. .......",\r
+"........... XX .... XX ......",\r
+"........... XX ..... XX ......",\r
+"........... XX ...... X ......",\r
+"........... X ...... X ......",\r
+"........... X ....... .......",\r
+"...........XX ....... ........",\r
+".......... XX ....... ...........",\r
+".......... XX ..................",\r
+".......... XX .................",\r
+".......... XX .................",\r
+".......... XX ................",\r
+".......... XX ................",\r
+".......... XXX ...............",\r
+"........... XXXXXXXXXXXXXXXXXXXXX ...............",\r
"........... ...............",\r
"........... ...............",\r
-"........... ..................... ...............",\r
+"........... XXXXXXXXXXXXXXXXXXXXX ...............",\r
".......... ..............",\r
"......... .............",\r
"........ ............",\r
-"....... ............................. ...........",\r
+"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........",\r
"....... ...........",\r
"....... ...........",\r
"....... ...........",\r
/* XPM */\r
static char *cvdl54[] = {\r
/* columns rows colors chars-per-pixel */\r
-"54 54 2 1",\r
+"54 54 3 1",\r
" c black s dark_piece",\r
". c gray s light_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"......................................................",\r
"......................................................",\r
"............................. .. ...............",\r
"............................. . ...............",\r
"........................ ................",\r
-"...................... ... ... ...............",\r
-".................... .... ..............",\r
-"................... ... ..............",\r
-".................. ... .. .............",\r
-"................. ... .. .............",\r
-"................. .. .. .............",\r
-"................ ... . .............",\r
-"................ .. ............",\r
-"................ ... ............",\r
-"............... .. .. ...........",\r
-"............... .. . ..........",\r
-"............... .. ..........",\r
-".............. .. . .........",\r
-".............. .. .. .........",\r
-".............. .. .... .. ........",\r
-"............. .. ..... .. ........",\r
-"............. .. ...... . ........",\r
-"............. .. ...... . ........",\r
-"............. .. ....... .. .........",\r
-"............. . ....... ..........",\r
-"............. .. ....... .............",\r
-"............ .. ....................",\r
-"............ .. ...................",\r
-"............ .. ...................",\r
-"............ .. ..................",\r
-"............ .. ..................",\r
-"............ .. .................",\r
-"............ .. .................",\r
+"...................... XXX XXX ...............",\r
+".................... XXXX ..............",\r
+"................... XXX ..............",\r
+".................. XXX XX .............",\r
+"................. XXX XX .............",\r
+"................. XX XX .............",\r
+"................ XXX X .............",\r
+"................ XX ............",\r
+"................ XXX ............",\r
+"............... XX XX ...........",\r
+"............... XX X ..........",\r
+"............... XX ..........",\r
+".............. XX . .........",\r
+".............. XX .. .........",\r
+".............. XX .... XX ........",\r
+"............. XX ..... XX ........",\r
+"............. XX ...... X ........",\r
+"............. XX ...... X ........",\r
+"............. XX ....... XX .........",\r
+"............. X ....... ..........",\r
+"............. XX ....... .............",\r
+"............ XX ....................",\r
+"............ XX ...................",\r
+"............ XX ...................",\r
+"............ XX ..................",\r
+"............ XX ..................",\r
+"............ XX .................",\r
+"............ XX .................",\r
"............ .................",\r
"............ .................",\r
-"............. .................... .................",\r
-"............ .................... ................",\r
+"............. XXXXXXXXXXXXXXXXXXXX .................",\r
+"............ XXXXXXXXXXXXXXXXXXXX ................",\r
"........... ...............",\r
".......... ..............",\r
"......... .............",\r
-"........ ............................ ............",\r
-"........ ............................ ............",\r
+"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............",\r
+"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............",\r
"........ ............",\r
"........ ............",\r
"........ ............",\r
/* XPM */\r
static char *cvdl58[] = {\r
/* columns rows colors chars-per-pixel */\r
-"58 58 2 1",\r
+"58 58 3 1",\r
" c black s dark_piece",\r
". c gray s light_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"..........................................................",\r
"................................. ........ ...............",\r
"............................... .... ...............",\r
"............................... .. ...............",\r
"........................... ...............",\r
-"........................ ... ... ................",\r
-"....................... ..... .... ...............",\r
-"...................... ... ..............",\r
-"..................... .. .............",\r
-".................... . .............",\r
-"................... . . ............",\r
-".................. .. ... ............",\r
-".................. .. .. ............",\r
-"................. ... .. ............",\r
-"................ .. ...........",\r
-"................ ... ...........",\r
-"............... .. . ...........",\r
-"............... ... .. ..........",\r
-"............... .. . ..........",\r
-".............. .. .........",\r
-".............. .. ........",\r
-".............. .. . ........",\r
-"............. .. .. .......",\r
-"............. .. .... .......",\r
-"............. .. ..... .. ......",\r
-"............ .. ....... .. ......",\r
-"............ .. ....... ......",\r
-"............ .. ....... ......",\r
-"............ .. ........ .. ......",\r
-"............ .. ........ .. .......",\r
-"............ .. ........ ........",\r
-"........... ... ....... .............",\r
-"........... .. .....................",\r
-"........... .. ....................",\r
-"........... .. ...................",\r
-"........... .. ...................",\r
-"........... .. ...................",\r
-"........... .. ..................",\r
+"........................ XXX XXX ................",\r
+"....................... XXXXX XXXX ...............",\r
+"...................... XXX ..............",\r
+"..................... XX .............",\r
+".................... X .............",\r
+"................... X X ............",\r
+".................. XX XXX ............",\r
+".................. XX XX ............",\r
+"................. XXX XX ............",\r
+"................ XX ...........",\r
+"................ XXX ...........",\r
+"............... XX X ...........",\r
+"............... XXX XX ..........",\r
+"............... XX X ..........",\r
+".............. XX .........",\r
+".............. XX ........",\r
+".............. XX . ........",\r
+"............. XX .. .......",\r
+"............. XX .... .......",\r
+"............. XX ..... XX ......",\r
+"............ XX ....... XX ......",\r
+"............ XX ....... ......",\r
+"............ XX ....... ......",\r
+"............ XX ........ XX ......",\r
+"............ XX ........ XX .......",\r
+"............ XX ........ ........",\r
+"........... XXX ....... .............",\r
+"........... XX .....................",\r
+"........... XX ....................",\r
+"........... XX ...................",\r
+"........... XX ...................",\r
+"........... XX ...................",\r
+"........... XX ..................",\r
"........... ..................",\r
"........... ..................",\r
-"........... ........................ .................",\r
-"............ ........................ .................",\r
+"........... XXXXXXXXXXXXXXXXXXXXXXXX .................",\r
+"............ XXXXXXXXXXXXXXXXXXXXXXXX .................",\r
"........... ................",\r
"......... ...............",\r
"........ ..............",\r
-"....... ................................ .............",\r
-"....... ................................ .............",\r
+"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............",\r
+"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............",\r
"....... .............",\r
"....... .............",\r
"....... .............",\r
/* XPM */\r
static char *cvdl64[] = {\r
/* columns rows colors chars-per-pixel */\r
-"64 64 2 1",\r
+"64 64 3 1",\r
" c black s dark_piece",\r
". c gray s light_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"................................................................",\r
"................................................................",\r
"................................. .... ...................",\r
"................................. .. ...................",\r
"............................. ...................",\r
-".......................... ... ... ....................",\r
-"......................... ..... .... ...................",\r
-"........................ ... ..................",\r
-"....................... .. .................",\r
-"...................... . .................",\r
-"..................... . . ................",\r
-".................... .. ... ................",\r
-".................... .. .. ................",\r
-"................... ... .. ................",\r
-".................. .. ...............",\r
-".................. ... ...............",\r
-"................. .. . ...............",\r
-"................. ... .. ..............",\r
-"................. .. . ..............",\r
-"................ .. .............",\r
-"................ .. ............",\r
-"................ .. . ............",\r
-"............... .. .. ...........",\r
-"............... .. .... ...........",\r
-"............... . ...... .. ..........",\r
-"............... .. ....... .. ..........",\r
-".............. .. ........ ..........",\r
-".............. .. ........ ..........",\r
-".............. .. ........ .. ..........",\r
-".............. .. ......... .. ...........",\r
-".............. .. ......... ............",\r
-".............. .. ........ .................",\r
-"............. ... ..........................",\r
-"............. .. .........................",\r
-"............. .. ........................",\r
-"............. .. .......................",\r
-"............. .. .......................",\r
-"............. .. .......................",\r
-"............. .. ......................",\r
+".......................... XXX XXX ....................",\r
+"......................... XXXXX XXXX ...................",\r
+"........................ XXX ..................",\r
+"....................... XX .................",\r
+"...................... X .................",\r
+"..................... X X ................",\r
+".................... XX XXX ................",\r
+".................... XX XX ................",\r
+"................... XXX XX ................",\r
+".................. XX ...............",\r
+".................. XXX ...............",\r
+"................. XX X ...............",\r
+"................. XXX XX ..............",\r
+"................. XX X ..............",\r
+"................ XX .............",\r
+"................ XX ............",\r
+"................ XX . ............",\r
+"............... XX .. ...........",\r
+"............... XX .... ...........",\r
+"............... X ...... XX ..........",\r
+"............... XX ....... XX ..........",\r
+".............. XX ........ ..........",\r
+".............. XX ........ ..........",\r
+".............. XX ........ XX ..........",\r
+".............. XX ......... XX ...........",\r
+".............. XX ......... ............",\r
+".............. XX ........ .................",\r
+"............. XXX ..........................",\r
+"............. XX .........................",\r
+"............. XX ........................",\r
+"............. XX .......................",\r
+"............. XX .......................",\r
+"............. XX .......................",\r
+"............. XX ......................",\r
"............. ......................",\r
".............. ......................",\r
-".............. ...................... ......................",\r
-"............. ........................ .....................",\r
+".............. XXXXXXXXXXXXXXXXXXXXXX ......................",\r
+"............. XXXXXXXXXXXXXXXXXXXXXXXX .....................",\r
"............ ....................",\r
".......... ..................",\r
"......... .................",\r
-"........ .................................. ................",\r
-"........ .................................... ................",\r
+"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................",\r
+"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................",\r
"........ ................",\r
"........ ................",\r
"........ ................",\r
/* XPM */\r
static char *cvdl72[] = {\r
/* columns rows colors chars-per-pixel */\r
-"72 72 2 1",\r
+"72 72 3 1",\r
" c black s dark_piece",\r
". c gray s light_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"........................................................................",\r
"........................................................................",\r
"...................................... .. ....................",\r
".................................. ....................",\r
"............................... ....................",\r
-"............................. .... .. ....................",\r
-"........................... ..... ..... ...................",\r
-".......................... ..... ... ..................",\r
-"......................... .... .................",\r
-"........................ .... .................",\r
-"....................... .... .... ................",\r
-"...................... .... .... ................",\r
-"...................... .... .... ................",\r
-"..................... ... ... ................",\r
-"..................... .... . ...............",\r
-".................... .... ...............",\r
-".................... .... ...............",\r
-"................... .... . ..............",\r
-"................... .... . ..............",\r
-"................... .... .. .............",\r
-".................. .... . ............",\r
-".................. .... ...........",\r
-".................. .... ...........",\r
-"................. .... . ..........",\r
-"................. .... ... ..........",\r
-"................. .... ..... .. .........",\r
-"................. .... ..... ... .........",\r
-"................ .... ....... ... .........",\r
-"................ .... ....... .. .........",\r
-"................ ..... ........ .. .........",\r
-"................ .... ........ . .........",\r
-"................ .... ........ .. .........",\r
-"................ .... ........ ..........",\r
-"................ .... ....... ............",\r
-"............... .... ....... .................",\r
-"............... .... ..........................",\r
-"............... .... .........................",\r
-"............... .... .........................",\r
-"............... .... ........................",\r
-"............... ..... .......................",\r
-"............... ..... .......................",\r
-"............... .... ......................",\r
-"............... .... ......................",\r
+"............................. XXXX XX ....................",\r
+"........................... XXXXX XXXXX ...................",\r
+".......................... XXXXX XXX ..................",\r
+"......................... XXXX .................",\r
+"........................ XXXX .................",\r
+"....................... XXXX XXXX ................",\r
+"...................... XXXX XXXX ................",\r
+"...................... XXXX XXXX ................",\r
+"..................... XXX XXX ................",\r
+"..................... XXXX X ...............",\r
+".................... XXXX ...............",\r
+".................... XXXX ...............",\r
+"................... XXXX X ..............",\r
+"................... XXXX X ..............",\r
+"................... XXXX XX .............",\r
+".................. XXXX X ............",\r
+".................. XXXX ...........",\r
+".................. XXXX ...........",\r
+"................. XXXX . ..........",\r
+"................. XXXX ... ..........",\r
+"................. XXXX ..... XX .........",\r
+"................. XXXX ..... XXX .........",\r
+"................ XXXX ....... XXX .........",\r
+"................ XXXX ....... XX .........",\r
+"................ XXXXX ........ XX .........",\r
+"................ XXXX ........ X .........",\r
+"................ XXXX ........ XX .........",\r
+"................ XXXX ........ ..........",\r
+"................ XXXX ....... ............",\r
+"............... XXXX ....... .................",\r
+"............... XXXX ..........................",\r
+"............... XXXX .........................",\r
+"............... XXXX .........................",\r
+"............... XXXX ........................",\r
+"............... XXXXX .......................",\r
+"............... XXXXX .......................",\r
+"............... XXXX ......................",\r
+"............... XXXX ......................",\r
"............... ......................",\r
"............... ......................",\r
-"............... .............................. ......................",\r
-".............. .............................. ......................",\r
+"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................",\r
+".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................",\r
"............. .....................",\r
"........... ...................",\r
".......... ..................",\r
-"......... ........................................ .................",\r
-"......... ........................................ .................",\r
+"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................",\r
+"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................",\r
"......... .................",\r
"......... .................",\r
"......... .................",\r
/* XPM */\r
static char *hdd33[] = {\r
/* columns rows colors chars-per-pixel */\r
-"33 33 2 1",\r
+"33 33 3 1",\r
" c black s dark_piece",\r
". c green s dark_square",\r
+"X c white s light_piece",\r
/* pixels */\r
".................................",\r
".................................",\r
"......... ... .................",\r
"......... .. ................",\r
"......... ..............",\r
-"......... .. .. ............",\r
-".......... . .. ..........",\r
-"........ . . .........",\r
-"........ .... . ........",\r
-"....... . ... . .......",\r
-"....... . .... .. .......",\r
-"...... ....... . ......",\r
-"...... ..... .. ......",\r
-"..... ... . . .....",\r
-"..... . .. .....",\r
-".... .. .....",\r
-".... .. . ....",\r
-"... . .... .. ....",\r
-"... . .... .. ....",\r
-"... ..... .. ....",\r
-"... ..... . ....",\r
-".... ..... . ...",\r
-"............. .. ...",\r
-"............ .. ...",\r
-"........... .. ...",\r
-"........... .. ...",\r
-".......... .. ...",\r
+"......... XX XX ............",\r
+".......... X XX ..........",\r
+"........ X X .........",\r
+"........ XXXX X ........",\r
+"....... X XXX X .......",\r
+"....... X XXXX XX .......",\r
+"...... XXXXXXX X ......",\r
+"...... XXXXX XX ......",\r
+"..... XXX X X .....",\r
+"..... X XX .....",\r
+".... XX .....",\r
+".... .. X ....",\r
+"... X .... XX ....",\r
+"... X .... XX ....",\r
+"... ..... XX ....",\r
+"... ..... X ....",\r
+".... ..... X ...",\r
+"............. XX ...",\r
+"............ XX ...",\r
+"........... XX ...",\r
+"........... XX ...",\r
+".......... XX ...",\r
".......... ...",\r
".......... ...",\r
".................................",\r
/* XPM */\r
static char *hdd49[] = {\r
/* columns rows colors chars-per-pixel */\r
-"49 49 2 1",\r
+"49 49 3 1",\r
" c black s dark_piece",\r
". c green s dark_square",\r
+"X c white s light_piece",\r
/* pixels */\r
".................................................",\r
".................................................",\r
"............ ..... ..........................",\r
"............ .... .........................",\r
"............ .. .........................",\r
-"............ . . .....................",\r
-"............. .. . . ... ...................",\r
-"............ . ... .................",\r
-"........... .. ... ...............",\r
-".......... .... .. ..............",\r
-".......... ...... . .............",\r
-"......... ..... .. . ............",\r
-"......... ... .... . ...........",\r
-"......... ... ...... .............",\r
-"......... .. ...... . ..........",\r
-"........ ........ .. .........",\r
-"........ ...... . .........",\r
-"........ ... .. ........",\r
-"....... . . . ........",\r
-"....... . ..........",\r
-"...... .. .......",\r
-"..... . . .......",\r
-"..... ... .........",\r
-".... .... .. ......",\r
-".... ...... . ......",\r
-"... .. ....... . ......",\r
-"... . ....... ........",\r
-"... ........ .. .....",\r
-"... . ........ .. .....",\r
-"... . ........ .. .....",\r
-".... . ........ . .....",\r
-"..... . ........ . .....",\r
-".......... ....... .......",\r
-".................. .. ....",\r
-".................. .. ....",\r
-"................. .. ....",\r
-"................ .. ....",\r
-"............... .. ....",\r
-"............... .. ....",\r
-".............. .. ....",\r
-".............. .. ....",\r
+"............ X X .....................",\r
+"............. XX X X XXX ...................",\r
+"............ X XXX .................",\r
+"........... XX XXX ...............",\r
+".......... XXXX XX ..............",\r
+".......... XXXXXX X .............",\r
+"......... XXXXX XX X ............",\r
+"......... XXX XXXX X ...........",\r
+"......... XXX XXXXXX XX...........",\r
+"......... XX XXXXXX X ..........",\r
+"........ XXXXXXXX XX .........",\r
+"........ XXXXXX X .........",\r
+"........ XXX XX ........",\r
+"....... X X X ........",\r
+"....... X XX........",\r
+"...... XX .......",\r
+"..... . X .......",\r
+"..... ... XX.......",\r
+".... .... XX ......",\r
+".... ...... X ......",\r
+"... XX ....... X ......",\r
+"... X ....... XX......",\r
+"... ........ XX .....",\r
+"... X ........ XX .....",\r
+"... . ........ XX .....",\r
+".... . ........ X .....",\r
+"..... . ........ X .....",\r
+".......... ....... XX.....",\r
+".................. XX ....",\r
+".................. XX ....",\r
+"................. XX ....",\r
+"................ XX ....",\r
+"............... XX ....",\r
+"............... XX ....",\r
+".............. XX ....",\r
+".............. XX ....",\r
".............. ....",\r
".............. ....",\r
".................................................",\r
/* XPM */\r
static char *hdd72[] = {\r
/* columns rows colors chars-per-pixel */\r
-"72 72 2 1",\r
+"72 72 3 1",\r
" c black s dark_piece",\r
". c green s dark_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"........................................................................",\r
"........................................................................",\r
".................. ..... .....................................",\r
".................. ... ....................................",\r
".................. .. ....................................",\r
-".................. . .. ..............................",\r
-".................. .. . .. ...........................",\r
-".................. ..... ..... .........................",\r
-".................. ... ........ .......................",\r
-"................. ... ..... ......................",\r
-"................ .. . .... ....................",\r
-"............... .... ... ...................",\r
-".............. ...... .... ..................",\r
-".............. ......... .... .................",\r
-"............. ....... .. .... ................",\r
-"............. ..... .... .... ...............",\r
-"............. .... ..... .... ...............",\r
-"............. ... ...... ... ..............",\r
-"............. ... ....... .... .............",\r
-"............ ... ......... .... .............",\r
-"............ ........... .... ............",\r
-"............ ......... .... ............",\r
-"........... ....... .... ...........",\r
-"........... ..... .... ...........",\r
-".......... ... . .... ...........",\r
-".......... . .. .... ..........",\r
-"......... .. .... ..........",\r
-"........ .. .... ..........",\r
-"........ . .... .........",\r
-"....... .. .... .........",\r
-"...... .... .........",\r
-"...... . .... ........",\r
-"..... ... .... ........",\r
-"..... ..... .... ........",\r
-"..... .. ....... .... .......",\r
-".... .... ........ .... .......",\r
-".... .... .......... .... .......",\r
-".... ... .......... .... .......",\r
-".... ... ........... .... .......",\r
-".... .. ........... .... .......",\r
-".... .. ........... .... ......",\r
-".... ... ............ .... ......",\r
-"..... .. ........... .... ......",\r
-"...... ... ........... .... ......",\r
-"........ . ........... .... ......",\r
-".............. ........... .... ......",\r
-"........................... .... ......",\r
-"........................... .... ......",\r
-".......................... .... .....",\r
-"......................... ..... .....",\r
-"........................ .... .....",\r
-"........................ .... .....",\r
-"....................... .... .....",\r
-"...................... .... .....",\r
-"...................... .... .....",\r
-"...................... .... .....",\r
-"..................... .... .....",\r
-"..................... .... .....",\r
-"..................... ... .....",\r
+".................. X XX ..............................",\r
+".................. XX X XX ...........................",\r
+".................. XXXXX XXXXX .........................",\r
+".................. XXX XXXXXXXX .......................",\r
+"................. XXX XXXXX ......................",\r
+"................ XX X XXXX ....................",\r
+"............... XXXX XXX ...................",\r
+".............. XXXXXX XXXX ..................",\r
+".............. XXXXXXXXX XXXX .................",\r
+"............. XXXXXXX XX XXXX ................",\r
+"............. XXXXX XXXX XXXX ...............",\r
+"............. XXXX XXXXX XXXX ...............",\r
+"............. XXX XXXXXX XXX ..............",\r
+"............. XXX XXXXXXX XXXX .............",\r
+"............ XXX XXXXXXXXX XXXX .............",\r
+"............ XXXXXXXXXXX XXXX ............",\r
+"............ XXXXXXXXX XXXX ............",\r
+"........... XXXXXXX XXXX ...........",\r
+"........... XXXXX XXXX ...........",\r
+".......... XXX X XXXX ...........",\r
+".......... X XX XXXX ..........",\r
+"......... XX XXXX ..........",\r
+"........ XX XXXX ..........",\r
+"........ X XXXX .........",\r
+"....... XX XXXX .........",\r
+"...... XXXX .........",\r
+"...... . XXXX ........",\r
+"..... ... XXXX ........",\r
+"..... ..... XXXX ........",\r
+"..... XX ....... XXXX .......",\r
+".... XXXX ........ XXXX .......",\r
+".... XXXX .......... XXXX .......",\r
+".... XXX .......... XXXX .......",\r
+".... XXX ........... XXXX .......",\r
+".... .. ........... XXXX .......",\r
+".... .. ........... XXXX ......",\r
+".... ... ............ XXXX ......",\r
+"..... .. ........... XXXX ......",\r
+"...... ... ........... XXXX ......",\r
+"........ . ........... XXXX ......",\r
+".............. ........... XXXX ......",\r
+"........................... XXXX ......",\r
+"........................... XXXX ......",\r
+".......................... XXXX .....",\r
+"......................... XXXXX .....",\r
+"........................ XXXX .....",\r
+"........................ XXXX .....",\r
+"....................... XXXX .....",\r
+"...................... XXXX .....",\r
+"...................... XXXX .....",\r
+"...................... XXXX .....",\r
+"..................... XXXX .....",\r
+"..................... XXXX .....",\r
+"..................... XXX .....",\r
"..................... .....",\r
"..................... .....",\r
"........................................................................",\r
/* XPM */\r
static char *hdl33[] = {\r
/* columns rows colors chars-per-pixel */\r
-"33 33 2 1",\r
+"33 33 3 1",\r
" c black s dark_piece",\r
". c gray s light_square",\r
+"X c white s light_piece",\r
/* pixels */\r
".................................",\r
".................................",\r
"......... ... .................",\r
"......... .. ................",\r
"......... ..............",\r
-"......... .. .. ............",\r
-".......... . .. ..........",\r
-"........ . . .........",\r
-"........ .... . ........",\r
-"....... . ... . .......",\r
-"....... . .... .. .......",\r
-"...... ....... . ......",\r
-"...... ..... .. ......",\r
-"..... ... . . .....",\r
-"..... . .. .....",\r
-".... .. .....",\r
-".... .. . ....",\r
-"... . .... .. ....",\r
-"... . .... .. ....",\r
-"... ..... .. ....",\r
-"... ..... . ....",\r
-".... ..... . ...",\r
-"............. .. ...",\r
-"............ .. ...",\r
-"........... .. ...",\r
-"........... .. ...",\r
-".......... .. ...",\r
+"......... XX XX ............",\r
+".......... X XX ..........",\r
+"........ X X .........",\r
+"........ XXXX X ........",\r
+"....... X XXX X .......",\r
+"....... X XXXX XX .......",\r
+"...... XXXXXXX X ......",\r
+"...... XXXXX XX ......",\r
+"..... XXX X X .....",\r
+"..... X XX .....",\r
+".... XX .....",\r
+".... .. X ....",\r
+"... X .... XX ....",\r
+"... X .... XX ....",\r
+"... ..... XX ....",\r
+"... ..... X ....",\r
+".... ..... X ...",\r
+"............. XX ...",\r
+"............ XX ...",\r
+"........... XX ...",\r
+"........... XX ...",\r
+".......... XX ...",\r
".......... ...",\r
".......... ...",\r
".................................",\r
/* XPM */\r
static char *hdl49[] = {\r
/* columns rows colors chars-per-pixel */\r
-"49 49 2 1",\r
+"49 49 3 1",\r
" c black s dark_piece",\r
". c gray s light_square",\r
+"X c white s light_piece",\r
/* pixels */\r
".................................................",\r
".................................................",\r
"............ ..... ..........................",\r
"............ .... .........................",\r
"............ .. .........................",\r
-"............ . . .....................",\r
-"............. .. . . ... ...................",\r
-"............ . ... .................",\r
-"........... .. ... ...............",\r
-".......... .... .. ..............",\r
-".......... ...... . .............",\r
-"......... ..... .. . ............",\r
-"......... ... .... . ...........",\r
-"......... ... ...... .............",\r
-"......... .. ...... . ..........",\r
-"........ ........ .. .........",\r
-"........ ...... . .........",\r
-"........ ... .. ........",\r
-"....... . . . ........",\r
-"....... . ..........",\r
-"...... .. .......",\r
-"..... . . .......",\r
-"..... ... .........",\r
-".... .... .. ......",\r
-".... ...... . ......",\r
-"... .. ....... . ......",\r
-"... . ....... ........",\r
-"... ........ .. .....",\r
-"... . ........ .. .....",\r
-"... . ........ .. .....",\r
-".... . ........ . .....",\r
-"..... . ........ . .....",\r
-".......... ....... .......",\r
-".................. .. ....",\r
-".................. .. ....",\r
-"................. .. ....",\r
-"................ .. ....",\r
-"............... .. ....",\r
-"............... .. ....",\r
-".............. .. ....",\r
-".............. .. ....",\r
+"............ X X .....................",\r
+"............. XX X X XXX ...................",\r
+"............ X XXX .................",\r
+"........... XX XXX ...............",\r
+".......... XXXX XX ..............",\r
+".......... XXXXXX X .............",\r
+"......... XXXXX XX X ............",\r
+"......... XXX XXXX X ...........",\r
+"......... XXX XXXXXX XX...........",\r
+"......... XX XXXXXX X ..........",\r
+"........ XXXXXXXX XX .........",\r
+"........ XXXXXX X .........",\r
+"........ XXX XX ........",\r
+"....... X X X ........",\r
+"....... X XX........",\r
+"...... XX .......",\r
+"..... . X .......",\r
+"..... ... XX.......",\r
+".... .... XX ......",\r
+".... ...... X ......",\r
+"... XX ....... X ......",\r
+"... X ....... XX......",\r
+"... ........ XX .....",\r
+"... X ........ XX .....",\r
+"... . ........ XX .....",\r
+".... . ........ X .....",\r
+"..... . ........ X .....",\r
+".......... ....... XX.....",\r
+".................. XX ....",\r
+".................. XX ....",\r
+"................. XX ....",\r
+"................ XX ....",\r
+"............... XX ....",\r
+"............... XX ....",\r
+".............. XX ....",\r
+".............. XX ....",\r
".............. ....",\r
".............. ....",\r
".................................................",\r
/* XPM */\r
static char *hdl72[] = {\r
/* columns rows colors chars-per-pixel */\r
-"72 72 2 1",\r
+"72 72 3 1",\r
" c black s dark_piece",\r
". c gray s light_square",\r
+"X c white s light_piece",\r
/* pixels */\r
"........................................................................",\r
"........................................................................",\r
".................. ..... .....................................",\r
".................. ... ....................................",\r
".................. .. ....................................",\r
-".................. . .. ..............................",\r
-".................. .. . .. ...........................",\r
-".................. ..... ..... .........................",\r
-".................. ... ........ .......................",\r
-"................. ... ..... ......................",\r
-"................ .. . .... ....................",\r
-"............... .... ... ...................",\r
-".............. ...... .... ..................",\r
-".............. ......... .... .................",\r
-"............. ....... .. .... ................",\r
-"............. ..... .... .... ...............",\r
-"............. .... ..... .... ...............",\r
-"............. ... ...... ... ..............",\r
-"............. ... ....... .... .............",\r
-"............ ... ......... .... .............",\r
-"............ ........... .... ............",\r
-"............ ......... .... ............",\r
-"........... ....... .... ...........",\r
-"........... ..... .... ...........",\r
-".......... ... . .... ...........",\r
-".......... . .. .... ..........",\r
-"......... .. .... ..........",\r
-"........ .. .... ..........",\r
-"........ . .... .........",\r
-"....... .. .... .........",\r
-"...... .... .........",\r
-"...... . .... ........",\r
-"..... ... .... ........",\r
-"..... ..... .... ........",\r
-"..... .. ....... .... .......",\r
-".... .... ........ .... .......",\r
-".... .... .......... .... .......",\r
-".... ... .......... .... .......",\r
-".... ... ........... .... .......",\r
-".... .. ........... .... .......",\r
-".... .. ........... .... ......",\r
-".... ... ............ .... ......",\r
-"..... .. ........... .... ......",\r
-"...... ... ........... .... ......",\r
-"........ . ........... .... ......",\r
-".............. ........... .... ......",\r
-"........................... .... ......",\r
-"........................... .... ......",\r
-".......................... .... .....",\r
-"......................... ..... .....",\r
-"........................ .... .....",\r
-"........................ .... .....",\r
-"....................... .... .....",\r
-"...................... .... .....",\r
-"...................... .... .....",\r
-"...................... .... .....",\r
-"..................... .... .....",\r
-"..................... .... .....",\r
-"..................... ... .....",\r
+".................. X XX ..............................",\r
+".................. XX X XX ...........................",\r
+".................. XXXXX XXXXX .........................",\r
+".................. XXX XXXXXXXX .......................",\r
+"................. XXX XXXXX ......................",\r
+"................ XX X XXXX ....................",\r
+"............... XXXX XXX ...................",\r
+".............. XXXXXX XXXX ..................",\r
+".............. XXXXXXXXX XXXX .................",\r
+"............. XXXXXXX XX XXXX ................",\r
+"............. XXXXX XXXX XXXX ...............",\r
+"............. XXXX XXXXX XXXX ...............",\r
+"............. XXX XXXXXX XXX ..............",\r
+"............. XXX XXXXXXX XXXX .............",\r
+"............ XXX XXXXXXXXX XXXX .............",\r
+"............ XXXXXXXXXXX XXXX ............",\r
+"............ XXXXXXXXX XXXX ............",\r
+"........... XXXXXXX XXXX ...........",\r
+"........... XXXXX XXXX ...........",\r
+".......... XXX X XXXX ...........",\r
+".......... X XX XXXX ..........",\r
+"......... XX XXXX ..........",\r
+"........ XX XXXX ..........",\r
+"........ X XXXX .........",\r
+"....... XX XXXX .........",\r
+"...... XXXX .........",\r
+"...... . XXXX ........",\r
+"..... ... XXXX ........",\r
+"..... ..... XXXX ........",\r
+"..... XX ....... XXXX .......",\r
+".... XXXX ........ XXXX .......",\r
+".... XXXX .......... XXXX .......",\r
+".... XXX .......... XXXX .......",\r
+".... XXX ........... XXXX .......",\r
+".... .. ........... XXXX .......",\r
+".... .. ........... XXXX ......",\r
+".... ... ............ XXXX ......",\r
+"..... .. ........... XXXX ......",\r
+"...... ... ........... XXXX ......",\r
+"........ . ........... XXXX ......",\r
+".............. ........... XXXX ......",\r
+"........................... XXXX ......",\r
+"........................... XXXX ......",\r
+".......................... XXXX .....",\r
+"......................... XXXXX .....",\r
+"........................ XXXX .....",\r
+"........................ XXXX .....",\r
+"....................... XXXX .....",\r
+"...................... XXXX .....",\r
+"...................... XXXX .....",\r
+"...................... XXXX .....",\r
+"..................... XXXX .....",\r
+"..................... XXXX .....",\r
+"..................... XXX .....",\r
"..................... .....",\r
"..................... .....",\r
"........................................................................",\r
-/* XPM */\r
-static char *mdd33[] = {\r
-/* columns rows colors chars-per-pixel */\r
-"33 33 3 1",\r
-" c white s light_piece",\r
-". c green s dark_square",\r
-"X c black s dark_piece",\r
-/* pixels */\r
-".................................",\r
-".................................",\r
-".................................",\r
-".................................",\r
-".................................",\r
-"................X................",\r
-"...............XXX...............",\r
-"..............XXXXX..............",\r
-"..............XXXXX..............",\r
-"...............XXX...............",\r
-"............... ...............",\r
-"...........XXXXXXXXXXX...........",\r
-"........XXXXXXXXXXXXXXXXX........",\r
-".......XXXXXXXXXXXXXXXXXXX.......",\r
-"......XXXXXXXXXXXXXXXXXXXXX......",\r
-"......XXXXXXXXXXXXXXXXXXXXX......",\r
-".....XXXXXXXXXXXXXXXXXXXXXXX.....",\r
-".....XXXXXXXXXXXXXXXXXXXXXXX.....",\r
-".....XXXXXXXXXXXXXXXXXXXXXXX.....",\r
-".....XXXXXXXXXXXXXXXXXXXXXXX.....",\r
-"....XXXXXXXXXXXXXXXXXXXXXXXXX....",\r
-"....XXXXXXXXXXXXXXXXXXXXXXXXX....",\r
-"....XXXXXX XXXXXX....",\r
-"...XX XXXXXXXXXXXXX XX...",\r
-"...X XXXXXXXXXXXXXXXXXXXXXXX X...",\r
-"..XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..",\r
-"..XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..",\r
-"...XXXXXXXXXXXXXXXXXXXXXXXXXXX...",\r
-".....XXXXXXXXXXXXXXXXXXXXXXX.....",\r
-"..........XXXXXXXXXXXXX..........",\r
-".................................",\r
-".................................",\r
-"................................."\r
-};\r
+/* XPM */
+static char *mdd33[] = {
+/* columns rows colors chars-per-pixel */
+"33 33 3 1",
+" c black s dark_piece",
+". c green s dark_square",
+"X c white s light_piece",
+/* pixels */
+".................................",
+".................................",
+".................................",
+".................................",
+".................................",
+"................ ................",
+"............... ...............",
+".............. ..............",
+".............. ..............",
+"............... ...............",
+"............... X ...............",
+"........... ...........",
+"........ ........",
+"....... .......",
+"...... ......",
+"...... ......",
+"..... .....",
+"..... .....",
+"..... .....",
+"..... .....",
+".... ....",
+".... ....",
+".... XXXXXXXXXXXXX ....",
+"... XXXXX XXXXX ...",
+"... X X ...",
+".. ..",
+".. ..",
+"... ...",
+"..... .....",
+".......... ..........",
+".................................",
+".................................",
+"................................."
+};
-/* XPM */\r
-static char *mdl33[] = {\r
-/* columns rows colors chars-per-pixel */\r
-"33 33 3 1",\r
-" c white s light_piece",\r
-". c gray s light_square",\r
-"X c black s dark_piece",\r
-/* pixels */\r
-".................................",\r
-".................................",\r
-".................................",\r
-".................................",\r
-".................................",\r
-"................X................",\r
-"...............XXX...............",\r
-"..............XXXXX..............",\r
-"..............XXXXX..............",\r
-"...............XXX...............",\r
-"............... ...............",\r
-"...........XXXXXXXXXXX...........",\r
-"........XXXXXXXXXXXXXXXXX........",\r
-".......XXXXXXXXXXXXXXXXXXX.......",\r
-"......XXXXXXXXXXXXXXXXXXXXX......",\r
-"......XXXXXXXXXXXXXXXXXXXXX......",\r
-".....XXXXXXXXXXXXXXXXXXXXXXX.....",\r
-".....XXXXXXXXXXXXXXXXXXXXXXX.....",\r
-".....XXXXXXXXXXXXXXXXXXXXXXX.....",\r
-".....XXXXXXXXXXXXXXXXXXXXXXX.....",\r
-"....XXXXXXXXXXXXXXXXXXXXXXXXX....",\r
-"....XXXXXXXXXXXXXXXXXXXXXXXXX....",\r
-"....XXXXXX XXXXXX....",\r
-"...XX XXXXXXXXXXXXX XX...",\r
-"...X XXXXXXXXXXXXXXXXXXXXXXX X...",\r
-"..XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..",\r
-"..XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..",\r
-"...XXXXXXXXXXXXXXXXXXXXXXXXXXX...",\r
-".....XXXXXXXXXXXXXXXXXXXXXXX.....",\r
-"..........XXXXXXXXXXXXX..........",\r
-".................................",\r
-".................................",\r
-"................................."\r
-};\r
+/* XPM */
+static char *mdl33[] = {
+/* columns rows colors chars-per-pixel */
+"33 33 3 1",
+" c black s dark_piece",
+". c gray s light_square",
+"X c white s light_piece",
+/* pixels */
+".................................",
+".................................",
+".................................",
+".................................",
+".................................",
+"................ ................",
+"............... ...............",
+".............. ..............",
+".............. ..............",
+"............... ...............",
+"............... X ...............",
+"........... ...........",
+"........ ........",
+"....... .......",
+"...... ......",
+"...... ......",
+"..... .....",
+"..... .....",
+"..... .....",
+"..... .....",
+".... ....",
+".... ....",
+".... XXXXXXXXXXXXX ....",
+"... XXXXX XXXXX ...",
+"... X X ...",
+".. ..",
+".. ..",
+"... ...",
+"..... .....",
+".......... ..........",
+".................................",
+".................................",
+"................................."
+};
\r
#ifdef _MSC_VER\r
#define snprintf _snprintf\r
+#if _MSC_VER < 1500\r
+#define vsnprintf _vsnprintf\r
+#endif\r
#endif\r
{ "firstNPS", ArgInt, (LPVOID) &appData.firstNPS, FALSE },\r
{ "secondNPS", ArgInt, (LPVOID) &appData.secondNPS, FALSE },\r
{ "noGUI", ArgTrue, (LPVOID) &appData.noGUI, FALSE },\r
+ { "keepLineBreaksICS", ArgBoolean, (LPVOID) &appData.noJoin, TRUE },\r
\r
// [HGM] placement: put all window layouts last in ini file, but man X,Y before all others\r
{ "minX", ArgZ, (LPVOID) &minX, FALSE }, // [HGM] placement: to make suer auxialary windows can be placed\r
}\r
}\r
\r
+void UpdateICSWidth(HWND hText)\r
+{\r
+ HDC hdc;\r
+ TEXTMETRIC tm;\r
+ RECT rc;\r
+ HFONT hfont, hold_font;\r
+ LONG old_width, new_width;\r
+ \r
+ // get the text metrics\r
+ hdc = GetDC(hText);\r
+ hfont = CreateFontIndirect(&font[boardSize][CONSOLE_FONT]->lf);\r
+ hold_font = SelectObject(hdc, hfont);\r
+ GetTextMetrics(hdc, &tm);\r
+ SelectObject(hdc, hold_font);\r
+ DeleteObject(hfont);\r
+ ReleaseDC(hText, hdc);\r
+\r
+ // get the rectangle\r
+ SendMessage(hText, EM_GETRECT, 0, (LPARAM)&rc);\r
+\r
+ // update the width\r
+ new_width = (rc.right-rc.left) / tm.tmAveCharWidth;\r
+ old_width = GetWindowLong(hText, GWL_USERDATA);\r
+ if (new_width != old_width)\r
+ {\r
+ ics_update_width(new_width);\r
+ SetWindowLong(hText, GWL_USERDATA, new_width);\r
+ }\r
+}\r
+\r
VOID\r
ChangedConsoleFont()\r
{\r
paraf.dxOffset = WRAP_INDENT;\r
SendMessage(hText, EM_SETPARAFORMAT, 0, (LPARAM) ¶f);\r
SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&sel);\r
+ UpdateICSWidth(hText);\r
}\r
\r
/*---------------------------------------------------------------------------*\\r
switch (wmId) {\r
case IDM_NewGame:\r
ResetGameEvent();\r
- AnalysisPopDown();\r
+ EngineOutputPopDown();\r
SAY("new game enter a move to play against the computer with white");\r
break;\r
\r
case IDM_NewGameFRC:\r
if( NewGameFRC() == 0 ) {\r
ResetGameEvent();\r
- AnalysisPopDown();\r
+ EngineOutputPopDown();\r
}\r
break;\r
\r
ConsoleWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
{\r
static SnapData sd;\r
- static HWND hText, hInput /*, hFocus*/;\r
-// InputSource *is = consoleInputSource;\r
+ HWND hText, hInput;\r
RECT rect;\r
static int sizeX, sizeY;\r
int newSizeX, newSizeY;\r
MINMAXINFO *mmi;\r
+ WORD wMask;\r
+\r
+ hText = GetDlgItem(hDlg, OPT_ConsoleText);\r
+ hInput = GetDlgItem(hDlg, OPT_ConsoleInput);\r
\r
switch (message) {\r
case WM_NOTIFY:\r
ENLINK *pLink = (ENLINK*)lParam;\r
if (pLink->msg == WM_LBUTTONUP)\r
{\r
- TEXTRANGE tr;\r
-\r
- tr.chrg = pLink->chrg;\r
- tr.lpstrText = malloc(1+tr.chrg.cpMax-tr.chrg.cpMin);\r
- hText = GetDlgItem(hDlg, OPT_ConsoleText);\r
- SendMessage(hText, EM_GETTEXTRANGE, 0, (LPARAM)&tr);\r
- ShellExecute(NULL, "open", tr.lpstrText, NULL, NULL, SW_SHOW);\r
- free(tr.lpstrText);\r
+ TEXTRANGE tr;\r
+\r
+ tr.chrg = pLink->chrg;\r
+ tr.lpstrText = malloc(1+tr.chrg.cpMax-tr.chrg.cpMin);\r
+ SendMessage(hText, EM_GETTEXTRANGE, 0, (LPARAM)&tr);\r
+ ShellExecute(NULL, "open", tr.lpstrText, NULL, NULL, SW_SHOW);\r
+ free(tr.lpstrText);\r
}\r
}\r
break;\r
case WM_INITDIALOG: /* message: initialize dialog box */\r
hwndConsole = hDlg;\r
- hText = GetDlgItem(hDlg, OPT_ConsoleText);\r
- hInput = GetDlgItem(hDlg, OPT_ConsoleInput);\r
SetFocus(hInput);\r
consoleTextWindowProc = (WNDPROC)\r
SetWindowLong(hText, GWL_WNDPROC, (LONG) ConsoleTextSubclass);\r
SetWindowPlacement(hDlg, &wp);\r
}\r
\r
+ // Allow hText to highlight URLs and send notifications on them\r
+ wMask = SendMessage(hText, EM_GETEVENTMASK, 0, 0L);\r
+ SendMessage(hText, EM_SETEVENTMASK, 0, wMask | ENM_LINK);\r
+ SendMessage(hText, EM_AUTOURLDETECT, TRUE, 0L);\r
+ SetWindowLong(hText, GWL_USERDATA, 79); // initialize the text window's width\r
+\r
return FALSE;\r
\r
case WM_SETFOCUS:\r
return OnMoving( &sd, hDlg, wParam, lParam );\r
\r
case WM_EXITSIZEMOVE:\r
+ UpdateICSWidth(hText);\r
return OnExitSizeMove( &sd, hDlg, wParam, lParam );\r
}\r
\r
VOID\r
ConsoleCreate()\r
{\r
- HWND hCons, hText;\r
- WORD wMask;\r
+ HWND hCons;\r
if (hwndConsole) return;\r
hCons = CreateDialog(hInst, szConsoleName, 0, NULL);\r
SendMessage(hCons, WM_INITDIALOG, 0, 0);\r
-\r
-\r
- // make the text item in the console do URL links\r
- hText = GetDlgItem(hCons, OPT_ConsoleText);\r
- wMask = SendMessage(hText, EM_GETEVENTMASK, 0, 0L);\r
- SendMessage(hText, EM_SETEVENTMASK, 0, wMask | ENM_LINK);\r
- SendMessage(hText, EM_AUTOURLDETECT, TRUE, 0L);\r
}\r
\r
\r
{ IDM_StopExamining, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_StopObserving, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_Revert, MF_BYCOMMAND|MF_GRAYED },\r
+ { IDM_NewChat, MF_BYCOMMAND|MF_GRAYED },\r
{ -1, -1 }\r
};\r
\r
{ IDM_MachineWhite, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_MachineBlack, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_TwoMachines, MF_BYCOMMAND|MF_GRAYED },\r
+ { IDM_MachineBoth, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_AnalysisMode, MF_BYCOMMAND|MF_ENABLED },\r
{ IDM_AnalyzeFile, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_TimeControl, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_Hint, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_Book, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_IcsOptions, MF_BYCOMMAND|MF_ENABLED },\r
+ { IDM_Engine1Options, MF_BYCOMMAND|MF_GRAYED },\r
+ { IDM_Engine2Options, MF_BYCOMMAND|MF_GRAYED },\r
{ -1, -1 }\r
};\r
\r
{ IDM_MoveNow, MF_BYCOMMAND|MF_ENABLED },\r
{ IDM_Hint, MF_BYCOMMAND|MF_ENABLED },\r
{ IDM_Book, MF_BYCOMMAND|MF_ENABLED },\r
+ { IDM_Engine1Options, MF_BYCOMMAND|MF_ENABLED },\r
{ -1, -1 }\r
};\r
#endif\r
{ IDM_TimeControl, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_Hint, MF_BYCOMMAND|MF_GRAYED },\r
{ IDM_Book, MF_BYCOMMAND|MF_GRAYED },\r
+ { IDM_MachineBoth, MF_BYCOMMAND|MF_GRAYED },\r
+ { IDM_NewChat, MF_BYCOMMAND|MF_GRAYED },\r
+ { IDM_Engine1Options, MF_BYCOMMAND|MF_GRAYED },\r
+ { IDM_Engine2Options, MF_BYCOMMAND|MF_GRAYED },\r
{ -1, -1 }\r
};\r
\r
HDCDrawPosition(NULL, (BOOLEAN) fullRedraw, board); \r
}\r
\r
+void NotifyFrontendLogin()\r
+{\r
+ if (hwndConsole)\r
+ UpdateICSWidth(GetDlgItem(hwndConsole, OPT_ConsoleText));\r
+}\r
\r
VOID\r
ResetFrontEnd()\r
}\r
\r
VOID\r
-AnalysisPopUp(char* title, char* str)\r
-{\r
- FARPROC lpProc;\r
- char *p, *q;\r
-\r
- /* [AS] */\r
- EngineOutputPopUp();\r
- return;\r
-\r
- if (str == NULL) str = "";\r
- p = (char *) malloc(2 * strlen(str) + 2);\r
- q = p;\r
- while (*str) {\r
- if (*str == '\n') *q++ = '\r';\r
- *q++ = *str++;\r
- }\r
- *q = NULLCHAR;\r
- if (analysisText != NULL) free(analysisText);\r
- analysisText = p;\r
-\r
- if (analysisDialog) {\r
- SetWindowText(analysisDialog, title);\r
- SetDlgItemText(analysisDialog, OPT_AnalysisText, analysisText);\r
- ShowWindow(analysisDialog, SW_SHOW);\r
- } else {\r
- analysisTitle = title;\r
- lpProc = MakeProcInstance((FARPROC)AnalysisDialog, hInst);\r
- CreateDialog(hInst, MAKEINTRESOURCE(DLG_Analysis),\r
- hwndMain, (DLGPROC)lpProc);\r
- FreeProcInstance(lpProc);\r
- }\r
- analysisDialogUp = TRUE; \r
-}\r
-\r
-VOID\r
-AnalysisPopDown()\r
-{\r
- if (analysisDialog) {\r
- ShowWindow(analysisDialog, SW_HIDE);\r
- }\r
- analysisDialogUp = FALSE; \r
-}\r
-\r
-\r
-VOID\r
SetHighlights(int fromX, int fromY, int toX, int toY)\r
{\r
highlightInfo.sq[0].x = fromX;\r
* that generates the actual dialog box from it.\r
*/\r
\r
-//#include "config.h"\r
#include "config.h"\r
\r
+#include <windows.h>\r
#include <stdio.h>\r
#include <string.h>\r
#include "common.h"\r
int main P((int argc, char **argv));
RETSIGTYPE CmailSigHandler P((int sig));
RETSIGTYPE IntSigHandler P((int sig));
+RETSIGTYPE TermSizeSigHandler P((int sig));
void CreateGCs P((void));
void CreateXIMPieces P((void));
void CreateXPMPieces P((void));
void NewVariantPopDown P(());
void SettingsPopDown P(());
void SetMenuEnables P((Enables *enab));
-
+void update_ics_width P(());
+int get_term_width P(());
/*
* XBoard depends on Xt R4 or higher
*/
{ "forceIllegalMoves", "forceIllegalMoves", XtRBoolean,
sizeof(Boolean), XtOffset(AppDataPtr, forceIllegal),
XtRImmediate, (XtPointer) False},
+ { "keepLineBreaksICS", "keepLineBreaksICS", XtRBoolean,
+ sizeof(Boolean), XtOffset(AppDataPtr, noJoin),
+ XtRImmediate, (XtPointer) True},
};
XrmOptionDescRec shellOptions[] = {
{ "-secondNeedsNoncompliantFEN", "secondNeedsNoncompliantFEN", XrmoptionSepArg, NULL },
{ "-keepAlive", "keepAlive", XrmoptionSepArg, NULL },
{ "-forceIllegalMoves", "forceIllegalMoves", XrmoptionNoArg, "True" },
+ { "-keepLineBreaksICS", "keepLineBreaksICS", XrmoptionSepArg, NULL },
};
{ "TagsPopDown", (XtActionProc) TagsPopDown },
{ "ErrorPopDown", (XtActionProc) ErrorPopDown },
{ "ICSInputBoxPopDown", (XtActionProc) ICSInputBoxPopDown },
- { "AnalysisPopDown", (XtActionProc) AnalysisPopDown },
+ { "EngineOutputPopDown", (XtActionProc) EngineOutputPopDown },
{ "FileNamePopDown", (XtActionProc) FileNamePopDown },
{ "AskQuestionPopDown", (XtActionProc) AskQuestionPopDown },
{ "GameListPopDown", (XtActionProc) GameListPopDown },
unlink(gamePasteFilename);
}
+RETSIGTYPE TermSizeSigHandler(int sig)
+{
+ update_ics_width();
+}
+
RETSIGTYPE
IntSigHandler(sig)
int sig;
commentUp = True;
}
-void AnalysisPopUp(title, text)
- char *title, *text;
-{
- Arg args[16];
- int j;
- Widget edit;
-
- if (analysisShell == NULL) {
- analysisShell = MiscCreate(title, text, False, NULL, 4);
- XtRealizeWidget(analysisShell);
- CatchDeleteWindow(analysisShell, "AnalysisPopDown");
-
- } else {
- edit = XtNameToWidget(analysisShell, "*form.text");
- j = 0;
- XtSetArg(args[j], XtNstring, text); j++;
- XtSetValues(edit, args, j);
- j = 0;
- XtSetArg(args[j], XtNiconName, (XtArgVal) title); j++;
- XtSetArg(args[j], XtNtitle, (XtArgVal) title); j++;
- XtSetValues(analysisShell, args, j);
- }
-
- if (!analysisUp) {
- XtPopup(analysisShell, XtGrabNone);
- }
- XSync(xDisplay, False);
-
- analysisUp = True;
-}
-
void CommentCallback(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
commentUp = False;
}
-void AnalysisPopDown()
-{
- if (!analysisUp) return;
- XtPopdown(analysisShell);
- XSync(xDisplay, False);
- analysisUp = False;
- if (appData.icsEngineAnalyze) ExitAnalyzeMode(); /* [DM] icsEngineAnalyze */
-}
-
-
void FileNamePopUp(label, def, proc, openMode)
char *label;
char *def;
SetUpChildIO(to_prog, from_prog);
+ #ifdef SIGWINCH
+ signal(SIGWINCH, TermSizeSigHandler);
+ #endif
+
if ((pid = fork()) == 0) {
/* Child process */
// [HGM] PSWBTM: made order resistant against case where fd of created pipe was 0 or 1
// [HGM] done, but perhaps backend should call this directly?
EngineOutputUpdate( stats );
}
+
+#include <sys/ioctl.h>
+int get_term_width()
+{
+ int fd, default_width;
+
+ fd = STDIN_FILENO;
+ default_width = 79; // this is FICS default anyway...
+
+#if !defined(TIOCGWINSZ) && defined(TIOCGSIZE)
+ struct ttysize win;
+ if (!ioctl(fd, TIOCGSIZE, &win))
+ default_width = win.ts_cols;
+#elif defined(TIOCGWINSZ)
+ struct winsize win;
+ if (!ioctl(fd, TIOCGWINSZ, &win))
+ default_width = win.ws_col;
+#endif
+ return default_width;
+}
+
+void update_ics_width()
+{
+ static int old_width = 0;
+ int new_width = get_term_width();
+
+ if (old_width != new_width)
+ ics_printf("set width %d\n", new_width);
+ old_width = new_width;
+}
+
+void NotifyFrontendLogin()
+{
+ update_ics_width();
+}
ShufflePopDown();
shuffleOpenings = False; // [HGM] should be moved to New Variant menu, once we have it!
ResetGameEvent();
- AnalysisPopDown();
+ EngineOutputPopDown();
return;
}
if (strcmp(name, _("random")) == 0) {
shuffleOpenings = True;
ShufflePopDown();
ResetGameEvent();
- AnalysisPopDown();
+ EngineOutputPopDown();
return;
}
}
char *player, *p;
char reply[MSG_SIZ];
-#if TRIVIA
-#include "trivia.c"
-#endif
-
/* Possibly reject Crafty as opponent */
if (appData.zippyPlay && appData.zippyNoplayCrafty && forwardMostMove < 4
&& looking_at(buf, i, "* kibitzes: Hello from Crafty"))