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