keep earlier moves when unable to replay full game state

This commit is contained in:
Jesse D. McDonald 2020-04-24 23:36:02 -05:00
parent 204d7acddc
commit f6fa4ca32d
1 changed files with 24 additions and 15 deletions

View File

@ -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);
}
}
});