3 #ifndef EFFECT_UTIL_NEIGHBORING8DIRECT_H
4 #define EFFECT_UTIL_NEIGHBORING8DIRECT_H
28 CArray2d<Entry,PTYPEO_SIZE,Offset32::SIZE>
table;
50 return state.isEmptyBetween(from, nearest,
false);
69 assert(! offset.
zero());
71 Piece p = state.pieceAt(pos);
72 for (; p.
isEmpty(); pos+=offset, p=state.pieceAt(pos)) {
77 if (pos == nearest || state.hasEffectByPiece(p, nearest))
80 if (target != state.kingSquare(
alt(attack)))
84 return pos == state.kingMobilityOfPlayer(
alt(attack), dir);
98 if (!nearest.isEdge() && state.isEmptyBetween(from, nearest,
false))
141 using effect_util::Neighboring8Direct;