// probe EGBB
if(loaded == 2) return 13; // loading failed before
if(loaded == 0) {
- loaded = 2; // prepare for failure
char *p, *path = strstr(appData.egtFormats, "scorpio:"), buf[MSG_SIZ];
HMODULE lib;
PLOAD_EGBB loadBB;
+ loaded = 2; // prepare for failure
if(!path) return 13; // no egbb installed
strncpy(buf, path + 8, MSG_SIZ);
if(p = strchr(buf, ',')) *p = NULLCHAR; else p = buf + strlen(buf);
SetHighlights(-1, -1, toX, toY);
}
} else {
+ int viaX = moveList[currentMove][5] - AAA;
+ int viaY = moveList[currentMove][6] - ONE;
fromX = moveList[currentMove][0] - AAA;
fromY = moveList[currentMove][1] - ONE;
HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove); /* [AS] */
+ if(moveList[currentMove][4] == ';') { // multi-leg
+ ChessSquare piece = boards[currentMove][viaY][viaX];
+ AnimateMove(boards[currentMove], fromX, fromY, viaX, viaY);
+ boards[currentMove][viaY][viaX] = boards[currentMove][fromY][fromX];
+ AnimateMove(boards[currentMove], fromX=viaX, fromY=viaY, toX, toY);
+ boards[currentMove][viaY][viaX] = piece;
+ } else
AnimateMove(boards[currentMove], fromX, fromY, toX, toY);
if (appData.highlightLastMove) {
SetHighlights(-1, -1, toX, toY);
}
} else {
+ int viaX = moveList[target - 1][5] - AAA;
+ int viaY = moveList[target - 1][6] - ONE;
fromX = moveList[target - 1][0] - AAA;
fromY = moveList[target - 1][1] - ONE;
if (target == currentMove + 1) {
+ if(moveList[target - 1][4] == ';') { // multi-leg
+ ChessSquare piece = boards[currentMove][viaY][viaX];
+ AnimateMove(boards[currentMove], fromX, fromY, viaX, viaY);
+ boards[currentMove][viaY][viaX] = boards[currentMove][fromY][fromX];
+ AnimateMove(boards[currentMove], viaX, viaY, toX, toY);
+ boards[currentMove][viaY][viaX] = piece;
+ } else
AnimateMove(boards[currentMove], fromX, fromY, toX, toY);
}
if (appData.highlightLastMove) {
if(lg->position >= 0) { // selected?
LoadGame(f, nItem, "", TRUE);
SaveGamePGN2(g); // leaves g open
- cnt++;
+ cnt++; DoEvents();
}
lg = (ListGame *) lg->node.succ;
}
if(lg->position >= 0) {
LoadGame(f, nItem, "", TRUE);
AddGameToBook(TRUE);
+ DoEvents();
}
lg = (ListGame *) lg->node.succ;
}