When setting a new primary or secondary turn, clear the bits from the currently-set turn first.

This commit is contained in:
Saikrishna Arcot 2014-12-08 12:56:05 -05:00
parent cf47c09c32
commit 4af103fb02

View file

@ -162,12 +162,13 @@ public class TurnType {
this.lanes = lanes; this.lanes = lanes;
} }
// Note that there is no "weight" or ordering between the primary and secondary turns. // Note that the primary turn will be the one displayed on the map.
public static void setPrimaryTurn(int[] lanes, int lane, int turnType) { public static void setPrimaryTurn(int[] lanes, int lane, int turnType) {
lanes[lane] |= (turnType << 1); lanes[lane] |= (turnType << 1);
} }
public void setPrimaryTurn(int lane, int turnType) { public void setPrimaryTurn(int lane, int turnType) {
lanes[lane] &= ~(15 << 1);
lanes[lane] |= (turnType << 1); lanes[lane] |= (turnType << 1);
} }
@ -177,6 +178,7 @@ public class TurnType {
} }
public static void setSecondaryTurn(int[] lanes, int lane, int turnType) { public static void setSecondaryTurn(int[] lanes, int lane, int turnType) {
lanes[lane] &= ~(15 << 5);
lanes[lane] |= (turnType << 5); lanes[lane] |= (turnType << 5);
} }