add pawn movegen (untested)
This commit is contained in:
19
src/move.h
19
src/move.h
@@ -36,13 +36,13 @@
|
||||
|
||||
/* move flags */
|
||||
#define M_FLAGS_BEG 18
|
||||
#define M_HAS_FLAGS mask(_M_FLAGS_BEG + 0) /* probably unused */
|
||||
#define M_CAPTURE mask(_M_FLAGS_BEG + 1)
|
||||
#define M_ENPASSANT mask(_M_FLAGS_BEG + 2)
|
||||
#define M_PROMOTION mask(_M_FLAGS_BEG + 3)
|
||||
#define M_CASTLE_K mask(_M_FLAGS_BEG + 4)
|
||||
#define M_CASTLE_Q mask(_M_FLAGS_BEG + 5)
|
||||
#define M_CHECK mask(_M_FLAGS_BEG + 6) /* probably unknown/useless */
|
||||
#define M_HAS_FLAGS mask(M_FLAGS_BEG + 0) /* probably unused */
|
||||
#define M_CAPTURE mask(M_FLAGS_BEG + 1)
|
||||
#define M_ENPASSANT mask(M_FLAGS_BEG + 2)
|
||||
#define M_PROMOTION mask(M_FLAGS_BEG + 3)
|
||||
#define M_CASTLE_K mask(M_FLAGS_BEG + 4)
|
||||
#define M_CASTLE_Q mask(M_FLAGS_BEG + 5)
|
||||
#define M_CHECK mask(M_FLAGS_BEG + 6) /* probably unknown/useless */
|
||||
|
||||
#define M_FLAGS (M_CAPTURE | M_ENPASSANT | M_PROMOTION | \
|
||||
M_CASTLE_K | M_CASTLE_Q | M_CHECK)
|
||||
@@ -55,6 +55,11 @@ static inline move_t move_make(square_t from, square_t to)
|
||||
return (to << 3) | from;
|
||||
}
|
||||
|
||||
static inline move_t move_make_promote(square_t from, square_t to, piece_type_t piece)
|
||||
{
|
||||
return move_make(from, to) | M_ENPASSANT | (piece << 15);
|
||||
}
|
||||
|
||||
static inline move_t move_from(move_t move)
|
||||
{
|
||||
return move & 56;
|
||||
|
||||
Reference in New Issue
Block a user