X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=parser.l;h=48e78f33d8a6a722395b8ed235a295335377cd3b;hb=74025874f2010f84fd4f7f2e120e84b56ee9781b;hp=41feced8bc25fb412b8e45b1d9d15b3c3f3a1081;hpb=762e18baef5f815cc46019ba3e082bd5ec1980f6;p=xboard.git diff --git a/parser.l b/parser.l old mode 100644 new mode 100755 index 41feced..48e78f3 --- a/parser.l +++ b/parser.l @@ -304,6 +304,8 @@ extern void CopyBoard P((Board to, Board from)); result == WhitePromotionQueen || result == BlackPromotionQueen)) { if(gameInfo.variant == VariantShatranj || gameInfo.variant == VariantCourier) currentMoveString[4] = PieceToChar(BlackFerz); + else if(gameInfo.variant == VariantGreat) + currentMoveString[4] = PieceToChar(BlackMan); else currentMoveString[4] = PieceToChar(BlackQueen); currentMoveString[5] = NULLCHAR; @@ -448,7 +450,6 @@ extern void CopyBoard P((Board to, Board from)); if (gameInfo.variant == VariantXiangqi && /* [HGM] In Xiangqi rank stays same */ currentMoveString[0] != currentMoveString[2] ) { - if (yytext[2+skip] == ONE) return (int) ImpossibleMove; currentMoveString[1] = yytext[2+skip]; } else if (WhiteOnMove(yyboardindex)) { @@ -483,6 +484,11 @@ extern void CopyBoard P((Board to, Board from)); (result == WhitePromotionQueen || result == BlackPromotionQueen || result == WhitePromotionKnight || result == BlackPromotionKnight)) { currentMoveString[4] = PieceToChar(BlackQueen); + // [HGM] shatranj: take care of variants without Queen + if(gameInfo.variant == VariantShatranj || gameInfo.variant == VariantCourier) + currentMoveString[4] = PieceToChar(BlackFerz); + if(gameInfo.variant == VariantGreat) + currentMoveString[4] = PieceToChar(BlackMan); currentMoveString[5] = NULLCHAR; }