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

Comparing cfmaps/cfmap2html (file contents):
Revision 1.13 by root, Sun Nov 20 08:04:19 2005 UTC vs.
Revision 1.21 by root, Wed Nov 23 09:07:21 2005 UTC

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 gvpe; 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.2'; 20our $VERSION = '1.21';
21 21
22use Storable; 22use Storable;
23 23
24my $LIBDIR = $ENV{CROSSFIRE_LIBDIR} 24my $LIBDIR = $ENV{CROSSFIRE_LIBDIR}
25 or die "\$CROSSFIRE_LIBDIR must be set\n"; 25 or die "\$CROSSFIRE_LIBDIR must be set\n";
60 my $W2 = $W + 600; 60 my $W2 = $W + 600;
61 61
62 my (@path) = split /\//, $path; 62 my (@path) = split /\//, $path;
63 63
64 print "<?xml version='1.0' encoding='utf-8'?>", 64 print "<?xml version='1.0' encoding='utf-8'?>",
65 "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">", 65 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',
66 "<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>", 66 "<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>",
67 "<head>", 67 "<head>",
68 "<title>Crossfire Map \"$path\"</title>", 68 "<title>Crossfire Map \"$path\"</title>",
69 "<link rel='stylesheet' type='text/css' media='all' href='/common.css'/>\n", 69 "<link rel='stylesheet' type='text/css' media='all' href='/common.css'/>\n",
70 "<link rel='stylesheet' type='text/css' media='all' href='/overlay.css' title='Show Overlays'/>\n", 70 "<link rel='stylesheet' type='text/css' media='all' href='/overlay.css' title='Show Overlays'/>\n",
119 print "<tr>"; 119 print "<tr>";
120 for my $x (0.. $meta->{width} - 1) { 120 for my $x (0.. $meta->{width} - 1) {
121 if (my $as = $meta->{map}[$x][$y]) { 121 if (my $as = $meta->{map}[$x][$y]) {
122 my @class; 122 my @class;
123 123
124 push @class, "fishy" if grep $_->{invisible} || $_->{face} || exists $_->{no_pass}, @$as; 124 push @class, "fishy" if grep $_->{invisible} || $_->{face} || exists $_->{no_pass} || exists $_->{no_pick}, @$as;
125 push @class, "exit" if grep $is_exit{$arch->{$_->{_name}}{type}}, @$as; 125 push @class, "exit" if grep $is_exit{$arch->{$_->{_name}}{type}} && $_->{slaying}, @$as;
126 126 push @class, "dialog" if grep $_->{msg} =~ /^\@match/m, @$as;
127 my @connected = grep $_, map $_->{connected}, @$as;
128 127
129 print "<td", (@class ? " class='" . (join " ", @class) . "'" : ""), ">"; 128 print "<td", (@class ? " class='" . (join " ", @class) . "'" : ""), ">";
130 print "<div>"; 129 print "<div>";
131 print "<span class='c'>", (join ", ", @connected), "</span>" if @connected; 130
131 print join "\n", map "<span class='c'>$_</span>",
132 reverse sort { (length $a) <=> (length $b) or $b <=> $a }
133 grep $_, map $_->{connected}, @$as;
134
132 print "<div>($x|$y)"; 135 print "<div>($x|$y)";
133 136
134 sub print_archs { 137 sub print_archs {
135 print "<ul>"; 138 print "<ul>";
136 for my $a (@{$_[0]}) { 139 for my $a (@{$_[0]}) {
137 my $o = $arch->{$a->{_name}}; 140 my $o = $arch->{$a->{_name}};
138 my $type = $a->{type} || $o->{type}; 141 my $type = $a->{type} || $o->{type};
139 my $aname = escape_html $a->{_name}; 142 my $aname = escape_html $a->{_name};
140 my $name = escape_html $a->{name} || $o->{name}; 143 my $name = escape_html $a->{name} || $o->{name};
141 144
142 print "<li><a href='/arc.xhtml#", (lc $a->{_name}), "'>$aname \"$name\"</a>\n"; 145 print "<li><a href='/a/$a->{_name}'>$aname \"$name\"</a>\n";
143 for (sort keys %$a) { 146 for (sort keys %$a) {
144 next if $ignore{$_}; 147 next if $ignore{$_};
145 my $v = escape_html $a->{$_}; 148 my $v = escape_html $a->{$_};
146 149
147 if ($_ eq "slaying" && $is_exit{$type}) { # door, teleporter, player_changer 150 if ($_ eq "slaying" && $is_exit{$type}) { # door, teleporter, player_changer
148 $a->{msg} =~ /^final_map\s*(\S+)\s*$/m, $v = $1 151 $a->{msg} =~ /^final_map\s*(\S+)\s*$/m, $v = $1
149 if $v eq "/!"; # random map 152 if $v eq "/!"; # random map
150 153
151 print "slaying => <a href='$v.xhtml'>$v</a>\n"; 154 print "slaying => <a href='$v.xhtml'>$v</a>\n";
152 } elsif ($_ eq "other_arch") { 155 } elsif ($_ eq "other_arch") {
153 print "$_ => <a href='/arc.xhtml#", (lc $a->{$_}), "'>$v</a>\n"; 156 print "$_ => <a href='/a/$a->{$_}'>$v</a>\n";
154 } elsif ($_ eq "inventory") { 157 } elsif ($_ eq "inventory") {
155 print "inventory =>\n"; 158 print "inventory =>\n";
156 print_archs ($a->{$_}); 159 print_archs ($a->{$_});
157 } elsif ($_ eq "msg") { 160 } elsif ($_ eq "msg") {
158 print "<p class='m'>$v</p>"; 161 print "<p class='m'>$v</p>";
177 print "</table><p class='footer'>created by <a href='http://software.schmorp.de/#crossfire'>cfmap2html</a> version $VERSION</p>", 180 print "</table><p class='footer'>created by <a href='http://software.schmorp.de/#crossfire'>cfmap2html</a> version $VERSION</p>",
178 "<p class='enlarge'/></body></html>"; 181 "<p class='enlarge'/></body></html>";
179 182
180 close $fh; 183 close $fh;
181 184
182 system "gzip", "-7f", "$path.xhtml"; 185 #system "gzip", "-7f", "$path.xhtml";
183} 186}
184 187

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines