X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=SCX%2FTrack.pm;h=6ed3d822581242fb96e88dc86d7c9f3b626196e3;hb=aefd056b8d72090e031eed197aca474fa998650c;hp=6c4b6447cf41f0afd99c55b7f3cd2cfd4abe8239;hpb=8709f4aa800632f00a54eeb2c85e20b38fe9f6fa;p=slotcarman.git diff --git a/SCX/Track.pm b/SCX/Track.pm index 6c4b644..6ed3d82 100644 --- a/SCX/Track.pm +++ b/SCX/Track.pm @@ -5,7 +5,6 @@ package SCX::Track; use strict; use Carp; -use Time::HiRes qw(gettimeofday); use Glib qw(TRUE FALSE); use SCX::Car; @@ -21,6 +20,7 @@ sub new { round => 0, now => 0, qualification_setup => -100, + no_semaphore => $args->{no_semaphore}, }; bless $self, $class; @@ -50,6 +50,11 @@ sub race_start { if ($time - $self->{qualification_setup} < 1) { $self->{qualification_running} = 1; + } elsif ($self->{no_semaphore}) { + $self->{round} = 0; + $self->{race_running} = 1; + $self->{race_running_since} = $self->{now}; + $self->{start_in_progress} = undef; } else { $self->{round} = 0; $self->{race_running} = 0; @@ -75,7 +80,7 @@ sub semaphore_step { Glib::Timeout->add($timeout, \&semaphore_step, $self); } elsif ($self->{semaphore} == 6) { $self->{race_running} = 1; - $self->{race_running_since} = gettimeofday; + $self->{race_running_since} = $self->{now}; $self->{start_in_progress} = undef; $self->{gui}->show_semaphore(0); Glib::Timeout->add($SEMAPHORE_STEP, \&semaphore_step, $self); @@ -110,27 +115,13 @@ sub race_setup { $self->{best_lap} = undef; $self->{gui}->show_semaphore(undef); - $self->{race_running} = 0; - $self->{qualification_running} = 0; - $self->{start_in_progress} = 0; - - $self->{gui}->time(undef); - $self->{gui}->best_lap(undef); -} - -sub reset { - my ($self) = @_; - $self->{race_running} = 0; $self->{qualification_running} = 0; $self->{start_in_progress} = 0; $self->{race_finishing} = 0; - $self->{best_lap} = undef; - $self->{round} = 0; - $self->print_rounds; - $self->{gui}->best_lap(undef); $self->{gui}->time(undef); + $self->{gui}->best_lap(undef); for my $car (0..5) { $self->car($car)->reset;