ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cfmaps/cfmap2html
(Generate patch)

Comparing cfmaps/cfmap2html (file contents):
Revision 1.24 by root, Wed Feb 14 02:51:42 2007 UTC vs.
Revision 1.28 by root, Thu Jun 21 01:11:44 2007 UTC

12# but WITHOUT ANY WARRANTY; without even the implied warranty of 12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details. 14# GNU General Public License for more details.
15# 15#
16# You should have received a copy of the GNU General Public License 16# You should have received a copy of the GNU General Public License
17# along with gvpe; if not, write to the Free Software 17# along with cfmaps; if not, write to the Free Software
18# Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18# Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 19
20our $VERSION = '1.212'; 20our $VERSION = '2.001';
21 21
22use Storable; 22use Crossfire 1.0;
23
24my $LIBDIR = $ENV{CROSSFIRE_LIBDIR}
25 or die "\$CROSSFIRE_LIBDIR must be set\n";
26 23
27my $T = 32; 24my $T = 32;
28 25
29my $arch; 26my $arch;
30 27
32 local $_ = shift; 29 local $_ = shift;
33 s/([<>&])/sprintf "&#%d;", ord $1/ge; 30 s/([<>&])/sprintf "&#%d;", ord $1/ge;
34 $_ 31 $_
35} 32}
36 33
34my @cfmap2png;
35
37for my $path (@ARGV) { 36for my $path (@ARGV) {
38 (my $base = $path) =~ s/\.map//; 37 (my $base = $path) =~ s/\.map//;
39# print STDERR "$path\n"; 38# print STDERR "$path\n";
40 39
41 if (!-e "$base.png" 40 if (!-e "$base.png"
42 || !-e "$base.pst" 41 || !-e "$base.pst"
43 || -M "$base.pst" > -M $path 42 || -M "$base.pst" > -M $path
44 || -M "$base.png" > -M $path) { 43 || -M "$base.png" > -M $path) {
45 # regenerate png and metainfo 44 # regenerate png and metainfo
45 push @cfmap2png, $path;
46 };
47}
46 48
47 system "cfmap2png", $path; 49system "cfmap2png", @cfmap2png
48 }; 50 if @cfmap2png;
49 51
52for my $path (@ARGV) {
53 (my $base = $path) =~ s/\.map//;
50 if (!-e "$base.xhtml" 54 if (!-e "$base.xhtml"
51 || -M "$base.xhtml" > -M "$base.pst") { 55 || -M "$base.xhtml" > -M "$base.pst") {
52 $arch ||= Storable::retrieve "$LIBDIR/archetypes.pst"; 56
57 Crossfire::load_archetypes
58 unless %ARCH;
59
53 my $meta = Storable::retrieve "$base.pst"; 60 my $meta = Storable::retrieve "$base.pst";
54 61
55 open my $fh, ">:utf8", "$path.xhtml" 62 open my $fh, ">:utf8", "$base.xhtml"
56 or die "$path.xhtml: $!"; 63 or die "$base.xhtml: $!";
57 64
58 select $fh; 65 select $fh;
59 66
60 my $W = $meta->{width} * $T; 67 my $W = $meta->{width} * $T;
61 my $H = $meta->{height} * $T; 68 my $H = $meta->{height} * $T;
62 69
63 my $W2 = $W + 600; 70 my $W2 = $W + 600;
64 71
65 my (@path) = split /\//, $path; 72 my (@path) = split /\//, $base;
66 73
67 print "<?xml version='1.0' encoding='utf-8'?>", 74 print "<?xml version='1.0' encoding='utf-8'?>",
68 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">', 75 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',
69 "<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>", 76 "<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>",
70 "<head>", 77 "<head>",
113 escape_html $meta->{info}{msg}, 120 escape_html $meta->{info}{msg},
114 "</p>"; 121 "</p>";
115 122
116 print "<table class='map'>"; 123 print "<table class='map'>";
117 124
118 my %ignore = map +($_ => 1), qw(name _name x y); 125 my %ignore = map +($_ => 1), qw(name _name _atype x y);
119 my %is_exit = map +($_ => 1), 41, 57, 66; 126 my %is_exit = map +($_ => 1), 41, 57, 66;
120 127
121 for my $y (0.. $meta->{height} - 1) { 128 for my $y (0.. $meta->{height} - 1) {
122 print "<tr>"; 129 print "<tr>";
123 for my $x (0.. $meta->{width} - 1) { 130 for my $x (0.. $meta->{width} - 1) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines