~ubuntu-branches/ubuntu/precise/gnome-games/precise-updates

« back to all changes in this revision

Viewing changes to debian/patches/en_passant_remove_victim.patch

  • Committer: Package Import Robot
  • Author(s): Robert Ancell
  • Date: 2012-07-13 10:36:22 UTC
  • Revision ID: package-import@ubuntu.com-20120713103622-03ijivzjzlr3y42k
Tags: 1:3.4.1-0ubuntu2.1
* debian/patches/en_passant_pawns_only.patch:
  - Only allow pawns to do en passant (LP: #886826)
* debian/patches/en_passant_remove_victim.patch:
  - Correctly remove en-passant captured pawn from the board (LP: #896617)
* debian/patches/cant_castle_after_rook_taken.patch:
  - Can't castle once rook is taken (LP: #1013950)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
5
 
 
6
---
 
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
 
12
 
 
13
         /* Update board */
 
14
         board[start] = null;
 
15
+        piece_masks[Color.WHITE] &= BitBoard.clear_location_masks[start];
 
16
+        piece_masks[Color.BLACK] &= BitBoard.clear_location_masks[start];
 
17
         if (victim != null)
 
18
+        {
 
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];
 
22
+        }
 
23
         if (is_promotion)
 
24
             board[end] = new ChessPiece (player, promotion_type);
 
25
         else
 
26
             board[end] = piece;
 
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];
 
31
         if (rook_start >= 0)
 
32
         {
 
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];
 
39
         }
 
40
 
 
41
--
 
42
cgit v0.9.0.2