… | |
… | |
4 | |
4 | |
5 | =cut |
5 | =cut |
6 | |
6 | |
7 | package Crossfire; |
7 | package Crossfire; |
8 | |
8 | |
9 | our $VERSION = '0.9'; |
9 | our $VERSION = '0.96'; |
10 | |
10 | |
11 | use strict; |
11 | use strict; |
12 | |
12 | |
13 | use base 'Exporter'; |
13 | use base 'Exporter'; |
14 | |
14 | |
… | |
… | |
33 | JSON::Syck::Dump $_[0] |
33 | JSON::Syck::Dump $_[0] |
34 | } |
34 | } |
35 | |
35 | |
36 | our $LIB = $ENV{CROSSFIRE_LIBDIR}; |
36 | our $LIB = $ENV{CROSSFIRE_LIBDIR}; |
37 | |
37 | |
38 | our $VARDIR = $ENV{HOME} ? "$ENV{HOME}/.crossfire" : File::Spec->tmpdir . "/crossfire"; |
38 | our $VARDIR = $ENV{HOME} ? "$ENV{HOME}/.crossfire" |
|
|
39 | : $ENV{AppData} ? "$ENV{APPDATA}/crossfire" |
|
|
40 | : File::Spec->tmpdir . "/crossfire"; |
39 | |
41 | |
40 | mkdir $VARDIR, 0777; |
42 | mkdir $VARDIR, 0777; |
41 | |
43 | |
42 | sub TILESIZE (){ 32 } |
44 | sub TILESIZE (){ 32 } |
43 | |
45 | |
… | |
… | |
600 | my ($a) = @_; |
602 | my ($a) = @_; |
601 | |
603 | |
602 | my $o = $ARCH{$a->{_name}} |
604 | my $o = $ARCH{$a->{_name}} |
603 | or return; |
605 | or return; |
604 | |
606 | |
605 | my $face = $FACE{$a->{face} || $o->{face} || "blank.111"} |
607 | my $face = $FACE{$a->{face} || $o->{face} || "blank.111"}; |
|
|
608 | unless ($face) { |
|
|
609 | $face = $FACE{"blank.x11"} |
606 | or (warn "no face data found for arch '$a->{_name}'"), return; |
610 | or (warn "no face data found for arch '$a->{_name}'"), return; |
|
|
611 | } |
607 | |
612 | |
608 | if ($face->{w} > 1 || $face->{h} > 1) { |
613 | if ($face->{w} > 1 || $face->{h} > 1) { |
609 | # bigface |
614 | # bigface |
610 | return (0, 0, $face->{w} - 1, $face->{h} - 1); |
615 | return (0, 0, $face->{w} - 1, $face->{h} - 1); |
611 | |
616 | |