--- cfmaps/cfmap2html 2005/11/22 17:54:41 1.19 +++ cfmaps/cfmap2html 2007/10/14 01:24:15 1.31 @@ -1,7 +1,7 @@ #!/opt/bin/perl # cfmap2html - convert crossfire maps to html -# Copyright (C) 2005 Marc Lehmann +# Copyright (C) 2005,2007 Marc Lehmann # # CFMAP2HTML is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -14,174 +14,196 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with gvpe; if not, write to the Free Software +# along with cfmaps; if not, write to the Free Software # Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -our $VERSION = '1.2'; +our $VERSION = '2.1'; -use Storable; +use strict; -my $LIBDIR = $ENV{CROSSFIRE_LIBDIR} - or die "\$CROSSFIRE_LIBDIR must be set\n"; +use List::Util qw(min max); +use Crossfire 1.0; my $T = 32; -my $arch; - sub escape_html($) { local $_ = shift; s/([<>&])/sprintf "&#%d;", ord $1/ge; $_ } +my @cfmap2png; + for my $path (@ARGV) { + (my $base = $path) =~ s/\.map//; # print STDERR "$path\n"; - if (!-e "$path.png" - || !-e "$path.pst" - || -M "$path.pst" > -M $path - || -M "$path.png" > -M $path) { + if (!-e "$base.png" + || -M "$base.png" > -M "$base.map") { # regenerate png and metainfo + push @cfmap2png, $path; + } +} - system "cfmap2png", $path; - }; - - $arch ||= Storable::retrieve "$LIBDIR/archetypes.pst"; - my $meta = Storable::retrieve "$path.pst"; - - open my $fh, ">:utf8", "$path.xhtml" - or die "$path.xhtml: $!"; +system "cfmap2png", @cfmap2png + if @cfmap2png; - select $fh; - - my $W = $meta->{width} * $T; - my $H = $meta->{height} * $T; - - my $W2 = $W + 600; - - my (@path) = split /\//, $path; - - print "", - '', - "", - "", - "Crossfire Map \"$path\"", - "\n", - "\n", - "\n", - "", - "", - ""; - - print "", - "", + "

"; - close $fh; + close $fh; - #system "gzip", "-7f", "$path.xhtml"; + #system "gzip", "-7f", "$path.xhtml"; + } }