From 50408adbb1ecf0e1a73a3339d053a346bc2cba24 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Fri, 3 Jun 2011 05:22:15 +0200 Subject: digital/io-hub: fix prepare pawn after 45 s --- digital/io-hub/src/robospierre/top.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'digital') diff --git a/digital/io-hub/src/robospierre/top.c b/digital/io-hub/src/robospierre/top.c index 59a168ed..286e819c 100644 --- a/digital/io-hub/src/robospierre/top.c +++ b/digital/io-hub/src/robospierre/top.c @@ -39,6 +39,8 @@ * impression of intelligence... Well... */ +#define TOP_PAWN_TIME 45000l + FSM_INIT FSM_STATES ( @@ -116,7 +118,8 @@ top_prepare_level (void) { if (ctx.broken) return 3; - else if (logistic_global.need_prepare || chrono_remaining_time () < 45000l) + else if (logistic_global.need_prepare + || chrono_remaining_time () < TOP_PAWN_TIME) return 2; else return 1; @@ -151,6 +154,8 @@ top_go_drop (void) ctx.target_element_id = element_unload_best (robot_pos); position_t drop_pos; drop_pos.v = element_get_pos (ctx.target_element_id); + if (!ctx.broken) + logistic_global.prepare = top_prepare_level (); uint8_t backward = logistic_global.collect_direction == DIRECTION_FORWARD ? 0 : ASSERV_BACKWARD; /* Go above or below the drop point. */ @@ -176,7 +181,7 @@ top_decision (void) { /* If we can make a tower. */ if (logistic_global.construct_possible == 1 - || ((ctx.broken || logistic_global.prepare == 2) + || ((ctx.broken || chrono_remaining_time () < TOP_PAWN_TIME) && logistic_global.construct_possible == 2)) return top_go_drop (); if (logistic_global.need_prepare) -- cgit v1.2.3