summaryrefslogtreecommitdiff
path: root/digital
diff options
context:
space:
mode:
authorNicolas Schodet2012-05-18 07:36:00 +0200
committerNicolas Schodet2012-05-18 08:30:19 +0200
commitfe9a85d03e4a08c4ac724459737f688750899fd8 (patch)
treea57df4b8507d4f46538c6fc158794d57d31d6c3d /digital
parent313a57062ba2336359b9b00f4d0c56799e536777 (diff)
digital/io-hub/src/guybrush: handle upper clamp death
Diffstat (limited to 'digital')
-rw-r--r--digital/io-hub/src/guybrush/strat.c9
-rw-r--r--digital/io-hub/src/guybrush/strat.h4
-rw-r--r--digital/io-hub/src/guybrush/top.c6
3 files changed, 19 insertions, 0 deletions
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)