--- deliantra/Deliantra-Client/DC/Protocol.pm 2007/07/29 18:56:02 1.140 +++ deliantra/Deliantra-Client/DC/Protocol.pm 2007/08/06 02:11:45 1.145 @@ -23,7 +23,7 @@ setup_req => { extmap => 1, excmd => 1, - ywidget => 1,#d# + xwidget => 1,#d# %{$arg{setup_req} || {}}, }, ); @@ -50,11 +50,9 @@ } sort { $a->{par} <=> $b->{par} } CFPlus::Pod::find command => "*"; - $self->connect_ext (music => sub { - my ($ev) = @_; - - &::audio_music_set ($self->{songs} = $ev->{play}) - if $ev->{play}; + $self->connect_ext (ambient_music => sub { + my ($songs) = @_; + &::audio_music_set_ambient ($songs); }); $self->connect_ext (capabilities => sub { @@ -230,23 +228,7 @@ sub logprint { my ($self, @a) = @_; - $self->{log_fh} ||= do { - my $path = "$Crossfire::VARDIR/log.$self->{host}"; - - open my $fh, ">>:utf8", $path - or die "Couldn't open logfile $path: $!"; - - $fh->autoflush (1); - - $fh; - }; - - my ($sec, $min, $hour, $mday, $mon, $year) = localtime time; - - my $ts = sprintf "%04d-%02d-%02d %02d:%02d:%02d", - $year + 1900, $mon + 1, $mday, $hour, $min, $sec; - - print {$self->{log_fh}} "$ts ", @a, "\n"; + CFPlus::DB::logprint "$Crossfire::VARDIR/log.$self->{host}" => (join "", @a), sub { }; } sub _stat_numdiff { @@ -760,32 +742,32 @@ ::message ({ markup => "downloaded song #$facenum" }) if $changed; - &::audio_music_set ($self->{songs}); + &::audio_music_push ($facenum); }; } elsif ($face->{type} == 5) { # FT_SOUND $cb = sub { $self->{sound_meta}{$facenum} = $face; - use Data::Dumper; warn Dumper $face;#d# ::message ({ markup => "downloaded sound #$facenum" }) if $changed; + + &::audio_sound_push ($facenum); }; } - if ($changed) { # new data my ($meta_json, $data) = unpack "(w/a*)*", delete $face->{data}; - CFPlus::DB::put res_data => $face->{name} => $data, sub { - CFPlus::DB::put res_meta => $face->{name} => $meta_json, sub { - $face->{meta} = $self->{json_coder}->decode ($meta_json); - - $cb->(); - }; + CFPlus::DB::put res_data => $face->{name} => $data, sub { }; + CFPlus::DB::put res_meta => $face->{name} => $meta_json, sub { + $face->{meta} = $self->{json_coder}->decode ($meta_json); + ::add_license ($face); + $cb->(); }; } else { $face->{meta} = $self->{json_coder}->decode (delete $face->{data}); + ::add_license ($face); $cb->(); } } @@ -825,10 +807,10 @@ } sub sound_play { - my ($self, $x, $y, $soundnum, $type) = @_; - warn "sound play <@_>\n";#d# + my ($self, $type, $face, $dx, $dy, $vol) = @_; - #$self->{sound_play}->($x, $y, $soundnum, $type); + &::audio_sound_play ($face, $dx, $dy, $vol) + unless $type & 1; # odd types are silent for future expansion } my $LAST_QUERY; # server is stupid, stupid, stupid