… | |
… | |
568 | |
568 | |
569 | delete $self->{board_click}; |
569 | delete $self->{board_click}; |
570 | |
570 | |
571 | if ($self->{teacher} eq $self->{app}{conn}) { |
571 | if ($self->{teacher} eq $self->{app}{conn}) { |
572 | #TODO# # teaching mode not implemented |
572 | #TODO# # teaching mode not implemented |
573 | $self->{button_pass}->set (label => "Pass", visible => 1, sensitive => 1); |
573 | $self->{button_pass}->set (label => "Pass", sensitive => 1); |
|
|
574 | $self->{button_pass}->show; |
574 | $self->{button_undo}->hide; |
575 | $self->{button_undo}->hide; |
575 | $self->{button_resign}->hide; |
576 | $self->{button_resign}->hide; |
576 | $self->{board}->set (cursor => undef); |
577 | $self->{board}->set (cursor => undef); |
577 | |
578 | |
578 | } elsif ($running && $self->{colour} != COLOUR_NONE) { |
579 | } elsif ($running && $self->{colour} != COLOUR_NONE) { |
… | |
… | |
580 | $self->{button_undo}->show; |
581 | $self->{button_undo}->show; |
581 | $self->{button_resign}->show; |
582 | $self->{button_resign}->show; |
582 | |
583 | |
583 | if ($self->{cur_board}{score}) { |
584 | if ($self->{cur_board}{score}) { |
584 | # during scoring |
585 | # during scoring |
585 | $self->{button_pass}->set (label => "Done", visible => 1, sensitive => 1); |
586 | $self->{button_pass}->set (label => "Done", sensitive => 1); |
|
|
587 | $self->{button_pass}->show; |
586 | $self->{board}->set (cursor => sub { |
588 | $self->{board}->set (cursor => sub { |
587 | $_[0] & (MARK_B | MARK_W) |
589 | $_[0] & (MARK_B | MARK_W) |
588 | ? $_[0] ^ MARK_GRAYED |
590 | ? $_[0] ^ MARK_GRAYED |
589 | : $_[0]; |
591 | : $_[0]; |
590 | }); |
592 | }); |
… | |
… | |
602 | } |
604 | } |
603 | }; |
605 | }; |
604 | |
606 | |
605 | } elsif ($self->{colour} == $self->{whosemove}) { |
607 | } elsif ($self->{colour} == $self->{whosemove}) { |
606 | # normal move |
608 | # normal move |
607 | $self->{button_pass}->set (label => "Pass", visible => 1, sensitive => 1); |
609 | $self->{button_pass}->set (label => "Pass", sensitive => 1); |
|
|
610 | $self->{button_pass}->show; |
608 | $self->{board}->set (cursor => sub { |
611 | $self->{board}->set (cursor => sub { |
609 | $self->{cur_board} |
612 | $self->{cur_board} |
610 | && $self->{cur_board}->is_valid_move ($self->{colour}, $_[1], $_[2], |
613 | && $self->{cur_board}->is_valid_move ($self->{colour}, $_[1], $_[2], |
611 | $self->{rules}{ruleset} == RULESET_NEW_ZEALAND) |
614 | $self->{rules}{ruleset} == RULESET_NEW_ZEALAND) |
612 | ? $_[0] | MARK_GRAYED | ($self->{colour} == COLOUR_WHITE ? MARK_W : MARK_B) |
615 | ? $_[0] | MARK_GRAYED | ($self->{colour} == COLOUR_WHITE ? MARK_W : MARK_B) |
… | |
… | |
620 | $self->{board}->set (cursor => undef); |
623 | $self->{board}->set (cursor => undef); |
621 | delete $self->{board_click}; |
624 | delete $self->{board_click}; |
622 | $self->{button_pass}->sensitive (0); |
625 | $self->{button_pass}->sensitive (0); |
623 | }; |
626 | }; |
624 | } else { |
627 | } else { |
625 | $self->{button_pass}->set (label => "Pass", sensitive => 0, visible => 1); |
628 | $self->{button_pass}->set (label => "Pass", sensitive => 0); |
|
|
629 | $self->{button_pass}->show; |
626 | $self->{board}->set (cursor => undef); |
630 | $self->{board}->set (cursor => undef); |
627 | } |
631 | } |
628 | } else { |
632 | } else { |
629 | $self->{button_undo}->hide; |
633 | $self->{button_undo}->hide; |
630 | $self->{button_resign}->hide; |
634 | $self->{button_resign}->hide; |