summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNicolas Schodet2011-06-25 16:57:46 +0200
committerNicolas Schodet2011-06-25 16:57:46 +0200
commit04d27a86b1225e02f80d20962f9168fc9c0e76a7 (patch)
tree12d8d990f4c70775c51efae5e24b482300ec4a56
parenta42a9f908fc0cad8760ecda5670a6b1322d56a83 (diff)
digital/io-hub/src/robospierre: malus to intersections near dropped elements
-rw-r--r--digital/io-hub/src/robospierre/element.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/digital/io-hub/src/robospierre/element.c b/digital/io-hub/src/robospierre/element.c
index e8ee44e0..7319adbb 100644
--- a/digital/io-hub/src/robospierre/element.c
+++ b/digital/io-hub/src/robospierre/element.c
@@ -657,12 +657,26 @@ element_taken (uint8_t element_id, uint8_t element_type)
void
element_down (uint8_t element_id, uint8_t element_type)
{
+ uint8_t i;
element_t e = element_get (element_id);
e.type = element_type;
element_set (element_id, e);
+ /* Malus elements near this element. */
+ for (i = ELEMENT_INTERSEC_START; i <= ELEMENT_INTERSEC_END; i++)
+ {
+ element_t ie = element_get (i);
+ if (UTILS_ABS (e.pos.x - ie.pos.x)
+ < BOT_ELEMENT_RADIUS + BOT_SIZE_SIDE + 20
+ && UTILS_ABS (e.pos.y - ie.pos.y)
+ < BOT_ELEMENT_RADIUS + BOT_SIZE_SIDE + 20)
+ {
+ ie.bonus_load = -50;
+ element_set (i, ie);
+ }
+ }
+
/* Remove our green zone score at first unload. */
- uint8_t i;
for (i = ELEMENT_GREEN_START; i <= ELEMENT_GREEN_END - 2; i++)
{
element_t e = element_get (i);