summaryrefslogtreecommitdiffstats
path: root/examples/statemachine/errorstateplugins/spin_ai_with_error/spin_ai_with_error.h
diff options
context:
space:
mode:
Diffstat (limited to 'examples/statemachine/errorstateplugins/spin_ai_with_error/spin_ai_with_error.h')
-rw-r--r--examples/statemachine/errorstateplugins/spin_ai_with_error/spin_ai_with_error.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/examples/statemachine/errorstateplugins/spin_ai_with_error/spin_ai_with_error.h b/examples/statemachine/errorstateplugins/spin_ai_with_error/spin_ai_with_error.h
new file mode 100644
index 0000000000..26def6670d
--- /dev/null
+++ b/examples/statemachine/errorstateplugins/spin_ai_with_error/spin_ai_with_error.h
@@ -0,0 +1,44 @@
+#ifndef SPIN_AI_WITH_ERROR_H
+#define SPIN_AI_WITH_ERROR_H
+
+#include <errorstate/plugin.h>
+#include <errorstate/tank.h>
+
+#include <QObject>
+#include <QState>
+
+class SpinState: public QState
+{
+ Q_OBJECT
+public:
+ SpinState(Tank *tank, QState *parent) : QState(parent), m_tank(tank)
+ {
+ }
+
+public slots:
+ void spin()
+ {
+ m_tank->turn(90.0);
+ }
+
+protected:
+ void onEntry()
+ {
+ connect(m_tank, SIGNAL(actionCompleted()), this, SLOT(spin()));
+ spin();
+ }
+
+private:
+ Tank *m_tank;
+
+};
+
+class SpinAiWithError: public QObject, public Plugin
+{
+ Q_OBJECT
+ Q_INTERFACES(Plugin)
+public:
+ virtual QState *create(QState *parentState, Tank *tank);
+};
+
+#endif