*/
var chess_from = function(fen, moves, last_move) {
var hiddenboard = new Chess();
- if (fen !== null) {
+ if (fen !== null && fen !== undefined) {
hiddenboard.load(fen);
}
for (var i = 0; i <= last_move; ++i) {
// unconditionally taken from current_data (we're not interested in
// historic history).
if (current_data['position']['history']) {
- add_pv('start', current_data['position']['history'], 1, 'W', null, 0, 8, true);
+ var start = (current_data['position'] && current_data['position']['start_fen']) ? current_data['position']['start_fen'] : 'start';
+ add_pv(start, current_data['position']['history'], 1, 'W', null, 0, 8, true);
} else {
display_lines.push(null);
}
// We don't have historic analysis for this position, but we
// can reconstruct what the last move was by just replaying
// from the start.
- var hiddenboard = chess_from(null, current_display_line.pv, current_display_move);
+ var position = (data['position'] && data['position']['start_fen']) ? data['position']['start_fen'] : null;
+ var hiddenboard = chess_from(position, current_display_line.pv, current_display_move);
var moves = hiddenboard.history({ verbose: true });
last_move = moves.pop();
highlight_from = last_move.from;
}
// Fetch old analysis for this line if it exists.
- var hiddenboard = chess_from(null, current_display_line.pv, current_display_move);
+ var hiddenboard = chess_from(current_display_line.start_fen, current_display_line.pv, current_display_move);
var filename = "/history/move" + (current_display_move + 1) + "-" +
hiddenboard.fen().replace(/ /g, '_').replace(/\//g, '-') + ".json";