1 #ifndef OSL_SAFE_DROP_MAJOR_PIECE_H 
    2 #define OSL_SAFE_DROP_MAJOR_PIECE_H 
    9   namespace move_generator
 
   14       template <
class Action>
 
   15       static void generate(
const NumEffectState& state, Action& action)
 
   17         const bool has_bishop = state.template hasPieceOnStand<BISHOP>(P);
 
   18         const bool has_rook = state.template hasPieceOnStand<ROOK>(P);
 
   20         if (!has_rook && !has_bishop)
 
   28         for (
int x = 1; x <= 9; x++)
 
   30           for (
int y = start_y; y < start_y + 3; y++)
 
   33             if (state.pieceOnBoard(position).isEmpty()
 
   34                 && !state.hasEffectAt(
alt(P), position))
 
   38                 action.dropMove(position, 
ROOK, P);
 
   42                 action.dropMove(position, 
BISHOP, P);
 
   48       template <
size_t Capacity>
 
   50                                 FixedCapacityVector<Move,Capacity>& 
out)