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

Comparing kgsueme/kgsueme/game.pl (file contents):
Revision 1.87 by pcg, Fri May 21 15:32:02 2004 UTC vs.
Revision 1.88 by pcg, Fri May 21 16:13:41 2004 UTC

250 250
251 $hpane->pack2 (($self->{vpane} = new Gtk2::VPaned), 1, 1); 251 $hpane->pack2 (($self->{vpane} = new Gtk2::VPaned), 1, 1);
252 $hpane->set (position_set => 1); 252 $hpane->set (position_set => 1);
253 gtk::state $self->{vpane}, "game::vpane", $self->{name}, position => 80; 253 gtk::state $self->{vpane}, "game::vpane", $self->{name}, position => 80;
254 254
255 $self->{vpane}->add (my $sw = new Gtk2::ScrolledWindow); 255# $self->{vpane}->add (my $sw = new Gtk2::ScrolledWindow);
256 $sw->set_policy ("automatic", "always"); 256# $sw->set_policy ("automatic", "always");
257
258 $sw->add ($self->{userlist} = new userlist); 257# $sw->add ($self->{userlist} = new userlist);
259 258
260 $self->{vpane}->add (my $vbox = new Gtk2::VBox); 259 $self->{vpane}->add (my $vbox = new Gtk2::VBox);
261 260
262 $vbox->pack_start ((my $hbox = new Gtk2::HBox 1), 0, 1, 0); 261 $vbox->pack_start ((my $hbox = new Gtk2::HBox 1), 0, 1, 0);
263 262
265 for COLOUR_WHITE, COLOUR_BLACK; 264 for COLOUR_WHITE, COLOUR_BLACK;
266 265
267 $vbox->pack_start (($self->{chat} = new superchat), 1, 1, 0); 266 $vbox->pack_start (($self->{chat} = new superchat), 1, 1, 0);
268 267
269 $self->{rules_inlay} = $self->{chat}->new_switchable_inlay ("Game Rules", sub { $self->draw_rules (@_) }, 1); 268 $self->{rules_inlay} = $self->{chat}->new_switchable_inlay ("Game Rules", sub { $self->draw_rules (@_) }, 1);
269 $self->{users_inlay} = $self->{chat}->new_switchable_inlay ("Users:", sub { $self->draw_users (@_) }, 0);
270 270
271 $self->{chat}->signal_connect (command => sub { 271 $self->{chat}->signal_connect (command => sub {
272 my ($chat, $cmd, $arg) = @_; 272 my ($chat, $cmd, $arg) = @_;
273 if ($cmd eq "rsave") { 273 if ($cmd eq "rsave") {
274 Storable::nstore { tree => $self->{tree}, curnode => $self->{curnode}, move => $self->{move} }, $arg;#d# 274 Storable::nstore { tree => $self->{tree}, curnode => $self->{curnode}, move => $self->{move} }, $arg;#d#
281} 281}
282 282
283sub event_update_users { 283sub event_update_users {
284 my ($self, $add, $update, $remove) = @_; 284 my ($self, $add, $update, $remove) = @_;
285 285
286 return unless $self->{userlist};
287
288 $self->{userlist}->update ($add, $update, $remove); 286# $self->{userlist}->update ($add, $update, $remove);
287
288 $self->{users_inlay}->refresh;
289 289
290 my %important; 290 my %important;
291 $important{$self->{user1}{name}}++; 291 $important{$self->{user1}{name}}++;
292 $important{$self->{user2}{name}}++; 292 $important{$self->{user2}{name}}++;
293 $important{$self->{user3}{name}}++; 293 $important{$self->{user3}{name}}++;
502 } elsif ($rules->{timesys} == TIMESYS_CANADIAN) { 502 } elsif ($rules->{timesys} == TIMESYS_CANADIAN) {
503 $text .= util::format_time $rules->{time}; 503 $text .= util::format_time $rules->{time};
504 $text .= sprintf " + %s/%d CAN", util::format_time $rules->{interval}, $rules->{count}; 504 $text .= sprintf " + %s/%d CAN", util::format_time $rules->{interval}, $rules->{count};
505 } 505 }
506 506
507 $inlay->clear;
508 $inlay->append_text ("<infoblock>$text</infoblock>"); 507 $inlay->append_text ("<infoblock>$text</infoblock>");
509} 508}
510 509
511sub event_update_rules { 510sub event_update_rules {
512 my ($self, $rules) = @_; 511 my ($self, $rules) = @_;
552 my $rules = $challenge->{rules}; 551 my $rules = $challenge->{rules};
553 552
554 my $as_black = $challenge->{user1}{name} eq $self->{conn}{name}; 553 my $as_black = $challenge->{user1}{name} eq $self->{conn}{name};
555 my $opponent = $as_black ? $challenge->{user2} : $challenge->{user1}; 554 my $opponent = $as_black ? $challenge->{user2} : $challenge->{user1};
556 555
557 $inlay->clear;
558 $inlay->append_text ("\n<challenge>Challenge to <user>" . $opponent->as_string . "</user></challenge>"); 556 $inlay->append_text ("\n<challenge>Challenge to <user>" . $opponent->as_string . "</user></challenge>");
559 $inlay->append_text ("\nHandicap: $rules->{handicap}"); 557 $inlay->append_text ("\nHandicap: $rules->{handicap}");
560 558
561#bless( ( 559#bless( (
562# gametype => 3, 560# gametype => 3,
579# name => 'Nerdamus' 577# name => 'Nerdamus'
580# }, 'KGS::User' ) 578# }, 'KGS::User' )
581# ), 'KGS::Challenge' ) 579# ), 'KGS::Challenge' )
582} 580}
583 581
582sub draw_users {
583 my ($self, $inlay) = @_;
584
585 for (sort keys %{$self->{users}}) {
586 $inlay->append_text (" <user>" . $self->{users}{$_}->as_string . "</user>");
587 }
588}
589
584sub event_challenge { 590sub event_challenge {
585 my ($self, $challenge) = @_; 591 my ($self, $challenge) = @_;
586 592
587 my $as_black = $challenge->{user1}{name} eq $self->{conn}{name}; 593 my $as_black = $challenge->{user1}{name} eq $self->{conn}{name};
588 my $opponent = $as_black ? $challenge->{user2} : $challenge->{user1}; 594 my $opponent = $as_black ? $challenge->{user2} : $challenge->{user1};

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines