gui => $args->{gui},
driver => $args->{driver} || '--',
throttle => undef,
+ button => undef,
fuel => 0,
lap => 0,
laptime => 0,
}
sub set_throttle {
- my ($self, $val, $time) = @_;
+ my ($self, $val, $button, $time) = @_;
- return if $self->same('throttle', $val);
+ return if $self->same('throttle', $val)
+ && $self->same('button', $button);
if ($self->track->{start_in_progress} && $val) {
$self->{early_start} = 1;
}
}
- $self->gui->set_throttle($self->{order}, $val);
+ $self->gui->set_throttle($self->{order}, $val, $button);
}
}
return if $self->same('lap', $lap_nr);
+ if (defined $self->{lap} && defined $self->track->{race_rounds}
+ && $self->track->{race_rounds} > 0
+ && $self->{lap} > $self->track->{race_rounds}) {
+ $self->{finished} = 1;
+ $self->print_state;
+ }
$self->gui->set_lap($self->{order}, $lap_nr);
if ($self->track->{race_running} && $self->{lap} > 1) {
my $now = $self->{last_finish_time};
$self->gui->set_name($self->{order}, $self->{driver});
$self->gui->set_car_icon($self->{order}, $self->{car_img});
- $self->gui->set_throttle($self->{order}, $self->{throttle});
+ $self->gui->set_throttle($self->{order}, $self->{throttle},
+ $self->{button});
$self->gui->set_lap($self->{order}, $self->{lap});
$self->gui->set_laptime($self->{order}, $self->{laptime});
$self->gui->set_best_lap($self->{order}, $self->{best_lap});
if ($self->{in_pit_lane}) {
$self->{state} = 'pit';
- } elsif ($self->{running}) {
- $self->{state} = 'go';
} elsif ($self->{finished}) {
$self->{state} = 'finished';
} elsif ($self->{early_start}) {
$self->set_lap(0);
$self->set_laptime(undef);
+ $self->{finished} = 0;
$self->{in_pit_lane} = 0;
$self->{early_start} = undef;
$self->{last_finish_time} = undef;
$self->gui->set_distance($self->{order}, $time,
$self->{lap_diff}, $self->{time_diff});
+ $self->{grey_diff} = undef;
}
1;