sub pos_plus_dy_adjunct ($) {
my ($cval) = @_;
my ($x,$y,$whadjunct) = @$cval;
- my $adjunct = $adjuncts_dy_from_boundings{ $whadjunct };
- return "$x $y ".( defined $adjunct and "$adjunct add translate" );
+ my $adjunct = $adjuncts_dy_from_boundings{ $whadjunct//'' };
+ return "$x $y".( defined $adjunct and " $adjunct add translate" );
}
sub adjust_sea() {
sub sea_track(){
o("% sea level track\n");
- o(" gsave 11 700 translate\n");
+ o(" gsave ",pos_plus_dy_adjunct($c{PA}{SeaTrack})," translate\n");
my $track = $c{SeaTrack};
my $token_sz = $hs_sz;
my $dy = $token_sz * 1.25;
}
}
-sub hs_initial_1 ($;$$$) {
- my ($colour, $fn) = @_;
- my $hs1 = $c{HS1}{$colour};
+sub hs_initial_1 ($) {
+ my ($hs1) = @_;
+ my ($colour) = $hs1->{Colour};
my ($text, $text2);
if ($hs1->{Water}) {
($text,$text2) = ('up to '.$hs1->{Water}, 'fewer');
o(" ".pos_plus_dy_adjunct($c{PA}{HS1_initials})."\n");
o(" ", ($hs1->{XIYI}[0]*$interval), " ",
(($hs1->{XIYI}[1]-1)*$interval), " translate\n");
- if ($fn) {
+ if (defined $text) {
o(" gsave\n");
o(" $demo_h setlinewidth 0 0 moveto $demo_w 0 rlineto\n");
o(" ", facepscolour($colour), " stroke grestore\n");
}
one_hs($colour, mkvec(0,0));
- if ($fn) {
+ if (defined $text) {
o(" /words {\n");
o(" 2 copy moveto ($text) show\n");
o(" 2 copy moveto 0 -$text_sz rmoveto ($text2) show\n");
o(" } bind def\n");
o(" gsave ".($hs_sz * 0.8)." $cube_gap translate wordsshow grestore\n");
o(" $demo_x0 ",($hs_sz * -0.25)," translate\n");
- $fn->();
}
- o(" grestore\n");
-}
-
-sub hs_initial () {
- hs_initial_1('red');
- hs_initial_1('purple');
- hs_initial_1('green', sub {
+ if ($hs1->{Water}) {
o(" ",(water_cubes_sz(1))," 0 translate\n");
o(" 0 ",(-water_cubes_sz(1) * 0.3)," translate\n");
water_cubes(1, miscpscolour('edge'));
- });
- hs_initial_1('yellow', sub {
+ } elsif ($hs1->{Dykes}) {
o(" newpath dykepath\n");
o(" gsave ",miscpscolour('edge')," stroke grestore\n");
o(" gsave ",miscpscolour('dykehsadd')," fill grestore\n");
- });
+ }
+ o(" grestore\n");
+}
+
+sub hs_initial () {
+ hs_initial_1($_) foreach @{ $c{HS1} };
}
sub play_hint () {
my $sz = 20;
o(" gsave ",miscpscolour('hinttext'),
- " 260 1715 $adjuncts_dy_from_boundings{$c{PlayHintdyAdjunct}} add translate\n");
+ " ",pos_plus_dy_adjunct($c{PA}{PlayHint}),"\n");
o(" /Helvetica-Bold findfont $sz scalefont setfont\n");
my @t = split /\n/, $c{PlayHint};
foreach my $i (0..$#t) {