From ff9b85e54ab93517afc757390ed3750aafc48e03 Mon Sep 17 00:00:00 2001 From: Shiar Date: Sat, 19 Jul 2008 22:39:36 +0200 Subject: [PATCH] Data::StarCraft::Tileset->tileavg optimization Split out summation of each color channel, similar to col(). This is quite significant (can easily save over a second to run for all tiles in a map). --- Data-StarCraft/lib/Data/StarCraft/Tileset.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Data-StarCraft/lib/Data/StarCraft/Tileset.pm b/Data-StarCraft/lib/Data/StarCraft/Tileset.pm index 891c12b..f1fcd3e 100644 --- a/Data-StarCraft/lib/Data/StarCraft/Tileset.pm +++ b/Data-StarCraft/lib/Data/StarCraft/Tileset.pm @@ -169,7 +169,9 @@ sub tileavg { $info->{walk} = sum(@{ $tile->{subtype} }) >> 4; my @rgb; for my $subcol (@{ $tile->{subcol} }) { - $rgb[$_] += $subcol->[$_] for 0 .. 2; + $rgb[0] += $subcol->[0]; + $rgb[1] += $subcol->[1]; # seperate for speed + $rgb[2] += $subcol->[2]; } $info->{col} = [ map {$_ >> 4} @rgb ]; return $info; -- 2.30.0