keep earlier moves when unable to replay full game state
This commit is contained in:
parent
204d7acddc
commit
f6fa4ca32d
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue