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
|
@ -54,12 +54,12 @@ bool GameEngine::is_dead() {
|
|||
return free_death ? false : hit_points <= 0;
|
||||
}
|
||||
|
||||
void GameEngine::start(GameEvent ev) {
|
||||
void GameEngine::START(GameEvent ev) {
|
||||
state(GameState::IDLE);
|
||||
idle(ev);
|
||||
IDLE(ev);
|
||||
}
|
||||
|
||||
void GameEngine::idle(GameEvent ev) {
|
||||
void GameEngine::IDLE(GameEvent ev) {
|
||||
if(ev == GameEvent::BUILD_START) {
|
||||
hits_taken = 0;
|
||||
state(GameState::IN_ROUND);
|
||||
|
@ -68,7 +68,7 @@ void GameEngine::idle(GameEvent ev) {
|
|||
}
|
||||
}
|
||||
|
||||
void GameEngine::in_round(GameEvent ev, string &hit_type) {
|
||||
void GameEngine::IN_ROUND(GameEvent ev, string &hit_type) {
|
||||
switch(ev) {
|
||||
case GameEvent::HIT:
|
||||
hit(hit_type);
|
||||
|
@ -91,11 +91,11 @@ void GameEngine::in_round(GameEvent ev, string &hit_type) {
|
|||
}
|
||||
}
|
||||
|
||||
void GameEngine::dead(GameEvent ev) {
|
||||
void GameEngine::DEAD(GameEvent ev) {
|
||||
if(ev == GameEvent::BUILD_DONE) {
|
||||
reset();
|
||||
state(GameState::FAILURE);
|
||||
failure(ev);
|
||||
FAILURE(ev);
|
||||
} else if(ev == GameEvent::HIT) {
|
||||
++hits_taken;
|
||||
} else {
|
||||
|
@ -103,7 +103,7 @@ void GameEngine::dead(GameEvent ev) {
|
|||
}
|
||||
}
|
||||
|
||||
void GameEngine::success(GameEvent ev) {
|
||||
void GameEngine::SUCCESS(GameEvent ev) {
|
||||
assert(ev == GameEvent::BUILD_DONE && "success state expected BUILD_DONE");
|
||||
++rounds;
|
||||
++streak;
|
||||
|
@ -111,7 +111,7 @@ void GameEngine::success(GameEvent ev) {
|
|||
state(GameState::IDLE);
|
||||
}
|
||||
|
||||
void GameEngine::failure(GameEvent ev) {
|
||||
void GameEngine::FAILURE(GameEvent ev) {
|
||||
assert(ev == GameEvent::BUILD_DONE && "failure state expected BUILD_DONE");
|
||||
++rounds;
|
||||
// streak is handled by reset()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue