Add duplicat of Lion (and Flying Dragon)
[xboard.git] / backend.c
index b2ec75a..cfbecf7 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -5974,14 +5974,14 @@ SetCharTableEsc (unsigned char *table, const char * map, char * escapes)
         for( i=0; i<(int) EmptySquare; i++ ) table[i] = '.';
         for( i=offs=0; i<NrPieces/2-1; i++ ) {
             char *p;
-            if(map[j] == '/' && *escapes) offs = CHUPROMOTED WhitePawn - i, j++;
+            if(map[j] == '/' && *escapes) offs = WhiteTokin - i, j++;
             table[i + offs] = map[j++];
             if(p = strchr(escapes, map[j])) j++, table[i + offs] += 64*(p - escapes + 1);
         }
         table[(int) WhiteKing]  = map[j++];
         for( i=offs=0; i<NrPieces/2-1; i++ ) {
             char *p;
-            if(map[j] == '/' && *escapes) offs = CHUPROMOTED WhitePawn - i, j++;
+            if(map[j] == '/' && *escapes) offs = WhiteTokin - i, j++;
             table[WHITE_TO_BLACK i + offs] = map[j++];
             if(p = strchr(escapes, map[j])) j++, table[WHITE_TO_BLACK i + offs] += 64*(p - escapes + 1);
         }
@@ -18094,7 +18094,7 @@ ParseFEN (Board board, int *blackPlaysFirst, char *fen, Boolean autoSize)
     int i, j, k, w=0, subst=0, shuffle=0, wKingRank = -1, bKingRank = -1;
     char *p, c;
     int emptycount, virgin[BOARD_FILES];
-    ChessSquare piece;
+    ChessSquare piece, king = (gameInfo.variant == VariantKnightmate ? WhiteUnicorn : WhiteKing);
 
     p = fen;
 
@@ -18163,8 +18163,8 @@ ParseFEN (Board board, int *blackPlaysFirst, char *fen, Boolean autoSize)
                     p++;
                 }
                 board[i][(j++)+gameInfo.holdingsWidth] = piece;
-                if(piece == WhiteKing) wKingRank = i;
-                if(piece == BlackKing) bKingRank = i;
+                if(piece == king) wKingRank = i;
+                if(piece == WHITE_TO_BLACK king) bKingRank = i;
            } else {
                return FALSE;
            }