--- deliantra/server/lib/cf.pm 2007/07/23 23:38:17 1.317 +++ deliantra/server/lib/cf.pm 2007/07/24 04:55:34 1.318 @@ -2870,23 +2870,24 @@ while (my ($name, $info) = each %$res) { my $meta = $enc->encode ({ name => $name, - type => $info->{type}, copyright => $info->{copyright}, #TODO# }); my $idx = (cf::face::find $name) || cf::face::alloc $name; - if ($name =~ /\.(?:jpg|png)$/) { - cf::face::set_data $idx, 0, $info->{data}, $info->{chksum};#d# temp hack - cf::face::set_data $idx, 1, $info->{data}, $info->{chksum};#d# temp hack - } else { + if ($info->{type} & 1) { + # prepend meta info + my $data = pack "(w/a*)*", $meta, $info->{data}; my $chk = Digest::MD5::md5 "$info->{chksum},$meta"; # mangle data checksum and metadata - cf::face::set_type $idx, 1; cf::face::set_data $idx, 0, $data, $chk; + } else { + cf::face::set_data $idx, 0, $info->{data}, $info->{chksum}; } + cf::face::set_type $idx, $info->{type}; + cf::cede_to_tick; } } @@ -2894,6 +2895,14 @@ 1 } +register_exticmd fx_want => sub { + my ($ns, $want) = @_; + + while (my ($k, $v) = each %$want) { + $ns->fx_want ($k, $v); + } +}; + sub reload_regions { load_resource_file "$MAPDIR/regions" or die "unable to load regions file\n";