X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FBaseGame.vue;h=1e1a2149ada7c34a36ce548bd0727d4737478b93;hb=6e0c0bcba5c9e76a50a2676aa3e63bc317123bcb;hp=1996ded67110bb374dbdce4f5fb054a0f5d6fe66;hpb=93ce6119a67b8510762dd68a07936b6f22f2ad67;p=vchess.git diff --git a/client/src/components/BaseGame.vue b/client/src/components/BaseGame.vue index 1996ded6..1e1a2149 100644 --- a/client/src/components/BaseGame.vue +++ b/client/src/components/BaseGame.vue @@ -205,13 +205,12 @@ export default { this.vr = new V(game.fenStart); const parsedFen = V.ParseFen(game.fenStart); const firstMoveColor = parsedFen.turn; - this.firstMoveNumber = Math.floor(parsedFen.movesCount / 2); + this.firstMoveNumber = Math.floor(parsedFen.movesCount / 2) + 1; let L = this.moves.length; this.moves.forEach(move => { // Strategy working also for multi-moves: if (!Array.isArray(move)) move = [move]; move.forEach((m,idx) => { - m.index = this.vr.movesCount; m.notation = this.vr.getNotation(m); m.unambiguous = V.GetUnambiguousNotation(m); this.vr.play(m); @@ -222,7 +221,6 @@ export default { if (firstMoveColor == "b") { // 'start' & 'end' is required for Board component this.moves.unshift({ - index: parsedFen.movesCount, notation: "...", unambiguous: "...", start: { x: -1, y: -1 }, @@ -289,13 +287,13 @@ export default { // Adjust dots notation for a better display: let fullNotation = getFullNotation(this.moves[i]); if (fullNotation == "...") fullNotation = ".."; - pgn += (this.moves[i].index / 2 + 1) + "." + fullNotation; + pgn += (i / 2 + this.firstMoveNumber) + "." + fullNotation; if (i+1 < this.moves.length) pgn += " " + getFullNotation(this.moves[i+1]); } pgn += "\n\n"; for (let i = 0; i < this.moves.length; i += 2) { - const moveNumber = this.moves[i].index / 2 + 1; + const moveNumber = i / 2 + this.firstMoveNumber; // Skip "dots move", useless for machine reading: if (this.moves[i].notation != "...") { pgn += moveNumber + ".w " + @@ -441,7 +439,9 @@ export default { const initurn = this.vr.turn; (function executeMove() { const smove = move[moveIdx++]; - if (animate) { + // NOTE: condition "smove.start.x >= 0" required for Dynamo, + // because second move may be empty. + if (animate && smove.start.x >= 0) { self.animateMove(smove, () => { playSubmove(smove); if (moveIdx < move.length)