ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/lib/cf.pm
(Generate patch)

Comparing deliantra/server/lib/cf.pm (file contents):
Revision 1.605 by root, Sat Nov 17 11:03:28 2012 UTC vs.
Revision 1.611 by root, Tue Nov 20 14:54:17 2012 UTC

3042 3042
3043=head3 cf::client 3043=head3 cf::client
3044 3044
3045=over 4 3045=over 4
3046 3046
3047=item $client->send_drawinfo ($text, $flags)
3048
3049Sends a drawinfo packet to the client. Circumvents output buffering so
3050should not be used under normal circumstances.
3051
3052=cut
3053
3054sub cf::client::send_drawinfo {
3055 my ($self, $text, $flags) = @_;
3056
3057 utf8::encode $text;
3058 $self->send_packet (sprintf "drawinfo %d %s", $flags || cf::NDI_BLACK, $text);
3059}
3060
3061=item $client->send_big_packet ($pkt) 3047=item $client->send_big_packet ($pkt)
3062 3048
3063Like C<send_packet>, but tries to compress large packets, and fragments 3049Like C<send_packet>, but tries to compress large packets, and fragments
3064them as required. 3050them as required.
3065 3051
3083 $self->send_packet ($pkt); 3069 $self->send_packet ($pkt);
3084} 3070}
3085 3071
3086=item $client->send_msg ($channel, $msg, $color, [extra...]) 3072=item $client->send_msg ($channel, $msg, $color, [extra...])
3087 3073
3088Send a drawinfo or msg packet to the client, formatting the msg for the 3074Send a msg packet to the client, formatting the msg for the client if
3089client if neccessary. C<$type> should be a string identifying the type of 3075necessary. C<$type> should be a string identifying the type of the
3090the message, with C<log> being the default. If C<$color> is negative, suppress 3076message, with C<log> being the default. If C<$color> is negative, suppress
3091the message unless the client supports the msg packet. 3077the message unless the client supports the msg packet.
3092 3078
3093=cut 3079=cut
3094 3080
3095# non-persistent channels (usually the info channel) 3081# non-persistent channels (usually the info channel)
3290 if @{ $self->{query_queue} } == 1; 3276 if @{ $self->{query_queue} } == 1;
3291 3277
3292 1 3278 1
3293} 3279}
3294 3280
3281=item $client->update_command_faces
3282
3283=cut
3284
3285our %COMMAND_FACE;
3286
3287sub cf::client::update_command_faces {
3288 my ($self) = @_;
3289
3290 my @faces = grep $_,
3291 $COMMAND_FACE{standard},
3292 $COMMAND_FACE{emote},
3293 $COMMAND_FACE{skill},
3294 $self->pl->ob->flag (cf::FLAG_WIZ) ? $COMMAND_FACE{dm} : (),
3295 ;
3296
3297 $self->send_face ($_)
3298 for @faces;
3299 $self->flush_fx;
3300
3301 $self->ext_msg (command_list => @faces);
3302}
3303
3304=item cf::client::set_command_face $type, $commands
3305
3306=cut
3307
3308sub cf::client::set_command_face {
3309 my ($type, $list) = @_;
3310
3311 my $idx = &cf::face::set ( #d# ugly forward reference
3312 "command_list/$type" => cf::FT_RSRC,
3313 JSON::XS->new->utf8->encode ([ sort @$list ])
3314 );
3315
3316 $COMMAND_FACE{$type} = $idx;
3317}
3318
3295cf::client->attach ( 3319cf::client->attach (
3296 on_connect => sub { 3320 on_connect => sub {
3297 my ($ns) = @_; 3321 my ($ns) = @_;
3298 3322
3299 $ns->{json_coder} = JSON::XS->new->utf8->max_size (1e6)->convert_blessed; 3323 $ns->{json_coder} = JSON::XS->new->utf8->max_size (1e6)->convert_blessed;
3763 cf::face::set 3787 cf::face::set
3764 "res/spell_paths" => FT_RSRC, 3788 "res/spell_paths" => FT_RSRC,
3765 JSON::XS->new->utf8->canonical->encode ( 3789 JSON::XS->new->utf8->canonical->encode (
3766 [map [cf::spellpathnames ($_)], 0 .. NRSPELLPATHS - 1] 3790 [map [cf::spellpathnames ($_)], 0 .. NRSPELLPATHS - 1]
3767 ); 3791 );
3792
3793 # command completion
3794 my @commands;
3795
3796 for (0..cf::arch::skillvec_size - 1) {
3797 my $skill = cf::arch::skillvec $_;
3798 my $name = $skill->name;
3799 my $flags = cf::skill_flags $skill->subtype;
3800
3801 push @commands, "ready_skill $name" if $flags & (SF_COMBAT | SF_RANGED | SF_GRACE);
3802 push @commands, "use_skill $name" if $flags & (SF_USE | SF_AUTARK | SF_GRACE);
3803 }
3804
3805 cf::client::set_command_face skill => \@commands;
3768} 3806}
3769 3807
3770sub reload_treasures { 3808sub reload_treasures {
3771 load_resource_file "$DATADIR/treasures" 3809 load_resource_file "$DATADIR/treasures"
3772 or die "unable to load treasurelists\n"; 3810 or die "unable to load treasurelists\n";

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines