Don't switch to engine-defined variant on game loading
authorH.G.Muller <hgm@hgm-xboard.(none)>
Wed, 15 Oct 2014 21:48:14 +0000 (23:48 +0200)
committerArun Persaud <arun@nubati.net>
Thu, 16 Oct 2014 03:40:20 +0000 (20:40 -0700)
When loading a game from PGN the variant tag will have been decoded as
'normal' in case of an engine-defined variant, and we certainly would
not want to switch to that. Better stay in the variant the user had
selected before, and hope for the best.

backend.c

index fe70fd2..eb9059f 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -12857,7 +12857,7 @@ LoadGame (FILE *f, int gameNumber, char *title, int useList)
        if (!err) numPGNTags++;
 
         /* [HGM] PGNvariant: automatically switch to variant given in PGN tag */
-        if(gameInfo.variant != oldVariant) {
+        if(gameInfo.variant != oldVariant && (gameInfo.variant != VariantNormal || gameInfo.variantName == NULL || *gameInfo.variantName == NULLCHAR)) {
             startedFromPositionFile = FALSE; /* [HGM] loadPos: variant switch likely makes position invalid */
            ResetFrontEnd(); // [HGM] might need other bitmaps. Cannot use Reset() because it clears gameInfo :-(
            InitPosition(TRUE);