All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
addEffect_.h
Go to the documentation of this file.
1 #ifndef OSL_MOVE_GENERATOR_ADD_EFFECT_H
2 #define OSL_MOVE_GENERATOR_ADD_EFFECT_H
7 #include <boost/static_assert.hpp>
8 
9 namespace osl
10 {
11  namespace move_generator
12  {
16  template<Player P,Ptype T,bool isAttackToKing=false>
18  {
30  template<class Action>
31  static void generate(const NumEffectState& state,Square target,Action& action,NearMask nearMask);
32  };
33 
37  template<Player P,Ptype T,bool isAttackToKing=false>
39  {
44  template<class Action>
45  static void generate(const NumEffectState& state,Square target,Action& action,NearMask nearMask);
46  };
47 
48 
66  template<Player P,bool isAttackToKing=false>
67  class AddEffect
68  {
69  // BOOST_CLASS_REQUIRE(Action,osl::move_action,Concept);
70  public:
74  template<class Action>
75  static void generateKing(const NumEffectState& state,Square target,Action& action,NearMask nearMask);
76  template<class Action>
77  static void generateGold(const NumEffectState& state,Square target,Action& action,NearMask nearMask);
85  template<class Action>
86  static void generate(const NumEffectState& state,Square target,Action& action);
87  static void generate(const NumEffectState& state,Square target,MoveVector& out)
88  {
90  generate(state, target, store);
91  }
92  };
93 
94  template<bool isAttackToKing=false>
96  {
102  static void generate(Player player, const NumEffectState& state, Square target,
104  static void generate(Player player, const NumEffectState& state, Square target,
105  MoveVector& out)
106  {
108  generate(player, state, target, store);
109  }
110  };
111  } // namespace move_generator
112 } // namespace osl
113 #endif /* OSL_MOVE_GENERATOR_ADD_EFFECT_H */
114 // ;;; Local Variables:
115 // ;;; mode:c++
116 // ;;; c-basic-offset:2
117 // ;;; End: