+ my $nonzero = grep { $_ != 0 } @bytes;
+
+ my $car = $bytes[0];
+ my $round = 256*$bytes[1] + $bytes[2]
+ + ($bytes[3] & 2 ? 256 : 0)
+ + ($bytes[3] & 1 ? 1 : 0);
+ my $time = 256*$bytes[4] + $bytes[5]
+ + ($bytes[3] & 8 ? 256 : 0)
+ + ($bytes[3] & 4 ? 1 : 0);
+ if ($time == 65535) {
+ $self->track->car($car)->enter_pit_lane;
+ } else {
+ $time *= 0.01024;
+
+ if ($nonzero) {
+ $self->track->car($car)->set_lap($round);
+ $self->track->car($car)->set_laptime($time);
+ } else {
+ # FIXME - probably reset race time or whatever
+ # all-zeros packet is sent after the race setup
+ }
+ }
+
+ return $msg;