--- deliantra/Deliantra-Client/DC/Protocol.pm 2006/07/03 22:32:52 1.53 +++ deliantra/Deliantra-Client/DC/Protocol.pm 2006/07/03 22:58:37 1.54 @@ -86,16 +86,21 @@ } sub _stat_numdiff { - my ($self, $old, $new) = @_; + my ($self, $name, $old, $new) = @_; my $diff = $new - $old; - $diff > 0 ? "+$diff" : $diff + + $diff = 0.01 * int $diff * 100; + + 0.1 >= abs $diff ? () + : $diff < 0 ? "$name$diff" : "$name+$diff" } sub _stat_skillmaskdiff { - my ($self, $old, $new) = @_; + my ($self, $name, $old, $new) = @_; - my $diff = $old ^ $new; + my $diff = $old ^ $new + or return; my @diff = map { @@ -158,11 +163,7 @@ } if ( - my @diffs = map { - $stats->{$_->[0]} != $prev->{$_->[0]} - ? $_->[2] . $_->[1]->($self, $prev->{$_->[0]}, $stats->{$_->[0]}) : (); - } - @statchange + my @diffs = map $_->[1]->($self, $_->[2], $prev->{$_->[0]}, $stats->{$_->[0]}), @statchange ) { my $msg = "stat change: " . (join " ", @diffs); $self->{statusbox}->add ($msg, group => $msg, fg => [0.8, 1, 0.2, 1], timeout => 10);