--- deliantra/Deliantra-Client/DC/Protocol.pm 2007/07/14 13:04:42 1.120 +++ deliantra/Deliantra-Client/DC/Protocol.pm 2007/07/15 22:07:48 1.122 @@ -76,6 +76,7 @@ my $meta = $self->{json_coder}->decode ($meta_json); $meta->{path} = $path; $self->{music_meta}{$chksum} = $meta; + &::audio_music_set ($self->{songs}); } else { ::message ({ markup => "starting to download song #$face/$pri, check your output-rate setting if your connection gets laggy." }); $self->ask_face ($face, -100 - $pri, undef, sub { @@ -775,6 +776,20 @@ $self->{map}->set_texture ($id, @$tex{qw(name w h s t)}, @{$tex->{minified}}); $self->{map_widget}->update; + + $_->() for @{(delete $self->{face_cb}{$id}) || []}; +} + +sub connect_face_update { + my ($self, $id, $cb) = @_; + + push @{$self->{face_cb}{$id}}, $cb; + + CFPlus::guard { + @{$self->{face_cb}{$id}} + = grep $_ != $cb, + @{$self->{face_cb}{$id}}; + } } sub sound_play {