Pokebot
Pokemon FireRed bot
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
AAction.hh
Go to the documentation of this file.
1 #ifndef __AACTION_HH__
2 #define __AACTION_HH__
3 
4 #include <map>
5 #include <queue>
6 #include <vector>
7 #include <string>
8 #include <functional>
9 #include "Data.hh"
10 #include "../vbam/sdl/SDLGlobals.h"
11 
12 namespace Action
13 {
14  enum State
15  {
20  };
21  extern Data *data;
22 };
23 
24 class AAction
25 {
26 public:
27  AAction();
29  virtual ~AAction() {}
30 
31 private:
32  virtual void _update() = 0;
33  virtual void _init() = 0;
34 
35 public:
36  void queue(AAction *act) { _actions.push(act); }
38  Action::State getState() const { return (_state); }
39  void setState(Action::State st) { _state = st; }
40 
41 public:
42  void emit(const std::string &signal);
43  void addListener(const std::string &signal, void (*listener)(AAction *));
44  void addListener(const std::string &signal, void (AAction::*listener)());
45 
46 protected:
47  uint32_t _getCounter() const { return (_counter); }
48 
49 protected:
52  std::queue<AAction *> _actions;
53  std::map<std::string, std::vector<std::function<void (AAction *)> > > _listeners;
54 private:
55  uint32_t _counter;
56 };
57 
58 #endif
State
Definition: AAction.hh:14
Definition: AAction.hh:16
Action::State getState() const
Definition: AAction.hh:38
AAction()
Definition: AAction.cpp:3
Definition: AAction.hh:12
uint32_t _getCounter() const
Definition: AAction.hh:47
void setState(Action::State st)
Definition: AAction.hh:39
Action::State _state
Definition: AAction.hh:51
virtual ~AAction()
Definition: AAction.hh:29
std::queue< AAction * > _actions
Definition: AAction.hh:52
Data & _data
Definition: AAction.hh:50
Action::State update()
Definition: AAction.cpp:10
void emit(const std::string &signal)
Definition: AAction.cpp:45
Definition: AAction.hh:18
Definition: AAction.hh:19
void queue(AAction *act)
Definition: AAction.hh:36
Definition: Data.hh:27
Definition: AAction.hh:17
void reset()
Definition: AAction.hh:37
Data * data
Definition: main.cpp:19
Definition: AAction.hh:24
std::map< std::string, std::vector< std::function< void(AAction *)> > > _listeners
Definition: AAction.hh:53
void addListener(const std::string &signal, void(*listener)(AAction *))
Definition: AAction.cpp:55