From e629da38e585deaebf88fd53dee1a08795d251fe Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 14 May 2012 13:42:39 +0200 Subject: digital/io-hub/src/guybrush: add intermediary path point farther from totems --- digital/io-hub/src/guybrush/path.c | 50 +++++++++++++++++---------- digital/io-hub/src/guybrush/path.h | 3 +- digital/io-hub/src/guybrush/playground_2012.h | 3 ++ digital/io-hub/src/guybrush/strat.c | 8 ++--- 4 files changed, 40 insertions(+), 24 deletions(-) (limited to 'digital') 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 }, -- cgit v1.2.3