refresh d7e71a93da39c621828977f6616ccc46c4b52116
[tagua/yd.git] / src / variants / shogi / delegators / behaviour.h
blob6feac934ce5c6276c702fda06db92ae5b56423d6
1 #ifndef SHOGI__DELEGATORS__BEHAVIOUR_H
2 #define SHOGI__DELEGATORS__BEHAVIOUR_H
4 #include "../behaviour.h"
5 #include <core/delegators/behaviour.h>
7 #include <KDebug>
9 #include <typeinfo>
11 namespace Delegators {
13 class ShogiBehaviour : public Shogi::Behaviour {
14 protected:
15 Shogi::Behaviour* m_dgate_shogibehaviour;
16 public:
17 #if 0
18 ShogiBehaviour(IBehaviour* behaviour)
19 : Delegators::Behaviour(behaviour)
20 , Shogi::Behaviour(behaviour),
21 m_dgate_shogibehaviour(NULL) {
22 Shogi::Behaviour* shogibehaviour = dynamic_cast< Shogi::Behaviour* >(behaviour);
23 if (shogibehaviour == NULL) {
24 kError() << "Delegators::ShogiBehaviour needs a Shogi::Behaviour, cannot use a"
25 << typeid(behaviour).name();
26 abort();
29 m_dgate_shogibehaviour = shogibehaviour;
30 m_dgate_shogibehaviour->setDelegator(this);
31 kDebug() << this << "m_dgate_shogibehaviour=" << m_dgate_shogibehaviour;
33 #endif
35 ShogiBehaviour(Component* behaviour)
36 : Delegators::Behaviour(dynamic_cast<IBehaviour*>(behaviour))
37 , Shogi::Behaviour(dynamic_cast<IBehaviour*>(behaviour)),
38 m_dgate_shogibehaviour(NULL) {
39 Shogi::Behaviour* shogibehaviour = qobject_cast< Shogi::Behaviour* >(behaviour);
40 if (shogibehaviour == NULL) {
41 kError() << "Delegators::ShogiBehaviour needs a Shogi::Behaviour, cannot use a"
42 << typeid(behaviour).name();
43 abort();
46 m_dgate_shogibehaviour = shogibehaviour;
47 m_dgate_shogibehaviour->setDelegator(this);
48 kDebug() << this << "m_dgate_shogibehaviour=" << m_dgate_shogibehaviour;
51 virtual ~ShogiBehaviour() { delete m_dgate_shogibehaviour; }
53 virtual unsigned promotionZoneWidth() const {
54 return m_dgate_shogibehaviour->promotionZoneWidth();
57 virtual void setDelegator(IBehaviour* behaviour) {
58 Delegators::Behaviour::setDelegator(behaviour);
59 m_dgate_shogibehaviour->setDelegator(behaviour);
60 kDebug() << this << "m_dgate_shogibehaviour=" << m_dgate_shogibehaviour;
64 } // namespace Delegators
66 #endif // SHOGI__DELEGATORS__BEHAVIOUR_H