X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=SCX%2FCar.pm;h=31149a20dc95d97685578fe690df20363f66a815;hb=e85448fbe0a0384457115dc91638aa773fd9c5c0;hp=9f58b5b720f79edd614fc7c853914838403f200f;hpb=972687391b212153ee34a6ecf616fd1c1a53d01b;p=slotcarman.git diff --git a/SCX/Car.pm b/SCX/Car.pm index 9f58b5b..31149a2 100644 --- a/SCX/Car.pm +++ b/SCX/Car.pm @@ -16,6 +16,7 @@ sub new { lap => 0, laptime => 0, avg_lap => 0, + state => 'greenflag', car_img => $args->{car_img}, id => $args->{id}, order => $args->{id}, @@ -149,7 +150,7 @@ sub enter_pit_lane { return if $self->{in_pit_lane}; $self->{in_pit_lane} = 1; - $self->gui->enter_pit_lane($self->{order}); + $self->print_state; } sub leave_pit_lane { @@ -158,7 +159,7 @@ sub leave_pit_lane { return if !$self->{in_pit_lane}; $self->{in_pit_lane} = 0; - $self->gui->leave_pit_lane($self->{order}); + $self->print_state; } sub set_order { @@ -177,11 +178,30 @@ sub set_order { $self->gui->set_car_id($self->{order}, $self->{id} + 1); $self->gui->set_distance($self->{order}, $self->{time_diff}, $self->{lap_diff}); + $self->gui->set_state($self->{order}, $self->{state}); if ($self->{in_pit_lane}) { $self->gui->enter_pit_lane; } } +sub print_state { + my ($self) = @_; + + 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->{state} = 'disqualified'; + } else { + $self->{state} = 'greenflag'; + } + + $self->gui->set_state($self->{order}, $self->{state}); +} + sub reset { my ($self) = @_;