From 983158749f29ab9d895279a184e1cbc7b6f4da1d Mon Sep 17 00:00:00 2001 From: Noah <78898963+HaonRekcef@users.noreply.github.com> Date: Wed, 25 Jun 2025 18:01:50 +0200 Subject: [PATCH] Fix opening Editor from Analysis to persist state of position --- .../board_editor/board_editor_controller.dart | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/src/model/board_editor/board_editor_controller.dart b/lib/src/model/board_editor/board_editor_controller.dart index 825d037c56..328321edf4 100644 --- a/lib/src/model/board_editor/board_editor_controller.dart +++ b/lib/src/model/board_editor/board_editor_controller.dart @@ -12,19 +12,23 @@ class BoardEditorController extends _$BoardEditorController { @override BoardEditorState build(String? initialFen) { final setup = Setup.parseFen(initialFen ?? kInitialFEN); + final position = Chess.fromSetup(setup, ignoreImpossibleCheck: true); + final pieces = readFen(initialFen ?? kInitialFEN).lock; + + final castlingRights = IMap({ + CastlingRight.whiteKing: position.castles.rookOf(Side.white, CastlingSide.king) != null, + CastlingRight.whiteQueen: position.castles.rookOf(Side.white, CastlingSide.queen) != null, + CastlingRight.blackKing: position.castles.rookOf(Side.black, CastlingSide.king) != null, + CastlingRight.blackQueen: position.castles.rookOf(Side.black, CastlingSide.queen) != null, + }); return BoardEditorState( orientation: Side.white, - sideToPlay: Side.white, - pieces: readFen(initialFen ?? kInitialFEN).lock, - castlingRights: IMap(const { - CastlingRight.whiteKing: true, - CastlingRight.whiteQueen: true, - CastlingRight.blackKing: true, - CastlingRight.blackQueen: true, - }), + sideToPlay: setup.turn, + pieces: pieces, + castlingRights: castlingRights, editorPointerMode: EditorPointerMode.drag, - enPassantOptions: SquareSet.empty, - enPassantSquare: null, + enPassantOptions: _calculateEnPassantOptions(pieces, setup.turn), + enPassantSquare: setup.epSquare, pieceToAddOnEdit: null, halfmoves: setup.halfmoves, fullmoves: setup.fullmoves,