commit 8239d675730168d19bcd7e1c8b38ee0a33cbc63b
parent ad33a2633bbcc70453611bede2bde55205c5583d
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Wed, 14 Jun 2023 22:06:36 -0700
replay moves
Diffstat:
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/pkg/web/handlers/interceptors/chess.go b/pkg/web/handlers/interceptors/chess.go
@@ -80,7 +80,7 @@ func newChessGame(gameKey string, player1, player2 database.User, dbChessGame *d
g.lastUpdated = time.Now()
g.Player1 = newChessPlayer(player1)
g.Player2 = newChessPlayer(player2)
- initPiecesCache(g.piecesCache, g.Game.Position())
+ initPiecesCache(g.piecesCache, g.Game.Moves())
return g
}
@@ -777,13 +777,18 @@ const (
BlackQueenSideRookID = "piece_a8"
)
-func initPiecesCache(piecesCache map[chess.Square]string, pos *chess.Position) {
+func initPiecesCache(piecesCache map[chess.Square]string, moves []*chess.Move) {
+ game := chess.NewGame()
+ pos := game.Position()
for i := 0; i < 64; i++ {
sq := chess.Square(i)
if pos.Board().Piece(sq) != chess.NoPiece {
piecesCache[sq] = "piece_" + sq.String()
}
}
+ for _, m := range moves {
+ updatePiecesCache(*m, piecesCache)
+ }
}
func updatePiecesCache(mov chess.Move, piecesCache map[chess.Square]string) {