Merge branch 'master' of git://git.gag.com/fw/altos
[fw/altos] / ao-tools / altosui / AltosTelemetryReader.java
index fdedbde279345499e1ac926104478ade2106fa24..3564a0a5a7aa14acf5f98925dbef47f203f515d8 100644 (file)
@@ -41,6 +41,7 @@ public class AltosTelemetryReader extends AltosReader {
 
        public AltosTelemetryReader (FileInputStream input) {
                boolean saw_boost = false;
+               int     current_tick = 0;
 
                records = new LinkedList<AltosRecord> ();
 
@@ -54,6 +55,15 @@ public class AltosTelemetryReader extends AltosReader {
                                        AltosTelemetry record = new AltosTelemetry(line);
                                        if (record == null)
                                                break;
+                                       if (records.isEmpty()) {
+                                               current_tick = record.tick;
+                                       } else {
+                                               int tick = record.tick | (current_tick & ~ 0xffff);
+                                               if (tick < current_tick - 0x1000)
+                                                       tick += 0x10000;
+                                               current_tick = tick;
+                                               record.tick = current_tick;
+                                       }
                                        if (!saw_boost && record.state >= Altos.ao_flight_boost)
                                        {
                                                saw_boost = true;