X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=SCX%2FGUI.pm;h=c073560dce160881098a93395c3ba8b7756a6010;hb=345e8e96dea605056d0c35461c4f16234c247fba;hp=83783ae92b47df1ca82f68e5640ec3eb76787061;hpb=39fe205a0db4c322660e0fbf7c54d4dad8f6ed40;p=slotcarman.git diff --git a/SCX/GUI.pm b/SCX/GUI.pm index 83783ae..c073560 100755 --- a/SCX/GUI.pm +++ b/SCX/GUI.pm @@ -220,19 +220,19 @@ sub set_lap { sub set_laptime { my ($self, $row, $text) = @_; - $self->set_label('label_laptime', $row, $text); + $self->set_label('label_laptime', $row, format_lap_time($text)); } sub set_avg_lap { my ($self, $row, $text) = @_; - $self->set_label('label_avg_lap', $row, $text); + $self->set_label('label_avg_lap', $row, format_lap_time($text)); } sub set_best_lap { my ($self, $row, $text) = @_; - $self->set_label('label_best_lap', $row, $text); + $self->set_label('label_best_lap', $row, format_lap_time($text)); } sub set_name { @@ -243,12 +243,13 @@ sub set_name { sub enter_pit_lane { my ($self, $row) = @_; - $self->set_laptime($row, 'PIT'); + $self->set_label('label_laptime', $row, 'PIT'); } sub leave_pit_lane { my ($self, $row) = @_; - $self->set_laptime($row, 'GO!'); + + $self->set_label('label_laptime', $row, 'GO!'); } sub show_semaphore { @@ -274,17 +275,41 @@ sub rounds { sub time { my ($self, $text) = @_; - $self->set_label('label_time_global', undef, $text); + $self->set_label('label_time_global', undef, format_race_time($text)); } sub best_lap { my ($self, $time, $who) = @_; - my $text = $time; + my $text = format_lap_time($time); $text .= ' by ' . $who if defined $who; $self->set_label('label_best_lap_global', undef, $text); } +sub format_race_time { + my ($seconds) = @_; + + return '--' if !defined $seconds; + + my $hours = int($seconds / 3600); + $seconds -= 3600 * $hours; + + my $mins = int($seconds / 60); + $seconds -= 60 * $mins; + + return $hours + ? sprintf('%d:%02d:%05.2f', $hours, $mins, $seconds) + : sprintf('%d:%05.2f', $mins, $seconds); +} + +sub format_lap_time { + my ($seconds) = @_; + + return defined $seconds + ? sprintf('%.2f', $seconds) + : '--'; +} + 1;