1
From 1f4d02dd7a212acd0c7f9f611fcc50483a433098 Mon Sep 17 00:00:00 2001
2
From: Robert Ancell <robert.ancell@canonical.com>
3
Date: Thu, 12 Jul 2012 21:41:25 +0000
4
Subject: glchess: Correctly remove en-passant captured pawn from the board
7
diff --git a/glchess/src/chess-game.vala b/glchess/src/chess-game.vala
8
index 8212180..09d2541 100644
9
--- a/glchess/src/chess-game.vala
10
+++ b/glchess/src/chess-game.vala
11
@@ -660,22 +660,26 @@ public class ChessState
15
+ piece_masks[Color.WHITE] &= BitBoard.clear_location_masks[start];
16
+ piece_masks[Color.BLACK] &= BitBoard.clear_location_masks[start];
19
board[victim_index] = null;
20
+ piece_masks[Color.WHITE] &= BitBoard.clear_location_masks[victim_index];
21
+ piece_masks[Color.BLACK] &= BitBoard.clear_location_masks[victim_index];
24
board[end] = new ChessPiece (player, promotion_type);
27
- piece_masks[Color.WHITE] &= BitBoard.clear_location_masks[start];
28
- piece_masks[Color.BLACK] &= BitBoard.clear_location_masks[start];
29
piece_masks[color] |= end_mask;
30
piece_masks[opponent_color] &= BitBoard.clear_location_masks[end];
33
var rook = board[rook_start];
34
board[rook_start] = null;
35
- board[rook_end] = rook;
36
piece_masks[color] &= BitBoard.clear_location_masks[rook_start];
37
+ board[rook_end] = rook;
38
piece_masks[color] |= BitBoard.set_location_masks[rook_end];