chiark / gitweb /
sort out track, wip, nfc
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 3 Mar 2019 21:14:36 +0000 (21:14 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 3 Mar 2019 21:14:36 +0000 (21:14 +0000)
generate-board

index 4da3d32e093f6728215428d28d57777a90d1f847..1b16800984e6ce97a0e5bfd55a99dd0cd93e1bab 100755 (executable)
@@ -567,10 +567,9 @@ sub sea_track(){
   my $dx = $token_sz * 1.25;
   my $linecolour = darkerpscolour('cube', 0.25);
   my @pos;
-  for my $i (-1..$#$track) {
-    $pos[$i+1] = mkvec(0, ($i - 0.5 * @$track) * $dy);
+  for my $i (0..$#$track) {
+    $pos[$i] = mkvec(0, ($i - 0.5 * @$track) * $dy);
   }
-  my $pos_ = shift @pos;
   my $prepline = "$linecolour $hs_lw setlinewidth newpath";
   o("  $prepline\n");
   o("    ",psvec($pos[0])," moveto ",psvec($pos[-1])," lineto stroke\n");
@@ -579,11 +578,13 @@ sub sea_track(){
                 pscolour($c{Colours}{cube}),
                 $linecolour);
   }
-  for my $i (-1..$#pos-1) {
-    my $differs = $i >=0 && $track->[$i] != $track->[$i+1];
+  my $last = 0;
+  for my $i (0..$#pos) {
+    my $differs = $track->[$i] != $last;
+    $last = $track->[$i];
     o("  $prepline\n");
     o("  gsave ",
-      psvec(($i >=0 ? $pos[$i] : $pos_) + mkvec(-0.0 * $token_sz, $dy/2))," translate\n");
+      psvec($pos[$i] + mkvec(-0.0 * $token_sz, $dy/2))," translate\n");
     if ($i >= 0 &&
        ($i == 0 ||
         $track->[$i] != $track->[$i-1])) {
@@ -603,13 +604,13 @@ sub sea_track(){
       o("    grestore\n");
     }
     if ($differs || $i==-1) {
-      if ($differs) {
-       o("  0 0 moveto",
+      if ($i > 0) {
+       o("  0 -$dy moveto",
          " ",psvec(mkvec( $dx + $cube_sz, 0 )),
          " rlineto stroke\n");
       }
       o("  ",($token_sz * 0.6 + $cube_gap)," ",
-       ($dy * 0.5 - 0.5 * (water_cubes_sz(2))),
+       (-$dy * 0.5 - 0.5 * (water_cubes_sz(2))),
        " translate\n");
       my $bottom = int(($track->[$i+1] + 1) / 2);
       water_cubes($bottom);