}
}
+my $deck_h = 89 * MM2PT;
+
sub decks(){
my $lw = $edge_lw/2;
o(" /deck1path {\n");
my $w = 63 * MM2PT;
- my $h = 89 * MM2PT;
+ my $h = $deck_h;
my $r = 5 * MM2PT;
o(" ",($w/2)," 0 moveto\n");
my @p = ([ $w, 0 ],
}
for my $i (0..$#pos-1) {
my $differs = $track->[$i] != $track->[$i+1];
- next unless $differs || $track->[$i]==2 && $track->[$i+2]!=2;
o(" $prepline\n");
o(" gsave ",
psvec($pos[$i] + mkvec(-0.0 * $token_sz, $dy/2))," translate\n");
- 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);
}
- 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);
o(" grestore\n");
}
o(" grestore\n");
edge_faces();
dykes();
label_faces();
+decks();
sea_track();
hs_initial();
# xxx HS initial locations
# xxx HS instructions
# xxx overall instructions
play_hint();
-decks();
postamble();
print STDERR Dumper(\%region) if $ENV{'GENERATE_BOARD_DUP'};