ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/lib/adm/archsearch.pl
Revision: 1.1
Committed: Fri Feb 3 07:14:15 2006 UTC (18 years, 5 months ago) by root
Content type: text/plain
Branch point for: UPSTREAM, MAIN
Log Message:
Initial revision

File Contents

# User Rev Content
1 root 1.1 #!/usr/bin/perl
2     #
3     # Usage: archsearch.pl file
4     #
5     # This script searches a file (either archetypes or maps) for certain
6     # desired values. It is better than grep in that it keeps track of the
7     # the archetype it occurs in and does smarter searches (ie, certain
8     # bitmask values you can search for specific bit sets, which is not
9     # easy to do with grep)
10     #
11     # Originally written to find all the creatures that use ghosthit.
12     # Modified to find all object types that are being set invisible
13     # in pupland
14     #
15    
16    
17     die("Usage: archsearch.pl file\n") if ($#ARGV < 0);
18    
19     for ($file=0; $file<=$#ARGV; $file++) {
20     # print "Proccessing $ARGV[$file]\n";
21     if (!open(INFILE, "<$ARGV[$file]")) {
22     print "Can not open $ARGV[$file] - skipping\n";
23     next;
24     }
25     while (<INFILE>) {
26     if (/^Object (\S+)/ || /^arch (\S+)/) {
27     $obname = $1;
28     $invisible=0;
29     $type=-1;
30     $x = -1;
31     $y = -1;
32     $title="";
33     }
34     $object .= $_;
35     $type = $1 if (/^type (\S+)/);
36     $title = $1 if (/^title (\S+)/);
37     $invisible = $1 if (/^invisible (\S+)/);
38     $x = $1 if (/^x (\S+)/);
39     $y = $1 if (/^y (\S+)/);
40     if (/^end$/ ) {
41     if ($obname =~ /^altar/ && $title ne "") {
42     print "$ARGV[$file]\n$object";
43     }
44     # print "Object $obname (type $type) @ $x, $y is invisible\n";
45     $object="";
46     }
47     # This is what we are searching for. value will be put in $1
48     # Note that multile searches are certainly possible.
49     # elsif (/^attacktype (\S+)/) {
50     # if ($1 & 0x200) {
51     # print "Found match, object $obname, line $.\n";
52     # }
53     # }
54    
55     } # While loop
56     }
57    
58    
59