From fe9a85d03e4a08c4ac724459737f688750899fd8 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Fri, 18 May 2012 07:36:00 +0200 Subject: digital/io-hub/src/guybrush: handle upper clamp death --- digital/io-hub/src/guybrush/strat.c | 9 +++++++++ digital/io-hub/src/guybrush/strat.h | 4 ++++ digital/io-hub/src/guybrush/top.c | 6 ++++++ 3 files changed, 19 insertions(+) (limited to 'digital') diff --git a/digital/io-hub/src/guybrush/strat.c b/digital/io-hub/src/guybrush/strat.c index 3e67119d..51b7b4f3 100644 --- a/digital/io-hub/src/guybrush/strat.c +++ b/digital/io-hub/src/guybrush/strat.c @@ -290,3 +290,12 @@ strat_clamp_dead (void) /* TODO */ } +void +strat_upper_clamp_dead (void) +{ + strat.place[STRAT_PLACE_TOTEM0].valid = 0; + strat.place[STRAT_PLACE_TOTEM1].valid = 0; + strat.place[STRAT_PLACE_TOTEM2].valid = 0; + strat.place[STRAT_PLACE_TOTEM3].valid = 0; +} + diff --git a/digital/io-hub/src/guybrush/strat.h b/digital/io-hub/src/guybrush/strat.h index 6c4a0255..810db2df 100644 --- a/digital/io-hub/src/guybrush/strat.h +++ b/digital/io-hub/src/guybrush/strat.h @@ -65,4 +65,8 @@ strat_giveup (void); void strat_clamp_dead (void); +/** Upper clamp is dead. */ +void +strat_upper_clamp_dead (void); + #endif /* strat_h */ diff --git a/digital/io-hub/src/guybrush/top.c b/digital/io-hub/src/guybrush/top.c index d7cc7b5f..eea74cde 100644 --- a/digital/io-hub/src/guybrush/top.c +++ b/digital/io-hub/src/guybrush/top.c @@ -305,6 +305,12 @@ FSM_TRANS (TOP_CLAMP_ERROR_DECISION, clamp_blocked, } } +FSM_TRANS (TOP_CLAMP_ERROR_DECISION, upper_set_is_dead, TOP_DECISION) +{ + strat_upper_clamp_dead (); + return FSM_NEXT (TOP_CLAMP_ERROR_DECISION, upper_set_is_dead); +} + /** TOTEM */ FSM_TRANS (TOP_TOTEM_GOING, move_success, TOP_TOTEM_CLEAN_STARTING) -- cgit v1.2.3