From 5d8e8da87f9b6d66483d5f20bf4f4dee7da94fbf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juhani=20Krekel=C3=A4?=
+
+Moves thus far
@@ -201,6 +243,9 @@ let form = document.getElementById('input'); form.onsubmit = moveEvent; + document.getElementById('whited1').checked = true; + document.getElementById('blackd8').checked = true; + let moveHistory = []; let moveFuture = []; @@ -432,10 +477,15 @@ let ret = doMove(move); if ('error' in ret) { alert(ret.error); + // Put back in list of undone moves + moveFuture.push(move); + return false; } // Mark it as un-undone in the list of moves document.getElementById('movelist').children[index].className = ''; + + return true; } function flipBoard() { @@ -532,6 +582,32 @@ link.click(); actions.removeChild(link); } + + function setupKings() { + let options = new FormData(document.getElementById('options')); + let whiteKing = options.get('whiteking'); + let whiteQueen = whiteKing === 'd1' ? 'e1' : 'd1'; + let blackKing = options.get('blackking'); + let blackQueen = blackKing === 'd8' ? 'e8' : 'd8'; + + // Undo all moves + while (moveHistory.length > 0) { + undoMove(); + } + + // Place the kings and queens + document.getElementById(whiteKing).firstChild.data = '♔'; + document.getElementById(whiteQueen).firstChild.data = '♕'; + document.getElementById(blackKing).firstChild.data = '♚'; + document.getElementById(blackQueen).firstChild.data = '♛'; + + // Redo all the moves we can + while (moveFuture.length > 0) { + if (!redoMove()) { + break; + } + } + }