X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=SCX%2FTrack.pm;h=b71257e5a32546a8132d3f68438321ffa8f7b367;hb=e5ecd9d0a9df93798930c678f4f4aa58e0e6a10a;hp=c5d464068b5e79e4418077d8a621e096205e1e54;hpb=cd3dd2cbdb007c774c2485a7e14cf12b75249dfd;p=slotcarman.git diff --git a/SCX/Track.pm b/SCX/Track.pm index c5d4640..b71257e 100644 --- a/SCX/Track.pm +++ b/SCX/Track.pm @@ -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; + } } } }