FSM is now even cleaner, as long as you don't look at that CPP macro.
This commit is contained in:
parent
c9425aebf9
commit
f632f2d5af
6 changed files with 51 additions and 53 deletions
|
@ -50,23 +50,21 @@ class GameEngine : DeadSimpleFSM<GameState, GameEvent> {
|
|||
|
||||
void event(GameEvent ev, string hit_type="") {
|
||||
switch(_state) {
|
||||
FSM_STATE(GameState, START, start, ev);
|
||||
FSM_STATE(GameState, IDLE, idle, ev);
|
||||
FSM_STATE(GameState, DEAD, dead, ev);
|
||||
FSM_STATE(GameState, SUCCESS, success, ev);
|
||||
FSM_STATE(GameState, FAILURE, failure, ev);
|
||||
case GameState::IN_ROUND:
|
||||
in_round(ev, hit_type);
|
||||
break;
|
||||
FSM_STATE(GameState, START, ev);
|
||||
FSM_STATE(GameState, IDLE, ev);
|
||||
FSM_STATE(GameState, DEAD, ev);
|
||||
FSM_STATE(GameState, SUCCESS, ev);
|
||||
FSM_STATE(GameState, FAILURE, ev);
|
||||
FSM_STATE(GameState, IN_ROUND, ev, hit_type);
|
||||
}
|
||||
}
|
||||
|
||||
void start(GameEvent ev);
|
||||
void idle(GameEvent ev);
|
||||
void in_round(GameEvent ev, string &hit_type);
|
||||
void dead(GameEvent ev);
|
||||
void success(GameEvent ev);
|
||||
void failure(GameEvent ev);
|
||||
void START(GameEvent ev);
|
||||
void IDLE(GameEvent ev);
|
||||
void IN_ROUND(GameEvent ev, string &hit_type);
|
||||
void DEAD(GameEvent ev);
|
||||
void SUCCESS(GameEvent ev);
|
||||
void FAILURE(GameEvent ev);
|
||||
|
||||
void heal();
|
||||
bool hit(string &type);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue