]> www.fi.muni.cz Git - slotcarman.git/blobdiff - SCX/Reader.pm
Another attempt at pit lane handling.
[slotcarman.git] / SCX / Reader.pm
index 8d9f42dcad72e6382d2f2e9e6880cc6605df809b..72dcb2542e3993c9b2cfcb348b2ffe312aed6e98 100644 (file)
@@ -264,10 +264,11 @@ sub race_setup_packet {
                || $bytes[4] != 0xFF
                || $bytes[5] != 0xFF;
 
-       for my $car (0..5) {
-               $self->track->car($car)->set_lap(undef);
-               $self->track->car($car)->set_laptime(undef);
-       }
+       $self->track->race_setup($bytes[0] == 0x00
+               ? 0
+               : $bytes[1] & 0x0F * 256
+                       + $bytes[2] & 0x0F * 16
+                       + $bytes[3] & 0x0F);
 
        return $msg; # FIXME - to be implemented
 }
@@ -391,11 +392,14 @@ sub finish_line_packet {
                if $fail;
 
        my $pit_lane_entry;
+       my $too_fast;
        my @cars_finished;
        for my $i (0..5) {
                my $byte = $bytes[$i];
 
                $pit_lane_entry = 1 if $byte == 0xF0;
+               $too_fast = 1 if $byte == 0xFF;
+
                push @cars_finished, $i if $byte == 0xE7;
        }
 
@@ -403,12 +407,15 @@ sub finish_line_packet {
                for my $car (@cars_finished) {
                        $self->track->car($car)->enter_pit_lane;
                }
+       } else {
+               for my $car (@cars_finished) {
+                       $self->track->car($car)->leave_pit_lane;
+               }
        }
 
        return $msg; # FIXME - to be implemented
 }
 
-
 sub controller_status_packet {
        my ($self, @bytes) = @_;