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

Comparing cfmaps/cfmapidx (file contents):
Revision 1.3 by root, Wed Nov 23 09:07:21 2005 UTC vs.
Revision 1.8 by root, Thu Jun 21 12:30:10 2007 UTC

1#!/opt/bin/perl 1#!/opt/bin/perl
2 2
3# cfmap2idx - inverted index for crossfire maps 3# cfmap2idx - inverted index for crossfire maps
4# Copyright (C) 2005 Marc Lehmann <gvpe@schmorp.de> 4# Copyright (C) 2005,2007 Marc Lehmann <cfmaps@schmorp.de>
5# 5#
6# CFMAPIDX is free software; you can redistribute it and/or modify 6# CFMAPIDX is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by 7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 2 of the License, or 8# the Free Software Foundation; either version 2 of the License, or
9# (at your option) any later version. 9# (at your option) any later version.
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 = '0.91'; 20our $VERSION = '0.912';
21 21
22use Storable; 22use Crossfire;
23use DB_File; 23use DB_File;
24 24
25sub escape_html($) { 25sub escape_html($) {
26 local $_ = shift; 26 local $_ = shift;
27 s/([<>&])/sprintf "&#%d;", ord $1/ge; 27 s/([<>&])/sprintf "&#%d;", ord $1/ge;
75 75
76 for (sort @paths) { 76 for (sort @paths) {
77 print "<li><a href='$_.xhtml'>$_</a></li>"; 77 print "<li><a href='$_.xhtml'>$_</a></li>";
78 } 78 }
79 79
80 print "</ul></p><p class='footer'>created by <a href='http://software.schmorp.de/#crossfire'>cfmapidx</a> version $VERSION</p>", 80 print "</ul></p><p class='footer'>created by <a href='http://software.schmorp.de/pkg/cfmaps'>cfmapidx</a> version $VERSION</p>",
81 "</body></html>"; 81 "</body></html>";
82} 82}
83 83
84if ($ARGV[0] eq "-a") { 84if ($ARGV[0] eq "-a") {
85 shift; 85 shift;
88 or die ".index.dat~: $!"; 88 or die ".index.dat~: $!";
89 89
90 my %idx2; 90 my %idx2;
91 91
92 for my $path (@ARGV) { 92 for my $path (@ARGV) {
93 (my $base = $path) =~ s/\.map$//;
93 my $docnum = pack "n", ++$idx{Vdocnum}; 94 my $docnum = pack "n", ++$idx{Vdocnum};
94 $idx{"D$docnum"} = $path; 95 $idx{"D$docnum"} = $base;
95 my $meta = Storable::retrieve "$path.pst"; 96 my $meta = read_arch "$base.map";
96 97
97 for my $x (0 .. $meta->{width} - 1) { 98 for my $x (0 .. $meta->{width} - 1) {
98 for my $y (0 .. $meta->{height} - 1) { 99 for my $y (0 .. $meta->{height} - 1) {
99 for my $a (@{ $meta->{map}[$x][$y] }) { 100 for my $a (@{ $meta->{map}[$x][$y] }) {
100 for my $v (values %$a) { 101 for my $v (values %$a) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines