X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.c;h=9495083aa91fce1df04f54ce255651fca63804cb;hb=90023cb65d9c783d7f045f839dec64292f50e524;hp=ec9cfbb29ab41d7167d43004b0553595da579b2e;hpb=c1f9fd66ab250f14d4e40383a242691ac40782da;p=xboard.git diff --git a/backend.c b/backend.c index ec9cfbb..9495083 100644 --- a/backend.c +++ b/backend.c @@ -8893,7 +8893,11 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h if(sscanf(message, "piece %s %s", buf2, buf1) == 2) { ChessSquare piece = WhitePawn; char *p=buf2; - if(cps != &first || appData.testLegality) return; + if(cps != &first || appData.testLegality && *engineVariant == NULLCHAR + /* For variants we don't have */ && gameInfo.variant != VariantBerolina + /* correct rules for, we cannot */ && gameInfo.variant != VariantCylinder + /* enforce legality on our own! */ && gameInfo.variant != VariantUnknown + && gameInfo.variant != VariantFairy ) return; if(*p == '+') piece = CHUPROMOTED WhitePawn, p++; piece += CharToPiece(*p) - WhitePawn; if(piece < EmptySquare) {