Last little touches to movegen
authorMarco Costalba <mcostalba@gmail.com>
Sun, 19 Oct 2008 16:19:16 +0000 (18:19 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 19 Oct 2008 19:43:21 +0000 (20:43 +0100)
No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/movegen.cpp
src/movegen.h

index 742a91f..afe561f 100644 (file)
@@ -33,7 +33,6 @@
 namespace {
 
   struct PawnParams {
-
       Bitboard Rank3BB, Rank8BB;
       Rank RANK_8;
       SquareDelta DELTA_N, DELTA_NE, DELTA_NW;
@@ -66,25 +65,7 @@ namespace {
   int generate_piece_blocking_evasions(const Position&, Bitboard, Bitboard, MoveStack*, int);
 
 
-  /// Templates are defined here to avoid lookup issues with specializations
-
-  template<PieceType Piece>
-  int generate_piece_moves(const Position &pos, MoveStack *mlist, 
-                           Color side, Bitboard target) {
-    int n = 0;
-    for (int i = 0; i < pos.piece_count(side, Piece); i++)
-    {
-        Square from = pos.piece_list(side, Piece, i);
-        Bitboard b = pos.piece_attacks<Piece>(from) & target;
-        while (b)
-        {
-            Square to = pop_1st_bit(&b);
-            mlist[n++].move = make_move(from, to);
-        }
-    }
-    return n;
-  }
-
+  /// Templates with specializations are defined here to avoid lookup issues
 
   template<PieceType Piece>
   int generate_piece_checks(const Position& pos, Bitboard target, Bitboard dc,
@@ -134,23 +115,6 @@ namespace {
     }
     return n;
   }
-
-  
-  template<PieceType Piece>
-  int generate_piece_blocking_evasions(const Position& pos, Bitboard b,
-                                       Bitboard blockSquares, MoveStack* mlist, int n) {
-    while (b)
-    {
-        Square from = pop_1st_bit(&b);
-        Bitboard bb = pos.piece_attacks<Piece>(from) & blockSquares;
-        while (bb)
-        {
-            Square to = pop_1st_bit(&bb);
-            mlist[n++].move = make_move(from, to);
-        }
-    }
-    return n;
-  }
 }
 
 
@@ -623,6 +587,41 @@ Move generate_move_if_legal(const Position &pos, Move m, Bitboard pinned) {
 
 namespace {
 
+  template<PieceType Piece>
+  int generate_piece_moves(const Position &pos, MoveStack *mlist, 
+                           Color side, Bitboard target) {
+    int n = 0;
+    for (int i = 0; i < pos.piece_count(side, Piece); i++)
+    {
+        Square from = pos.piece_list(side, Piece, i);
+        Bitboard b = pos.piece_attacks<Piece>(from) & target;
+        while (b)
+        {
+            Square to = pop_1st_bit(&b);
+            mlist[n++].move = make_move(from, to);
+        }
+    }
+    return n;
+  }
+
+
+  template<PieceType Piece>
+  int generate_piece_blocking_evasions(const Position& pos, Bitboard b,
+                                       Bitboard blockSquares, MoveStack* mlist, int n) {
+    while (b)
+    {
+        Square from = pop_1st_bit(&b);
+        Bitboard bb = pos.piece_attacks<Piece>(from) & blockSquares;
+        while (bb)
+        {
+            Square to = pop_1st_bit(&bb);
+            mlist[n++].move = make_move(from, to);
+        }
+    }
+    return n;
+  }
+
+
   template<Color C>
   int generate_pawn_captures(const Position& pos, MoveStack* mlist) {
 
@@ -814,6 +813,7 @@ namespace {
     return n;
   }
 
+
   template<Color C>
   int generate_pawn_blocking_evasions(const Position& pos, Bitboard not_pinned,
                                       Bitboard blockSquares, MoveStack* mlist, int n) {
index 93c1c4a..16923dc 100644 (file)
@@ -36,7 +36,6 @@ extern int generate_noncaptures(const Position &pos, MoveStack *mlist);
 extern int generate_checks(const Position &pos, MoveStack *mlist, Bitboard dc);
 extern int generate_evasions(const Position &pos, MoveStack *mlist);
 extern int generate_legal_moves(const Position &pos, MoveStack *mlist);
-extern Move generate_move_if_legal(const Position &pos, Move m,
-                                   Bitboard pinned);
+extern Move generate_move_if_legal(const Position &pos, Move m, Bitboard pinned);
 
 #endif // !defined(MOVEGEN_H_INCLUDED)