+ for my $id (0..5) {
+ my $car = $new_order[$id];
+ if ($self->car($car)->{order} != $id) {
+ $self->car($car)->set_order($id);
+ }
+ }
+ return ($new_order[0], $lap_max, $times[$new_order[0]]);
+}
+
+sub finish_line {
+ my ($self, $time, $regular, @cars) = @_;
+
+ my @processed;
+ for my $car (@cars) {
+ push @processed, $car
+ if $self->car($car)->finish_line($time, $regular);
+ }
+
+ if (@processed) {
+ my ($first_car, $lap_max, $time_min)
+ = $self->recalc_order($time);
+
+ for my $car (@processed) {
+ $self->car($car)->recalc_distance($lap_max, $time_min);
+ }
+ }