XXX: scmap: restore metadata marking (era-dependant styling)
[perl/schtarr.git] / graphplay
index 9956168612fe29ce5ba3903b1eda95d3a109189e..33279b86c53135ba60da4221489f884f47aaa491 100755 (executable)
--- 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,7 +61,7 @@ for my $input (@ARGV) {
                }
        }
 
-       for (0 .. 2) {
+       for (0 .. 3) {
                my $line = $lines[$_][$player];
                my $start;
                my $lasty;
@@ -73,6 +80,7 @@ for my $input (@ARGV) {
        $player++;
 }
 
+$max[2] = $max[3];
 my @norm = ((map {$area{fieldysize} / $_} @max), $area{fieldxsize} / $maxtime);
 
 my $xsteps = 25;
@@ -100,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],
@@ -144,5 +158,14 @@ __DATA__
 [% END %]
 </g>
 
+[% IF fill %]
+<g class="data">
+[% count = 0 %]
+[% FOREACH path = fill %][% count = count + 1 %]
+<path d="[% path %]" class="fill[% count %]" />
+[% END %]
+</g>
+[% END %]
+
 </svg>