ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/DC/Protocol.pm
(Generate patch)

Comparing deliantra/Deliantra-Client/DC/Protocol.pm (file contents):
Revision 1.115 by root, Thu Jul 12 19:10:52 2007 UTC vs.
Revision 1.119 by root, Sat Jul 14 12:05:53 2007 UTC

66 66
67 $chksum = unpack "H*", $chksum; 67 $chksum = unpack "H*", $chksum;
68 $self->{music_map}{$face} = $chksum; 68 $self->{music_map}{$face} = $chksum;
69 69
70 # check if already cached 70 # check if already cached
71 CFPlus::DB::get resmap => $chksum, sub { 71 CFPlus::DB::get "res-metadata" => $chksum, sub {
72 my ($meta) = @_; 72 my ($meta_json) = @_;
73 73
74 if (defined $meta) { 74 if (defined $meta_json) {
75 $self->{music_meta}{$chksum} = $self->{json_coder}->decode ($meta); 75 my $meta = $self->{json_coder}->decode ($meta_json);
76 $meta->{path} = CFPlus::DB::path_of_res $chksum;
77 $self->{music_meta}{$chksum} = $meta;
76 } else { 78 } else {
77 ::message ({ markup => "starting to download song #$face/$pri, check your output-rate setting if your connection gets laggy." }); 79 ::message ({ markup => "starting to download song #$face/$pri, check your output-rate setting if your connection gets laggy." });
78 $self->ask_face ($face, -100 - $pri, undef, sub { 80 $self->ask_face ($face, -100 - $pri, undef, sub {
79 my $len = length $_[1]; 81 my $len = length $_[1];
80 my ($meta, $data) = unpack "(w/a*)*", $_[1]; 82 my ($meta_json, $data) = unpack "(w/a*)*", $_[1];
81 83
84 my $meta = $self->{json_coder}->decode ($meta_json);
85 $meta->{path} = CFPlus::DB::path_of_res $chksum;
86 $self->{music_meta}{$chksum} = $meta;
87
82 CFPlus::DB::write_file $chksum, $data, sub { }; 88 CFPlus::DB::write_file $meta->{path}, $data, sub { };
83 CFPlus::DB::put resmap => $chksum => $meta, sub { }; 89 CFPlus::DB::put "res-metadata" => $chksum => $meta_json, sub { };
84 90
85 $self->{music_meta}{$chksum} = $self->{json_coder}->decode ($meta);
86 ::message ({ markup => "downloaded song #$face, size $len octets" }); 91 ::message ({ markup => "downloaded song #$face, size $len octets" });
87
88 &::audio_music_set ($self->{songs});
89 }); 92 });
90 } 93 }
94
95 &::audio_music_set ($self->{songs});
91 } 96 }
92 } 97 }
93 } 98 }
94 99
95 if (my $play = $ev->{play}) { 100 if (my $play = $ev->{play}) {
96 &::audio_music_set ($self->{songs} = [map $self->{music_map}{$_}, @$play]); 101 &::audio_music_set ($self->{songs} = [map $self->{music_map}{$_}, @$play]);
97 use Data::Dumper;
98 warn Dumper $self->{songs};#d#
99 } 102 }
100 }); 103 });
101 104
102 $self->connect_ext (event_capabilities => sub { 105 $self->connect_ext (event_capabilities => sub {
103 my ($cap) = @_; 106 my ($cap) = @_;
761} 764}
762 765
763sub set_texture { 766sub set_texture {
764 my ($self, $id, $data) = @_; 767 my ($self, $id, $data) = @_;
765 768
769 return unless $self->{map};
770
766 $self->{texture}[$id] = my $tex = 771 $self->{texture}[$id] = my $tex =
767 new_from_image CFPlus::Texture 772 new_from_image CFPlus::Texture
768 $data, minify => 1, mipmap => 1; 773 $data, minify => 1, mipmap => 1;
769 774
770 $self->{map}->set_texture ($id, @$tex{qw(name w h s t)}, @{$tex->{minified}}); 775 $self->{map}->set_texture ($id, @$tex{qw(name w h s t)}, @{$tex->{minified}});

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines