this.moves = JSON.parse(JSON.stringify(game.moves || []));
// Post-processing: decorate each move with notation and FEN
this.vr = new V(game.fenStart);
+ this.inMultimove = false; //in case of
+ this.$refs["board"].resetCurrentAttempt(); //also in case of
+ let analyseBtn = document.getElementById("analyzeBtn");
+ if (!!analyseBtn) analyseBtn.classList.remove("active");
const parsedFen = V.ParseFen(game.fenStart);
const firstMoveColor = parsedFen.turn;
this.firstMoveNumber = Math.floor(parsedFen.movesCount / 2) + 1;
else this.lastMove = null;
},
toggleAnalyze: function() {
+ // Freeze while choices are shown (and autoplay has priority)
+ if (this.$refs["board"].choices.length > 0 || this.autoplay) return;
if (this.mode != "analyze") {
// Enter analyze mode:
+ if (this.inMultimove) this.cancelCurrentMultimove();
this.gameMode = this.mode; //was not 'analyze'
this.mode = "analyze";
this.gameCursor = this.cursor;
fen = mv[mv.length-1].fen;
}
this.vr = new V(fen);
+ this.inMultimove = false; //in case of
+ this.$refs["board"].resetCurrentAttempt(); //also in case of
this.incheck = this.vr.getCheckSquares();
if (this.cursor >= 0) this.lastMove = this.moves[this.cursor];
else this.lastMove = null;
if (this.inMultimove) {
this.cancelCurrentMultimove();
this.incheck = this.vr.getCheckSquares();
+ if (this.cursor >= 0) this.lastMove = this.moves[this.cursor];
+ else this.lastMove = null;
} else {
if (!move) {
const minCursor =