- if ($differs) {
- o(" 0 0 moveto",
- " ",psvec(mkvec( $token_sz * 1.25 + $cube_sz, 0 )),
- " rlineto stroke\n");
+ if ($i >= 1 &&
+ $track->[$i] == $track->[$i-1] &&
+ ($i == 1 ||
+ $track->[$i] != $track->[$i-2])) {
+ my $shrink = ($hs_sz / $deck_h);
+ o(" gsave % T M $i\n");
+ o(" 0 -$dy translate\n");
+ o(" gsave");
+ o(" $shrink dup scale\n");
+ o(" newpath ", ($hs_lw / $shrink)," setlinewidth deck1path stroke\n");
+ o(" grestore");
+ o(" grestore\n");
+ }
+ if ($differs || $track->[$i]==2 && $track->[$i+2]!=2) {
+ if ($differs) {
+ o(" 0 0 moveto",
+ " ",psvec(mkvec( $token_sz * 1.25 + $cube_sz, 0 )),
+ " rlineto stroke\n");
+ }
+ o(" ",($token_sz * 0.6 + $cube_gap)," ",($cube_gap + $hs_lw),
+ " translate\n");
+ water_cubes(2);
+ my $new_n = $track->[$i+1] - 2;
+ o(" ", 0.5 * (water_cubes_sz(2) - water_cubes_sz($new_n)),
+ " ", (water_cubes_sz(2)-water_cubes_sz(1)), " translate\n");
+ water_cubes($new_n);