diff --git a/js/pacosako_ui.js b/js/pacosako_ui.js index 58558c6..b972b48 100644 --- a/js/pacosako_ui.js +++ b/js/pacosako_ui.js @@ -559,24 +559,33 @@ $(function (){ debug('got board', moves); const newGame = new PS.Game(); - for (const move of moves.past) { - newGame.replayMove(move); + + try { + for (const move of moves.past) { + newGame.replayMove(move); + } + + let n = 0; + + try { + for (const move of moves.future.slice().reverse()) { + newGame.replayMove(move); + n += 1; + } + } catch (err) { + debug('Error replaying board redo state', err); + } + + for (let i = 0; i < n; ++i) { + newGame.undo(); + } + } catch (err) { + debug('Error replaying board state', err); } - let n = 0; - - for (const move of moves.future.slice().reverse()) { - newGame.replayMove(move); - n += 1; - } - - for (let i = 0; i < n; ++i) { - newGame.undo(); - } - - setCurrentGame(newGame, moves.past.length > currentGame.moves.length); + setCurrentGame(newGame, newGame.moves.length > currentGame.moves.length); } catch (err) { - debug('Error replaying board state', err); + debug('Error parsing board data', err); } } });