X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=SCX%2FCar.pm;h=c6e2aaaa5d974d96f24c712e8ad279dadac9528d;hb=041b40ba9d04693394c1472224cbb4285a0280c3;hp=4ef5543c1d089909cd38ba9093d958b5e3dd0cdb;hpb=345e8e96dea605056d0c35461c4f16234c247fba;p=slotcarman.git diff --git a/SCX/Car.pm b/SCX/Car.pm index 4ef5543..c6e2aaa 100644 --- a/SCX/Car.pm +++ b/SCX/Car.pm @@ -50,6 +50,11 @@ sub set_throttle { $self->{early_start} = 1; $self->gui->set_driver('Early start!'); } + + if ($self->{in_pit_lane} && defined $val && $val > 3) { + $self->leave_pit_lane; + } + $self->gui->set_throttle($self->{order}, $val); } @@ -82,7 +87,7 @@ sub set_lap { return if $self->same('lap', $lap_nr); $self->gui->set_lap($self->{order}, defined $lap_nr ? $lap_nr : '--'); if ($self->track->{race_running} && $self->{lap} > 1) { - my $now = gettimeofday; + my $now = $self->{last_finish_time}; my $avg = ($now - $self->track->{race_running_since}) / ($self->{lap} - 1); $self->{avg_lap} = $avg; @@ -160,6 +165,36 @@ sub set_order { $self->gui->enter_pit_lane; } } - + +sub reset { + my ($self) = @_; + + $self->set_lap(0); + $self->set_laptime(undef); + $self->{in_pit_lane} = 0; + $self->{early_start} = undef; +} + +sub finish_line { + my ($self, $time, $regular) = @_; + + return undef + if defined $self->{last_finish_time} + && $time - $self->{last_finish_time} < 2; + + if ($regular) { + if (defined $self->{last_finish_time}) { + $self->set_laptime($time - $self->{last_finish_time}); + } + } else { + $self->enter_pit_lane; + } + + $self->{last_finish_time} = $time; + $self->set_lap(++$self->{lap}); + + return 1; +} + 1;