+ case 32:
+ e.preventDefault();
+ this.flip();
+ break;
+ }
+ },
+ re_setVariables: function() {
+ this.endgameMessage = "";
+ this.orientation = this.game.mycolor || "w"; //default orientation for observed games
+ this.score = this.game.score || "*"; //mutable (if initially "*")
+ this.gameHasEnded = (this.score != "*");
+ this.moves = JSON.parse(JSON.stringify(this.game.moves || []));
+ // Post-processing: decorate each move with color + current FEN:
+ // (to be able to jump to any position quickly)
+ let vr_tmp = new V(this.game.fenStart); //vr is already at end of game
+ this.moves.forEach(move => {
+ // NOTE: this is doing manually what play() function below achieve,
+ // but in a lighter "fast-forward" way
+ move.color = vr_tmp.turn;
+ move.notation = vr_tmp.getNotation(move);
+ vr_tmp.play(move);
+ move.fen = vr_tmp.getFen();
+ });
+ if (this.game.fenStart.indexOf(" b ") >= 0 ||
+ (this.moves.length > 0 && this.moves[0].color == "b"))
+ {
+ // 'end' is required for Board component to check lastMove for e.p.
+ this.moves.unshift({color: "w", notation: "...", end: {x:-1,y:-1}});