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,25 +559,34 @@ $(function (){
debug('got board', moves); debug('got board', moves);
const newGame = new PS.Game(); const newGame = new PS.Game();
try {
for (const move of moves.past) { for (const move of moves.past) {
newGame.replayMove(move); newGame.replayMove(move);
} }
let n = 0; let n = 0;
try {
for (const move of moves.future.slice().reverse()) { for (const move of moves.future.slice().reverse()) {
newGame.replayMove(move); newGame.replayMove(move);
n += 1; n += 1;
} }
} catch (err) {
debug('Error replaying board redo state', err);
}
for (let i = 0; i < n; ++i) { for (let i = 0; i < n; ++i) {
newGame.undo(); newGame.undo();
} }
setCurrentGame(newGame, moves.past.length > currentGame.moves.length);
} catch (err) { } catch (err) {
debug('Error replaying board state', err); debug('Error replaying board state', err);
} }
setCurrentGame(newGame, newGame.moves.length > currentGame.moves.length);
} catch (err) {
debug('Error parsing board data', err);
}
} }
}); });