--- deliantra/server/lib/cf.pm 2007/07/24 04:55:34 1.318 +++ deliantra/server/lib/cf.pm 2007/07/27 10:10:51 1.322 @@ -2520,7 +2520,7 @@ # send meta info to client, if not yet sent unless (exists $self->{channel}{$channel->{id}}) { $self->{channel}{$channel->{id}} = $channel; - $self->ext_msg (channel_info => %$channel); + $self->ext_msg (channel_info => $channel); } $channel = $channel->{id}; @@ -2867,10 +2867,12 @@ my $res = $facedata->{resource}; my $enc = JSON::XS->new->utf8->canonical; + my $soundconf = delete $res->{"res/sound.conf"}; + while (my ($name, $info) = each %$res) { my $meta = $enc->encode ({ - name => $name, - copyright => $info->{copyright}, #TODO# + name => $name, + %{ $info->{meta} || {} }, }); my $idx = (cf::face::find $name) || cf::face::alloc $name; @@ -2890,6 +2892,22 @@ cf::cede_to_tick; } + + if ($soundconf) { + $soundconf = $enc->decode (delete $soundconf->{data}); + + for (0 .. SOUND_CAST_SPELL_0 - 1) { + my $sound = $soundconf->{compat}[$_] + or next; + + my $face = cf::face::find "sound/$sound->[1]"; + + cf::sound::set $sound->[0] => $face; + cf::sound::old_sound_index $_, $face; # gcfclient-compat + } + + #TODO + } } 1