Revision 1884
Separated the intersection constants from the turning constants, updated fuctions accordingly.
validTurns.c | ||
---|---|---|
45 | 45 |
return crosstype; |
46 | 46 |
} |
47 | 47 |
int getCrossPos(int barcode, int max){ |
48 |
//@TODO: implement some max checking |
|
48 | 49 |
return (barcode)&3; |
49 | 50 |
} |
50 | 51 |
|
... | ... | |
55 | 56 |
cross_type = getCrossType(barcode); |
56 | 57 |
switch (cross_type) |
57 | 58 |
{ |
58 |
case DOUBLE_C: |
|
59 |
case INTERSECTION_DOUBLE_C:
|
|
59 | 60 |
{ |
60 | 61 |
cross_pos = getCrossPos(barcode, 4); |
61 | 62 |
if (0<=cross_pos && cross_pos<=3) |
... | ... | |
63 | 64 |
break; |
64 | 65 |
} |
65 | 66 |
case DOUBLE: //Implements DOUBLE as DOUBLE_T |
66 |
case DOUBLE_T: |
|
67 |
//@TODO: we really shouldn't use DOUBLE, it's part of another system. but it equals 0, so error checking. |
|
68 |
case INTERSECTION_DOUBLE_T: |
|
67 | 69 |
{ |
68 | 70 |
cross_pos = getCrossPos(barcode, 3); |
69 | 71 |
switch (cross_pos) |
... | ... | |
91 | 93 |
} |
92 | 94 |
break; |
93 | 95 |
} |
94 |
case SINGLE: |
|
96 |
case INTERSECTION_SINGLE:
|
|
95 | 97 |
{ |
96 | 98 |
cross_pos = getCrossPos(barcode, 2); |
97 | 99 |
switch (cross_pos) |
... | ... | |
113 | 115 |
} |
114 | 116 |
break; |
115 | 117 |
} |
116 |
case ON_RAMP: |
|
118 |
case INTERSECTION_ON_RAMP:
|
|
117 | 119 |
{ |
118 | 120 |
cross_pos = getCrossPos(barcode, 3); |
119 | 121 |
switch (cross_pos) |
... | ... | |
135 | 137 |
} |
136 | 138 |
break; |
137 | 139 |
} |
138 |
case OFF_RAMP: |
|
140 |
case INTERSECTION_OFF_RAMP:
|
|
139 | 141 |
{ |
140 | 142 |
cross_pos = getCrossPos(barcode, 3); |
141 | 143 |
switch (cross_pos) |
Also available in: Unified diff