irrational unblocking, low speed obstacle bug and spicke pack when y too big
[aversive.git] / projects / microb2010 / mainboard / strat_corn.h
1 /*
2  *  Copyright Droids, Microb Technology (2010)
3  *
4  *  This program is free software; you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation; either version 2 of the License, or
7  *  (at your option) any later version.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with this program; if not, write to the Free Software
16  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  *
18  *  Revision : $Id: strat.c,v 1.6 2009-11-08 17:24:33 zer0 Exp $
19  *
20  *  Olivier MATZ <zer0@droids-corp.org>
21  */
22
23 #define LINE_UP     0
24 #define LINE_L_UP   1
25 #define LINE_L_DOWN 2
26 #define LINE_DOWN   3
27 #define LINE_R_DOWN 4
28 #define LINE_R_UP   5
29
30 struct line_2pts {
31         point_t p1;
32         point_t p2;
33 };
34
35 /* there is a corn near */
36 int8_t corn_is_near(uint8_t *corn_idx, uint8_t side,
37                     int16_t *xspickle, int16_t *yspickle);
38
39 /* go from line num1,dir1 to line num2,dir2. Uses trjectory flags
40  * specified as argument and return END_xxx condition */
41 uint8_t line2line(uint8_t num1, uint8_t dir1, uint8_t num2,
42                   uint8_t dir2, uint8_t flags);