From 020a2d40da692582c1e78c1a347ce821538f4813 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Fri, 18 May 2012 08:34:32 +0200 Subject: digital/io-hub/src/guybrush: count taken coins --- digital/io-hub/src/guybrush/bottom_clamp.c | 2 ++ digital/io-hub/src/guybrush/strat.c | 10 ++++++++-- digital/io-hub/src/guybrush/strat.h | 4 ++++ 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; @@ -284,6 +284,12 @@ strat_giveup (void) } } +void +strat_coin_taken (void) +{ + strat.load++; +} + void strat_clamp_dead (void) { 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); -- cgit v1.2.3