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

Comparing deliantra/Deliantra/Deliantra.pm (file contents):
Revision 1.59 by root, Sun Mar 26 11:52:31 2006 UTC vs.
Revision 1.60 by root, Mon Mar 27 17:23:35 2006 UTC

628 cache_file "$LIB/crossfire.0", "$VARDIR/tilecache.pst", sub { 628 cache_file "$LIB/crossfire.0", "$VARDIR/tilecache.pst", sub {
629 $TILE = new_from_file Gtk2::Gdk::Pixbuf "$VARDIR/tilecache.png" 629 $TILE = new_from_file Gtk2::Gdk::Pixbuf "$VARDIR/tilecache.png"
630 or die "$VARDIR/tilecache.png: $!"; 630 or die "$VARDIR/tilecache.png: $!";
631 *FACE = $_[0]; 631 *FACE = $_[0];
632 }, sub { 632 }, sub {
633 require File::Temp;
634
635 my $tile = read_pak "$LIB/crossfire.0"; 633 my $tile = read_pak "$LIB/crossfire.0";
636 634
637 my %cache; 635 my %cache;
638 636
639 my $idx = 0; 637 my $idx = 0;
640 638
641 for my $name (sort keys %$tile) { 639 for my $name (sort keys %$tile) {
642 my ($fh, $filename) = File::Temp::tempfile (); 640 my $pb = new Gtk2::Gdk::PixbufLoader;
643 print $fh $tile->{$name}; 641 $pb->write ($tile->{$name});
644 close $fh; 642 $pb->close;
645 my $pb = new_from_file Gtk2::Gdk::Pixbuf $filename; 643 my $pb = $pb->get_pixbuf;
646 unlink $filename;
647 644
648 my $tile = $cache{$name} = { 645 my $tile = $cache{$name} = {
649 pb => $pb, 646 pb => $pb,
650 idx => $idx, 647 idx => $idx,
651 w => int $pb->get_width / TILESIZE, 648 w => int $pb->get_width / TILESIZE,
669 $pb, ($idx % 64) * TILESIZE, TILESIZE * int $idx / 64); 666 $pb, ($idx % 64) * TILESIZE, TILESIZE * int $idx / 64);
670 } 667 }
671 } 668 }
672 } 669 }
673 670
674 $pb->save ("$VARDIR/tilecache.png", "png"); 671 $pb->save ("$VARDIR/tilecache.png", "png", compression => 1);
675 672
676 \%cache 673 \%cache
677 }; 674 };
678} 675}
679 676

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines