ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/bin/kgsueme
(Generate patch)

Comparing kgsueme/bin/kgsueme (file contents):
Revision 1.14 by pcg, Fri May 30 03:49:27 2003 UTC vs.
Revision 1.15 by pcg, Fri May 30 04:17:25 2003 UTC

648 $drawable->draw_text ($font, $gc, $x - $w*0.5, $y + $h * 0.5, $t, length $t); 648 $drawable->draw_text ($font, $gc, $x - $w*0.5, $y + $h * 0.5, $t, length $t);
649} 649}
650 650
651# create a stack of stones 651# create a stack of stones
652sub create_stack { 652sub create_stack {
653 my ($self, $gc, $mark, $size) = @_; 653 my ($self, $gc, $mark, $size, $rand) = @_;
654 654
655 my $c = \$self->{stack}{$mark}; 655 my $c = \$self->{stack}{$mark};
656 unless ($$c) { 656 unless ($$c) {
657 for my $stone ($mark & (MARK_W | MARK_GRAY_W) ? @::white_img : @::black_img) { 657 for my $stone ($mark & (MARK_W | MARK_GRAY_W) ? @::white_img : @::black_img) {
658 my $base = 658 my $base =
670 ); 670 );
671 $base->put_pixels ($base->get_pixels ($_) & $row[$_ & 1], $_, 0) 671 $base->put_pixels ($base->get_pixels ($_) & $row[$_ & 1], $_, 0)
672 for 0 .. $size - 1; 672 for 0 .. $size - 1;
673 } 673 }
674 674
675 for ([MARK_SMALL_B, $::black_img[int rand @::black_img]], 675 for ([MARK_SMALL_B, $::black_img[$rand % @::black_img]],
676 [MARK_SMALL_W, $::white_img[int rand @::white_img]]) { 676 [MARK_SMALL_W, $::white_img[$rand % @::white_img]]) {
677 my ($mask, $img) = @$_; 677 my ($mask, $img) = @$_;
678 if ($mark & $mask) { 678 if ($mark & $mask) {
679 $img->composite ( 679 $img->composite (
680 $base, ($size / 4) x2, (int ($size / 2 + 0.5)) x2, ($size / 4) x 2, 680 $base, ($size / 4) x2, (int ($size / 2 + 0.5)) x2, ($size / 4) x 2,
681 $size / $img->get_width / 2, $size / $img->get_height / 2, 681 $size / $img->get_width / 2, $size / $img->get_height / 2,
701 701
702 push @$$c, [$base->render_pixmap_and_mask (128)]; 702 push @$$c, [$base->render_pixmap_and_mask (128)];
703 } 703 }
704 } 704 }
705 705
706 @{$$c->[int rand @$$c]}; 706 @{$$c->[$rand % @$$c]};
707} 707}
708 708
709sub repaint_board { 709sub repaint_board {
710 my ($self) = @_; 710 my ($self) = @_;
711 my $canvas = $self->{canvas}; 711 my $canvas = $self->{canvas};
735 735
736 $gc->rgb_gc_set_foreground($line_colour); 736 $gc->rgb_gc_set_foreground($line_colour);
737 $gc->set_line_attributes (int ($s / 300) + 1, 'solid', 'projecting', 'miter'); 737 $gc->set_line_attributes (int ($s / 300) + 1, 'solid', 'projecting', 'miter');
738 738
739 my $size = $self->{size}; 739 my $size = $self->{size};
740 my $border = int ($s / $size * 0.75); 740 my $border = int ($s / $size);
741 my $s2 = $s - $border * 2; 741 my $s2 = $s - $border * 2;
742 my $edge = int ($s2 / $size); 742 my $edge = int ($s2 / $size) | 1;
743 my $ofs = int ($s2 / $size * 0.5); 743 my $ofs = int ($edge / 2);
744 744
745 my $font = label_font $ofs; 745 my $font = label_font $ofs;
746 746
747 my @k = map int ($s2 * $_ / $size - $ofs + $border + 0.5), 0 .. $size; 747 my @k = map int ($s2 * $_ / $size - $ofs + $border + 0.5), 0 .. $size;
748 748
769 my $yk = $s2 * $x / $size - $ofs + $border; 769 my $yk = $s2 * $x / $size - $ofs + $border;
770 my $mark = $self->{board}{board}[$x-1][$y-1]; 770 my $mark = $self->{board}{board}[$x-1][$y-1];
771 771
772 if ($mark) { 772 if ($mark) {
773 my ($dx, $dy) = ($k[$x] - $ofs, $k[$y] - $ofs); 773 my ($dx, $dy) = ($k[$x] - $ofs, $k[$y] - $ofs);
774 my ($pm, $bm) = $self->create_stack($gc, $mark, $edge); 774 my ($pm, $bm) = $self->create_stack($gc, $mark, $edge, $x * 17 + $y * 11 );
775 775
776 $gc->set_clip_mask ($bm); 776 $gc->set_clip_mask ($bm);
777 $gc->set_clip_origin ($dx, $dy); 777 $gc->set_clip_origin ($dx, $dy);
778 $pixmap->draw_pixmap ($gc, $pm, 0, 0, $dx, $dy, $edge, $edge); 778 $pixmap->draw_pixmap ($gc, $pm, 0, 0, $dx, $dy, $edge, $edge);
779 } 779 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines