}
sub hs_initial_1 ($;$$$) {
- my ($colour, $fn) = @_;
+ my ($colour) = @_;
my $hs1 = $c{HS1}{$colour};
my ($text, $text2);
if ($hs1->{Water}) {
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('red');
+ hs_initial_1('purple');
+ hs_initial_1('green');
+ hs_initial_1('yellow');
}
sub play_hint () {