X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.c;h=29250886a8e0dc50be0a601eab49d6c667f74ed4;hb=0300f988935df94f3faeac3e3dbddbd6e8122fe3;hp=d765e81f700be906710738405d55c6b31832194e;hpb=388c4cee58c0dabd0a14cf7d66d3237dcf9a655e;p=xboard.git diff --git a/backend.c b/backend.c index d765e81..2925088 100644 --- a/backend.c +++ b/backend.c @@ -4431,6 +4431,13 @@ ParseBoard12(string) board[k][1] = board[k][BOARD_WIDTH-2] = (ChessSquare) 0;; } } + if(moveNum==0 && gameInfo.variant == VariantSChess) { + board[5][BOARD_RGHT+1] = WhiteAngel; + board[6][BOARD_RGHT+1] = WhiteMarshall; + board[1][0] = BlackMarshall; + board[2][0] = BlackAngel; + board[1][1] = board[2][1] = board[5][BOARD_RGHT] = board[6][BOARD_RGHT] = 1; + } CopyBoard(boards[moveNum], board); boards[moveNum][HOLDINGS_SET] = 0; // [HGM] indicate holdings not set if (moveNum == 0) { @@ -4466,6 +4473,7 @@ ParseBoard12(string) if(board[BOARD_HEIGHT-1][i] == BlackRook) j = i; initialRights[4] = boards[moveNum][CASTLING][4] = (castle_bl == 0 && gameInfo.variant != VariantFischeRandom ? NoRights : j); + boards[moveNum][CASTLING][2] = boards[moveNum][CASTLING][5] = NoRights; if(gameInfo.variant == VariantKnightmate) { wKing = WhiteUnicorn; bKing = BlackUnicorn; } for(k=BOARD_LEFT; k>1) moveType = WhitePromotion; // kludge to do gating at Rook + if(moveType == NormalMove) moveType = WhitePromotion; // kludge to do gating } else suffix[0] = NULLCHAR; switch (moveType) {