rework strat_avoid
[aversive.git] / projects / microb2010 / mainboard / strat_corn.h
index def2237..6f597f1 100644 (file)
  *  Olivier MATZ <zer0@droids-corp.org>
  */
 
-#define CORN_NB 18
-
-/* enum is better */
-#define TYPE_WAYPOINT 0
-#define TYPE_DANGEROUS 1
-#define TYPE_WHITE_CORN 2
-#define TYPE_BLACK_CORN 3
-#define TYPE_OBSTACLE 4
-
 #define LINE_UP     0
-#define LINE_DOWN   1
-#define LINE_R_UP   2
-#define LINE_L_DOWN 3
-#define LINE_L_UP   4
-#define LINE_R_DOWN 5
+#define LINE_L_UP   1
+#define LINE_L_DOWN 2
+#define LINE_DOWN   3
+#define LINE_R_DOWN 4
+#define LINE_R_UP   5
 
 struct line_2pts {
        point_t p1;
        point_t p2;
 };
 
-extern uint8_t corn_table[CORN_NB];
-
-int8_t ijcoord_to_corn_idx(uint8_t i, uint8_t j);
-int8_t xycoord_to_corn_idx(int16_t *x, int16_t *y);
-void init_corn_table(int8_t conf_side, int8_t conf_center);
+/* there is a corn near */
+int8_t corn_is_near(uint8_t *corn_idx, uint8_t side);
 
-uint8_t line2line(uint8_t dir1, uint8_t num1,
-                 uint8_t dir2, uint8_t num2);
-void num2line(struct line_2pts *l, uint8_t dir, uint8_t num);
+/* go from line num1,dir1 to line num2,dir2. Uses trjectory flags
+ * specified as argument and return END_xxx condition */
+uint8_t line2line(uint8_t num1, uint8_t dir1, uint8_t num2,
+                 uint8_t dir2, uint8_t flags);