- return DirectionTable[s1][s2] != DELTA_NONE
- && abs(DirectionTable[s1][s2]) == abs(DirectionTable[s2][s3]);
-}
-
-
-/// squares_straight_aligned returns true if the squares s1 and s2 are aligned
-/// on a straight line, either veritical or horizontal.
-
-inline bool squares_straight_aligned(Square s1, Square s2) {
- return abs(DirectionTable[s1][s2]) == DELTA_N
- || abs(DirectionTable[s1][s2]) == DELTA_E;
+ return (BetweenBB[s1][s2] | BetweenBB[s1][s3] | BetweenBB[s2][s3])
+ & ((1ULL << s1) | (1ULL << s2) | (1ULL << s3));