1 #ifndef SHOGI__DELEGATORS__BEHAVIOUR_H
2 #define SHOGI__DELEGATORS__BEHAVIOUR_H
4 #include "../behaviour.h"
5 #include <core/delegators/behaviour.h>
11 namespace Delegators
{
13 class ShogiBehaviour
: public Shogi::Behaviour
{
15 Shogi::Behaviour
* m_dgate_shogibehaviour
;
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();
29 m_dgate_shogibehaviour
= shogibehaviour
;
30 m_dgate_shogibehaviour
->setDelegator(this);
31 kDebug() << this << "m_dgate_shogibehaviour=" << m_dgate_shogibehaviour
;
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();
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