From: Ian Jackson Date: Sun, 3 Mar 2019 02:55:35 +0000 (+0000) Subject: wip cards on track X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=31be5a8a5dbcb8c4c6260936e05661cd9b5f9322;p=pandemic-rising-tide.git wip cards on track --- diff --git a/generate-board b/generate-board index 1ba27f8..a7ae786 100755 --- a/generate-board +++ b/generate-board @@ -530,11 +530,13 @@ sub water_cubes($){ } } +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 ], @@ -577,22 +579,36 @@ sub sea_track(){ } 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"); @@ -743,13 +759,13 @@ fill_faces(); 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'};