summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--digital/io-hub/src/guybrush/strat.c16
-rw-r--r--digital/io-hub/src/guybrush/strat.h4
2 files changed, 20 insertions, 0 deletions
diff --git a/digital/io-hub/src/guybrush/strat.c b/digital/io-hub/src/guybrush/strat.c
index a59fb4e1..51e2eb99 100644
--- a/digital/io-hub/src/guybrush/strat.c
+++ b/digital/io-hub/src/guybrush/strat.c
@@ -79,6 +79,8 @@ struct strat_place_dyn_t
{
/** Valid (not collected yet). */
uint8_t valid;
+ /** Tryed yet. */
+ uint8_t fail_nb;
};
/** Strat context. */
@@ -158,3 +160,17 @@ strat_success (void)
}
}
+void
+strat_failure (void)
+{
+ switch (strat.last_decision)
+ {
+ default:
+ if (strat.place[strat.last_place].fail_nb < 255)
+ strat.place[strat.last_place].fail_nb++;
+ break;
+ case STRAT_DECISION_UNLOAD:
+ break;
+ }
+}
+
diff --git a/digital/io-hub/src/guybrush/strat.h b/digital/io-hub/src/guybrush/strat.h
index 53654bba..e20a44b8 100644
--- a/digital/io-hub/src/guybrush/strat.h
+++ b/digital/io-hub/src/guybrush/strat.h
@@ -48,4 +48,8 @@ strat_decision (vect_t *pos);
void
strat_success (void);
+/** Report a failure of last decision. */
+void
+strat_failure (void);
+
#endif /* strat_h */