… | |
… | |
648 | my ($self) = @_; |
648 | my ($self) = @_; |
649 | return unless $self->{path}; |
649 | return unless $self->{path}; |
650 | |
650 | |
651 | my $move = int $self->{moveadj}->get_value; |
651 | my $move = int $self->{moveadj}->get_value; |
652 | |
652 | |
|
|
653 | warn "update_board called $move\n";#d# |
|
|
654 | |
653 | my $running = $move == @{$self->{path}}; |
655 | my $running = $move == @{$self->{path}}; |
654 | |
656 | |
655 | $self->{board_label}->set_text ("Move $move"); |
657 | $self->{board_label}->set_text ("Move $move"); |
656 | |
658 | |
657 | $self->{board} = new KGS::Game::Board $self->{size}; |
659 | $self->{board} = new KGS::Game::Board $self->{size}; |
… | |
… | |
659 | |
661 | |
660 | for my $colour (WHITE, BLACK) { |
662 | for my $colour (WHITE, BLACK) { |
661 | $self->{userpanel}[$colour]->set_state ( |
663 | $self->{userpanel}[$colour]->set_state ( |
662 | $self->{board}{captures}[$colour], |
664 | $self->{board}{captures}[$colour], |
663 | $self->{board}{timer}[$colour], |
665 | $self->{board}{timer}[$colour], |
664 | ($running && $self->{lastmove_colour} == !$colour) |
666 | ($running && $self->{lastmove_colour} == $colour) |
665 | ? $self->{lastmove_time} : 0 |
667 | ? $self->{lastmove_time} : 0 |
666 | ); |
668 | ); |
667 | } |
669 | } |
668 | |
670 | |
669 | $self->redraw ($self->repaint_board); |
671 | $self->redraw ($self->repaint_board); |
… | |
… | |
683 | warn "UPDATE_TREE $pos,$upper";#d# |
685 | warn "UPDATE_TREE $pos,$upper";#d# |
684 | $self->{moveadj}->changed; |
686 | $self->{moveadj}->changed; |
685 | if ($pos == $upper) { |
687 | if ($pos == $upper) { |
686 | $self->{moveadj}->set_value (scalar @{$self->{path}}); |
688 | $self->{moveadj}->set_value (scalar @{$self->{path}}); |
687 | } else { |
689 | } else { |
688 | $self->{moveadj}->value_changed; |
690 | $self->update_board; |
689 | } |
691 | } |
690 | } |
692 | } |
691 | } |
693 | } |
692 | |
694 | |
693 | sub event_update_comments { |
695 | sub event_update_comments { |
… | |
… | |
796 | $text .= "\nRuleset: " . $ruleset{$rules->{ruleset}}; |
798 | $text .= "\nRuleset: " . $ruleset{$rules->{ruleset}}; |
797 | |
799 | |
798 | $text .= "\nTime: "; |
800 | $text .= "\nTime: "; |
799 | |
801 | |
800 | if ($rules->{timesys} == TIMESYS_NONE) { |
802 | if ($rules->{timesys} == TIMESYS_NONE) { |
801 | $text .= "infinite"; |
803 | $text .= "UNLIMITED"; |
802 | } elsif ($rules->{timesys} == TIMESYS_ABSOLUTE) { |
804 | } elsif ($rules->{timesys} == TIMESYS_ABSOLUTE) { |
803 | $text .= util::format_time $rules->{time}; |
805 | $text .= util::format_time $rules->{time}; |
|
|
806 | $text .= " ABS"; |
804 | } elsif ($rules->{timesys} == TIMESYS_BYO_YOMI) { |
807 | } elsif ($rules->{timesys} == TIMESYS_BYO_YOMI) { |
805 | $text .= util::format_time $rules->{time} - $rules->{interval} * $rules->{count}; |
808 | $text .= util::format_time $rules->{time} - $rules->{interval} * $rules->{count}; |
806 | $text .= sprintf " + %s (%d)", util::format_time $rules->{interval}, $rules->{count}; |
809 | $text .= sprintf " + %s (%d) BY", util::format_time $rules->{interval}, $rules->{count}; |
807 | } elsif ($rules->{timesys} == TIMESYS_CANADIAN) { |
810 | } elsif ($rules->{timesys} == TIMESYS_CANADIAN) { |
808 | $text .= util::format_time $rules->{time}; |
811 | $text .= util::format_time $rules->{time}; |
809 | $text .= sprintf " + %s/%d", util::format_time $rules->{interval}, $rules->{count}; |
812 | $text .= sprintf " + %s/%d CAN", util::format_time $rules->{interval}, $rules->{count}; |
810 | } |
813 | } |
811 | |
814 | |
812 | $self->{text}->append_text ("<infoblock>$text</infoblock>"); |
815 | $self->{text}->append_text ("<infoblock>$text</infoblock>"); |
813 | } |
816 | } |
814 | |
817 | |