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.72 by pcg, Fri Jul 25 03:50:33 2003 UTC vs.
Revision 1.73 by pcg, Fri Jul 25 17:35:20 2003 UTC

263 263
264 $vbox->pack_start((my $hbox = new Gtk2::HBox 1), 0, 1, 0); 264 $vbox->pack_start((my $hbox = new Gtk2::HBox 1), 0, 1, 0);
265 $hbox->add (($self->{userpanel}[WHITE] = new game::userpanel colour => WHITE)->widget); 265 $hbox->add (($self->{userpanel}[WHITE] = new game::userpanel colour => WHITE)->widget);
266 $hbox->add (($self->{userpanel}[BLACK] = new game::userpanel colour => BLACK)->widget); 266 $hbox->add (($self->{userpanel}[BLACK] = new game::userpanel colour => BLACK)->widget);
267 267
268 $vbox->pack_start(($self->{text} = new chat), 1, 1, 0); 268 $vbox->pack_start(($self->{chat} = new chat), 1, 1, 0);
269
270 $self->{chat}->signal_connect(command => sub {
271 my ($chat, $cmd, $arg) = @_;
272 if ($cmd eq "rsave") {
273 Storable::nstore { tree => $self->{tree}, curnode => $self->{curnode}, move => $self->{move} }, $arg;#d#
274 } else {
275 $self->{app}->do_command ($chat, $cmd, $arg, userlist => $self->{userlist}, game => $self);
276 }
277 });
269 278
270 $self->event_update_game; 279 $self->event_update_game;
271 $self; 280 $self;
272} 281}
273 282
282 $important{$self->{user1}{name}}++; 291 $important{$self->{user1}{name}}++;
283 $important{$self->{user2}{name}}++; 292 $important{$self->{user2}{name}}++;
284 $important{$self->{user3}{name}}++; 293 $important{$self->{user3}{name}}++;
285 294
286 if (my @users = grep $important{$_->{name}}, @$add) { 295 if (my @users = grep $important{$_->{name}}, @$add) {
287 $self->{text}->append_text ("\n<header>Joins:</header>"); 296 $self->{chat}->append_text ("\n<header>Joins:</header>");
288 $self->{text}->append_text (" <user>" . $_->as_string . "</user>") for @users; 297 $self->{chat}->append_text (" <user>" . $_->as_string . "</user>") for @users;
289 } 298 }
290 if (my @users = grep $important{$_->{name}}, @$remove) { 299 if (my @users = grep $important{$_->{name}}, @$remove) {
291 $self->{text}->append_text ("\n<header>Parts:</header>"); 300 $self->{chat}->append_text ("\n<header>Parts:</header>");
292 $self->{text}->append_text (" <user>" . $_->as_string . "</user>") for @users; 301 $self->{chat}->append_text (" <user>" . $_->as_string . "</user>") for @users;
293 } 302 }
294 303
295} 304}
296 305
297sub join { 306sub join {
387 }sgexi; 396 }sgexi;
388 397
389 $text .= $_; 398 $text .= $_;
390 } 399 }
391 400
392 $self->{text}->append_text ($text); 401 $self->{chat}->append_text ($text);
393} 402}
394 403
395sub event_join { 404sub event_join {
396 my ($self) = @_; 405 my ($self) = @_;
397 $self->SUPER::event_join; 406 $self->SUPER::event_join;
471 $text .= "</infoblock>"; 480 $text .= "</infoblock>";
472 481
473 $self->{gatext} = \@ga; 482 $self->{gatext} = \@ga;
474 }; 483 };
475 484
476 $self->{text}->append_text ($text); 485 $self->{chat}->append_text ($text);
477} 486}
478 487
479sub event_update_rules { 488sub event_update_rules {
480 my ($self, $rules) = @_; 489 my ($self, $rules) = @_;
481 490
501 } elsif ($rules->{timesys} == TIMESYS_CANADIAN) { 510 } elsif ($rules->{timesys} == TIMESYS_CANADIAN) {
502 $text .= util::format_time $rules->{time}; 511 $text .= util::format_time $rules->{time};
503 $text .= sprintf " + %s/%d CAN", util::format_time $rules->{interval}, $rules->{count}; 512 $text .= sprintf " + %s/%d CAN", util::format_time $rules->{interval}, $rules->{count};
504 } 513 }
505 514
506 $self->{text}->append_text ("<infoblock>$text</infoblock>"); 515 $self->{chat}->append_text ("<infoblock>$text</infoblock>");
507} 516}
508 517
509sub inject_resign_game { 518sub inject_resign_game {
510 my ($self, $msg) = @_; 519 my ($self, $msg) = @_;
511 520
512 sound::play 3, "resign"; 521 sound::play 3, "resign";
513 522
514 $self->{text}->append_text ("\n<infoblock><header>Resign</header>" 523 $self->{chat}->append_text ("\n<infoblock><header>Resign</header>"
515 . "\n<user>" 524 . "\n<user>"
516 . (util::toxml $self->{user}[$msg->{player}]->as_string) 525 . (util::toxml $self->{user}[$msg->{player}]->as_string)
517 . "</user> resigned.</infoblock>"); 526 . "</user> resigned.</infoblock>");
518} 527}
519 528
520sub inject_final_result { 529sub inject_final_result {
521 my ($self, $msg) = @_; 530 my ($self, $msg) = @_;
522 531
523 $self->{text}->append_text ("<infoblock>\n<header>Game Over</header>" 532 $self->{chat}->append_text ("<infoblock>\n<header>Game Over</header>"
524 . "\nWhite Score " . (util::toxml $msg->{whitescore}->as_string) 533 . "\nWhite Score " . (util::toxml $msg->{whitescore}->as_string)
525 . "\nBlack Score " . (util::toxml $msg->{blackscore}->as_string) 534 . "\nBlack Score " . (util::toxml $msg->{blackscore}->as_string)
526 . "</infoblock>" 535 . "</infoblock>"
527 ); 536 );
528} 537}
529 538
530sub event_challenge { 539sub event_challenge {
531 my ($self, $challenge) = @_; 540 my ($self, $challenge) = @_;
532 541
533 use KGS::Listener::Debug; 542 use KGS::Listener::Debug;
534 $self->{text}->append_text ("\n".KGS::Listener::Debug::dumpval($challenge)); 543 $self->{chat}->append_text ("\n".KGS::Listener::Debug::dumpval($challenge));
535} 544}
536 545
537sub destroy { 546sub destroy {
538 my ($self) = @_; 547 my ($self) = @_;
539 548

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines