$self->track->race_setup($bytes[0] == 0x00
? 0
- : $bytes[1] & 0x0F * 256
- + $bytes[2] & 0x0F * 16
- + $bytes[3] & 0x0F);
+ : ($bytes[1] & 0x0F) * 256
+ + ($bytes[2] & 0x0F) * 16
+ + ($bytes[3] & 0x0F));
return $msg;
}
push @cars_finished, $i if $byte == 0xE7;
}
- my $processed;
- for my $car (@cars_finished) {
- $processed ||= $self->track->car($car)->finish_line(
- $self->{last_read_time}, $regular
- );
- }
-
- if ($processed) {
- $self->track->recalc_order;
- }
+ $self->track->finish_line(
+ $self->{last_read_time},
+ $regular,
+ @cars_finished
+ );
return $msg;
}
my $backbutton = !($byte & 0x10);
my $throttle = $byte & 0x0f;
- $self->track->car($car)->set_throttle($throttle);
+ $self->track->car($car)->set_throttle($throttle,
+ $self->{last_read_time});
$self->track->car($car)->set_light($light);
$self->track->car($car)->set_backbutton($backbutton);
}