1 #ifndef OSL_MOVE_GENERATOR_ESCAPE_H
2 #define OSL_MOVE_GENERATOR_ESCAPE_H
14 namespace move_generator
20 template<
class Action>
31 template<Player P,
bool CheapOnly>
39 template<Player P,
bool CheapOnly>
54 template<Player P,Ptype Type>
55 static void generateEscape(
const NumEffectState& state,
Piece p,Action& action,Int2Type<Type>);
60 template<Player P,Ptype Type>
68 generatePtype<P,Type>(state,p,action);
73 CheckAction checkAction(state,action,p.
square());
75 generatePtype<P,Type>(state,p,
81 template<Player P,
bool cheapOnly>
87 template<Player P,Ptype Type,
bool CheapOnly>
89 template<Player P,Ptype Type,
bool CheapOnly>
91 template<Player P,Ptype Type,
bool CheapOnly>
98 template<Player P,
bool CheapOnly>
104 template<Player P,
bool shouldPromote,
bool CheapOnly>
105 static void generate(
const NumEffectState& state,
Piece piece,Action& action);
111 template <
class Action>
121 template <
class Action>
134 template <
size_t Capacity>
140 template <
size_t Capacity>
149 template <
class Action>
152 if (state.turn() ==
BLACK)
172 #endif // OSL_MOVE_GENERATOR_ESCAPE_H