]> www.fi.muni.cz Git - slotcarman.git/blobdiff - SCX/Car.pm
Race state images; misc fixes.
[slotcarman.git] / SCX / Car.pm
index 9f58b5b720f79edd614fc7c853914838403f200f..31149a20dc95d97685578fe690df20363f66a815 100644 (file)
@@ -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) = @_;