X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=parser.c;h=27d1a13e30a67f0f013399f1a2e0242383540588;hb=74025874f2010f84fd4f7f2e120e84b56ee9781b;hp=58282bd9b7fa4f6c847c603b499958f180ad723a;hpb=762e18baef5f815cc46019ba3e082bd5ec1980f6;p=xboard.git diff --git a/parser.c b/parser.c index 58282bd..27d1a13 100644 --- a/parser.c +++ b/parser.c @@ -2278,6 +2278,8 @@ YY_RULE_SETUP 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; @@ -2427,7 +2429,6 @@ YY_RULE_SETUP 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)) { @@ -2462,6 +2463,11 @@ YY_RULE_SETUP (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; }