summaryrefslogtreecommitdiffhomepage
path: root/digital
diff options
context:
space:
mode:
authorNicolas Schodet2012-05-14 13:42:39 +0200
committerNicolas Schodet2012-05-14 13:42:39 +0200
commite629da38e585deaebf88fd53dee1a08795d251fe (patch)
tree61b3c04bb94cf7a40bc7a54ec5a86da913864ba3 /digital
parent6db6a923128b3f9c45820508c41f2fdbc0edfe58 (diff)
digital/io-hub/src/guybrush: add intermediary path point farther from totems
Diffstat (limited to 'digital')
-rw-r--r--digital/io-hub/src/guybrush/path.c50
-rw-r--r--digital/io-hub/src/guybrush/path.h3
-rw-r--r--digital/io-hub/src/guybrush/playground_2012.h3
-rw-r--r--digital/io-hub/src/guybrush/strat.c8
4 files changed, 40 insertions, 24 deletions
diff --git a/digital/io-hub/src/guybrush/path.c b/digital/io-hub/src/guybrush/path.c
index 1ec32940..852ebc48 100644
--- a/digital/io-hub/src/guybrush/path.c
+++ b/digital/io-hub/src/guybrush/path.c
@@ -55,7 +55,7 @@
#define PATH_OBSTACLES_NB AC_PATH_OBSTACLES_NB
/** Number of nodes in a column. */
-#define PATH_COLUMN_NODES_NB 5
+#define PATH_COLUMN_NODES_NB 7
/** Number of columns. */
#define PATH_COLUMNS_NB 5
@@ -114,32 +114,42 @@ static const struct path_node_t path_nodes[PATH_NODES_NB] = {
{ 1 }, /* 2 */
{ 1 }, /* 3 */
{ 1 }, /* 4 */
- { 1 }, /* 5 column 1. */
+ { 1 }, /* 5 */
{ 1 }, /* 6 */
- { 0 }, /* 7 */
+ { 1 }, /* 7 column 1. */
{ 1 }, /* 8 */
- { 1 }, /* 9 */
- { 1 }, /* 10 column 2. */
- { 1 }, /* 11 */
- { 0 }, /* 12 */
+ { 2 }, /* 9 avoid */
+ { 0 }, /* 10 */
+ { 2 }, /* 11 avoid */
+ { 1 }, /* 12 */
{ 1 }, /* 13 */
- { 1 }, /* 14 */
- { 1 }, /* 15 column 3. */
+ { 1 }, /* 14 column 2. */
+ { 1 }, /* 15 */
{ 1 }, /* 16 */
{ 0 }, /* 17 */
{ 1 }, /* 18 */
{ 1 }, /* 19 */
- { 1 }, /* 20 column 4. */
- { 1 }, /* 21 */
+ { 1 }, /* 20 */
+ { 1 }, /* 21 column 3. */
{ 1 }, /* 22 */
- { 1 }, /* 23 */
- { 1 }, /* 24 */
- { 2 }, /* 25 extra nodes. */
- { 2 }, /* 26 */
- { 2 }, /* 27 */
- { 2 }, /* 28 */
- { 1 }, /* 29 dst node. */
- { 1 }, /* 30 src node. */
+ { 2 }, /* 23 avoid */
+ { 0 }, /* 24 */
+ { 2 }, /* 25 avoid */
+ { 1 }, /* 26 */
+ { 1 }, /* 27 */
+ { 1 }, /* 28 column 4. */
+ { 1 }, /* 29 */
+ { 1 }, /* 30 */
+ { 1 }, /* 31 */
+ { 1 }, /* 32 */
+ { 1 }, /* 33 */
+ { 1 }, /* 34 */
+ { 2 }, /* 35 extra nodes. */
+ { 2 }, /* 36 */
+ { 2 }, /* 37 */
+ { 2 }, /* 38 */
+ { 1 }, /* 39 dst node. */
+ { 1 }, /* 40 src node. */
/* }}} */
};
@@ -155,9 +165,11 @@ static const uint16_t path_nodes_x[PATH_COLUMNS_NB] = {
/** Y position of lines. */
static const uint16_t path_nodes_y[PATH_COLUMN_NODES_NB] = {
PATH_GRID_CLEARANCE_MM,
+ PG_TOTEM_Y - PATH_PEANUT_CLEAR_MM,
PG_TOTEM_Y - PATH_TOTEM_CLEAR_MM,
PG_TOTEM_Y,
PG_TOTEM_Y + PATH_TOTEM_CLEAR_MM,
+ PG_TOTEM_Y + PATH_PEANUT_CLEAR_MM,
PG_LENGTH - PATH_GRID_CLEARANCE_MM,
};
diff --git a/digital/io-hub/src/guybrush/path.h b/digital/io-hub/src/guybrush/path.h
index 53c32a15..ccdfe494 100644
--- a/digital/io-hub/src/guybrush/path.h
+++ b/digital/io-hub/src/guybrush/path.h
@@ -36,8 +36,9 @@
* construction. */
#define PATH_GRID_CLEARANCE_MM (70 + BOT_SIZE_RADIUS)
-/** Shortcut. */
+/** Shortcuts. */
#define PATH_TOTEM_CLEAR_MM (PG_TOTEM_WIDTH_MM / 2 + PATH_GRID_CLEARANCE_MM)
+#define PATH_PEANUT_CLEAR_MM (PG_PEANUT_RADIUS_MM + BOT_SIZE_RADIUS)
/** Obstacle. */
struct path_obstacle_t
diff --git a/digital/io-hub/src/guybrush/playground_2012.h b/digital/io-hub/src/guybrush/playground_2012.h
index 36a5db8a..6beef7a2 100644
--- a/digital/io-hub/src/guybrush/playground_2012.h
+++ b/digital/io-hub/src/guybrush/playground_2012.h
@@ -43,6 +43,9 @@
#define PG_TOTEM_RIGHT_X (PG_WIDTH / 2 + PG_TOTEM_X_OFFSET_MM)
#define PG_TOTEM_Y (PG_LENGTH / 2)
+/** Peanut island. */
+#define PG_PEANUT_RADIUS_MM 300
+
/** Ships holds. */
#define PG_HOLD_SOUTH_X 325
#define PG_HOLD_SOUTH_Y 0
diff --git a/digital/io-hub/src/guybrush/strat.c b/digital/io-hub/src/guybrush/strat.c
index 51e2eb99..e47563bb 100644
--- a/digital/io-hub/src/guybrush/strat.c
+++ b/digital/io-hub/src/guybrush/strat.c
@@ -61,13 +61,13 @@ struct strat_place_t
};
static const struct strat_place_t strat_place[STRAT_PLACE_NB] = {
{ { PG_WIDTH / 2 - PG_TOTEM_X_OFFSET_MM,
- PG_LENGTH / 2 + PATH_TOTEM_CLEAR_MM }, 100, STRAT_DECISION_TOTEM },
+ PG_LENGTH / 2 + PATH_PEANUT_CLEAR_MM }, 100, STRAT_DECISION_TOTEM },
{ { PG_WIDTH / 2 + PG_TOTEM_X_OFFSET_MM,
- PG_LENGTH / 2 + PATH_TOTEM_CLEAR_MM }, 100, STRAT_DECISION_TOTEM },
+ PG_LENGTH / 2 + PATH_PEANUT_CLEAR_MM }, 100, STRAT_DECISION_TOTEM },
{ { PG_WIDTH / 2 - PG_TOTEM_X_OFFSET_MM,
- PG_LENGTH / 2 - PATH_TOTEM_CLEAR_MM }, 100, STRAT_DECISION_TOTEM },
+ PG_LENGTH / 2 - PATH_PEANUT_CLEAR_MM }, 100, STRAT_DECISION_TOTEM },
{ { PG_WIDTH / 2 + PG_TOTEM_X_OFFSET_MM,
- PG_LENGTH / 2 - PATH_TOTEM_CLEAR_MM }, 100, STRAT_DECISION_TOTEM },
+ PG_LENGTH / 2 - PATH_PEANUT_CLEAR_MM }, 100, STRAT_DECISION_TOTEM },
{ { PG_BOTTLE0_X, BOT_SIZE_RADIUS + 70 }, 100, STRAT_DECISION_BOTTLE },
{ { PG_BOTTLE1_X, BOT_SIZE_RADIUS + 70 }, 100, STRAT_DECISION_BOTTLE },
{ { PG_BOTTLE2_X, BOT_SIZE_RADIUS + 70 }, 100, STRAT_DECISION_BOTTLE },