};
struct tomato_db {
- /* nothing for now */
+ uint8_t idx;
};
/* structure describing the status of a waypoint */
/* visited by opponent */
uint8_t opp_visited:1;
- uint8_t reserved:3;
+ /* true if the wp is on a circuit */
+ uint8_t on_circuit:1;
- /* absolute position of the waypoint */
-/* int16_t x; */
-/* int16_t y; */
+ uint8_t reserved:2;
union {
struct corn_db corn;
struct tomato_db tomato;
};
+
+ /* to monitor time when corn/ball was removed */
+ /* not optimal... but... we have enough ram */
+ int8_t time_removed;
};
/* database reflecting the status of objects on area */
/* global structure storing the database */
extern struct strat_db strat_db;
+/* return the nearest waypoint that is not a corn: xp and yp contains
+ * the input and output, and ip, jp are only outputs. return 0 on
+ * success. */
+int8_t xycoord_to_ijcoord(int16_t *xp, int16_t *yp, uint8_t *ip, uint8_t *jp);
+
/* convert i,j coords to x,y coords */
int8_t ijcoord_to_xycoord(uint8_t i, uint8_t j, int16_t *x, int16_t *y);