summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--digital/io-hub/src/guybrush/bottom_clamp.c2
-rw-r--r--digital/io-hub/src/guybrush/strat.c10
-rw-r--r--digital/io-hub/src/guybrush/strat.h4
3 files changed, 14 insertions, 2 deletions
diff --git a/digital/io-hub/src/guybrush/bottom_clamp.c b/digital/io-hub/src/guybrush/bottom_clamp.c
index 90896d91..6d576203 100644
--- a/digital/io-hub/src/guybrush/bottom_clamp.c
+++ b/digital/io-hub/src/guybrush/bottom_clamp.c
@@ -31,6 +31,7 @@
#include "main.h"
#include "bottom_clamp.h"
#include "pressure.h"
+#include "strat.h"
#include "radar_defs.h"
@@ -502,6 +503,7 @@ FSM_TRANS (CLAMP_READY_TO_LOAD, clean_load,CLAMP_TAKE_COIN)
/*---------------------------------------------------------*/
FSM_TRANS (CLAMP_IDLE, coin_detected,CLAMP_TAKE_COIN)
{
+ strat_coin_taken ();
if (is_clamp_1_down(ctx.current_pos))
{
/*Close it.*/
diff --git a/digital/io-hub/src/guybrush/strat.c b/digital/io-hub/src/guybrush/strat.c
index 51b7b4f3..d3042c6c 100644
--- a/digital/io-hub/src/guybrush/strat.c
+++ b/digital/io-hub/src/guybrush/strat.c
@@ -196,7 +196,7 @@ strat_decision (vect_t *pos)
}
/* Else compute the best decision. */
uint8_t min, max;
- if (strat.load > 0)
+ if (strat.load > 3)
{
min = 0;
max = STRAT_PLACE_UNLOAD_NB;
@@ -239,7 +239,7 @@ strat_success (void)
switch (strat.last_decision)
{
case STRAT_DECISION_TOTEM:
- strat.load++;
+ strat.load += 4;
/* no break; */
case STRAT_DECISION_BOTTLE:
strat.place[strat.last_place].valid = 0;
@@ -285,6 +285,12 @@ strat_giveup (void)
}
void
+strat_coin_taken (void)
+{
+ strat.load++;
+}
+
+void
strat_clamp_dead (void)
{
/* TODO */
diff --git a/digital/io-hub/src/guybrush/strat.h b/digital/io-hub/src/guybrush/strat.h
index 810db2df..96649d7d 100644
--- a/digital/io-hub/src/guybrush/strat.h
+++ b/digital/io-hub/src/guybrush/strat.h
@@ -61,6 +61,10 @@ strat_failure (void);
void
strat_giveup (void);
+/** Signal a coin has been taken. */
+void
+strat_coin_taken (void);
+
/** Clamp is dead stop using it. */
void
strat_clamp_dead (void);