]> www.fi.muni.cz Git - slotcarman.git/blobdiff - SCX/Track.pm
More fixes.
[slotcarman.git] / SCX / Track.pm
index c5d464068b5e79e4418077d8a621e096205e1e54..b71257e5a32546a8132d3f68438321ffa8f7b367 100644 (file)
@@ -41,6 +41,7 @@ sub race_start {
 
        return if $self->{race_running} || $self->{start_in_progress}
                || $self->{qualification_running};
+       $self->{round} = 0;
        $self->{race_running} = 0;
        $self->{start_in_progress} = 1;
        $self->{semaphore} = 0;
@@ -207,18 +208,29 @@ sub recalc_order {
 sub finish_line {
        my ($self, $time, $regular, @cars) = @_;
 
-       my @processed;
+       my %processed;
+       my $was_processed;
+
        for my $car (@cars) {
-               push @processed, $car
-                        if $self->car($car)->finish_line($time, $regular);
+               if ($self->car($car)->finish_line($time, $regular)) {
+                       $processed{$car} = 1;
+                       $was_processed = 1;
+               }
         }
 
-        if (@processed) {
+       
+        if ($was_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);
+               for my $car (0..5) {
+                       if ($processed{$car}) {
+                               $self->car($car)->recalc_distance(
+                                       $lap_max, $time_min
+                               );
+                       } else {
+                               #$self->car($car)->greyout_distance;
+                       }
                }
        }
 }