X-Git-Url: http://git.shiar.net/perl/schtarr.git/blobdiff_plain/acea822c3a40b7e74b8d390f6c4d497eface0b56..605710e6364f9256d6b3bf8b6370083a571e3330:/graphplay diff --git a/graphplay b/graphplay index d6baebf..33279b8 100755 --- a/graphplay +++ b/graphplay @@ -2,10 +2,17 @@ use strict; use warnings; +use Getopt::Long 2.33 qw(HelpMessage :config bundling); use Template; use List::Util; use Data::Dumper; +our $VERSION = '1.00'; + +GetOptions( + "verbose|v!" => \our $DEBUG, +) or HelpMessage(-exitval => 2); + my %area = ( fieldxmin => 45, fieldxmax => 1590, @@ -54,9 +61,26 @@ for my $input (@ARGV) { } } + for (0 .. 3) { + my $line = $lines[$_][$player]; + my $start; + my $lasty; + for (my $i = 1; $i <= $#$line; $i++) { + defined $line->[$i] or next; + if ($line->[$i][1] == $line->[$i - 1][1]) { + $start = $i unless defined $start; + } elsif (defined $start) { + delete @$line[$start .. $i-2]; + undef $start; + } + } + delete @$line[$start .. $#$line-2] if defined $start; # or -1 + } + $player++; } +$max[2] = $max[3]; my @norm = ((map {$area{fieldysize} / $_} @max), $area{fieldxsize} / $maxtime); my $xsteps = 25; @@ -84,6 +108,12 @@ for ([0 => "min", "Minerals"], [1 => "gas", "Gas"], [2 => "unit", "Units"]) { open my $output, '>', "$filename.svg"; $svg->process('timeline', { title => "$title timeline for /replay/20080201md4x4", + fill => $line == 2 && [ + map { "\n\tM " . join "\tL ", map sprintf("%s %s\n", + $area{fieldxmin} + $_->[0] * $norm[4], + $area{fieldymax} - $_->[1] * $norm[$line+1] + ), grep defined, @{$lines[$line][$_]}, reverse @{$lines[$line+1][$_]} } 0 .. $#{$lines[$line]} + ], paths => [ map { "\n\tM " . join "\tL ", map sprintf("%s %s\n", $area{fieldxmin} + $_->[0] * $norm[4], @@ -128,5 +158,14 @@ __DATA__ [% END %] +[% IF fill %] + +[% count = 0 %] +[% FOREACH path = fill %][% count = count + 1 %] + +[% END %] + +[% END %] +