return attacks;
}
U64 mask_bishup_attacks(int square) {
U64 bitboard = C64(0), attacks = C64(0), tmp;
int tr = square / 8, tf = square % 8, i;
bit_set(bitboard, square);
for (i = 0, tmp = bitboard; i < MIN(7 - tf, 7 - tr) - 1; i++)
attacks |= tmp = noEaOne(tmp);
for (i = 0, tmp = bitboard; i < MIN(tf, 7 - tr) - 1; i++)
attacks |= tmp = noWeOne(tmp);
for (i = 0, tmp = bitboard; i < MIN(7 - tf, tr) - 1; i++)
attacks |= tmp = soEaOne(tmp);
for (i = 0, tmp = bitboard; i < MIN(tf, tr) - 1; i++)
attacks |= tmp = soWeOne(tmp);
return attacks;
}
void init_leapers_attacks(void) {
for (int square = 0; square < 64; square++) {
pawn_attacks[WHITE][square] = mask_pawn_attacks(WHITE, square);