--- deliantra/Deliantra-Client/DC/Protocol.pm 2006/06/06 03:13:00 1.25 +++ deliantra/Deliantra-Client/DC/Protocol.pm 2006/06/11 18:36:15 1.29 @@ -400,8 +400,11 @@ sub spell_add { my ($self, $spell) = @_; - # TODO - # create a widget dynamically, using spell face (CF::Protocol downloads them) + # try to create single paragraphs of multiple lines sent by the server + $spell->{message} =~ s/(?<=\S)\n(?=\w)/ /g; + $spell->{message} =~ s/\n+$//; + $spell->{message} ||= "Server did not provide a description for this spell."; + $::SETUP_SPELLS->add_spell ($spell); $self->{map_widget}->add_command ("invoke $spell->{name}", CFClient::UI::Label::escape $spell->{message}); @@ -620,11 +623,30 @@ sub player_update { my ($self, $player) = @_; + $::STATWIDS->{weight}->set_text (sprintf "Weight: %.1fkg", $player->{weight} / 1000); +} + +sub logged_in { + my ($self) = @_; + + $self->send_ext_req (cfplus => "version", "1", sub { + $self->{cfplus_ext} = $_[0]; + }); - # do it here because it is ignored earlier, and there is no "login" event $self->send_command ("output-sync $::CFG->{output_sync}"); $self->send_command ("output-count $::CFG->{output_count}"); + $self->send_command ("pickup $::CFG->{pickup}"); + + my @yesno = ("no", "yes"); + + $::SERVER_INFO->set_markup ( + "server name:port $self->{host}:$self->{port}\n" + . "protocol version $self->{version}\n" + . "mapinfo support $yesno[$self->{setup}{mapinfocmd} > 0]\n" + . "extcmd support $yesno[$self->{setup}{extcmd} > 0]\n" + . "cfplus support $yesno[$self->{cfplus_ext} > 0]\n" + ); } 1;