3 #ifndef OSL_ESCAPE_FILTER_H
4 #define OSL_ESCAPE_FILTER_H
17 template<Player P,
class OrigAction>
42 attack =
state.pieceOf(num);
47 template <
bool IsSimple>
64 if (defense_count > attack_count)
66 if (defense_count < attack_count)
75 &&
state.pieceOf(num).owner() == P;
79 :
state(s), action(action),
89 ptype =
state.findCheapAttackNotBy(
alt(P), pos,
state.pinOrOpen(
alt(P))).ptype();
96 if (suitable<true>(to))
97 action.simpleMove(from,to,ptype,isPromote,P,m);
100 if (suitable<false>(to))
101 action.unknownMove(from,to,p1,ptype,isPromote,P,m);
119 Move(from,to,ptype,captured.
ptype(),isPromote,p));