Templetize move generation API

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba
2011-01-05 19:00:30 +01:00
parent 1e7aaed8bc
commit 12f4bbc8f2
4 changed files with 29 additions and 31 deletions

View File

@@ -21,22 +21,20 @@
#if !defined(MOVEGEN_H_INCLUDED)
#define MOVEGEN_H_INCLUDED
////
//// Includes
////
#include "position.h"
enum MoveGeneration {
CAPTURES,
NON_CAPTURES,
NON_CAPTURE_CHECKS,
EVASIONS,
NON_EVASIONS,
ALL_MOVES
};
////
//// Prototypes
////
template<MoveGeneration T>
MoveStack* generate(const Position& pos, MoveStack* mlist);
extern MoveStack* generate_captures(const Position& pos, MoveStack* mlist);
extern MoveStack* generate_noncaptures(const Position& pos, MoveStack* mlist);
extern MoveStack* generate_non_capture_checks(const Position& pos, MoveStack* mlist);
extern MoveStack* generate_evasions(const Position& pos, MoveStack* mlist);
extern MoveStack* generate_non_evasions(const Position& pos, MoveStack* mlist);
extern MoveStack* generate_moves(const Position& pos, MoveStack* mlist, bool pseudoLegal = false);
extern bool move_is_legal(const Position& pos, const Move m, Bitboard pinned);
extern bool move_is_legal(const Position& pos, const Move m);