ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/lib/adm/archsearch.pl
Revision: 1.1.1.1 (vendor branch)
Committed: Fri Feb 3 07:14:15 2006 UTC (18 years, 4 months ago) by root
Content type: text/plain
Branch: UPSTREAM, MAIN
CVS Tags: LAST_C_VERSION, rel-2_82, rel-2_81, rel-2_80, UPSTREAM_2006_03_15, rel-3_1, rel-3_0, rel-2_6, rel-2_7, rel-2_4, rel-2_5, rel-2_2, rel-2_3, rel-2_0, rel-2_1, rel-2_72, rel-2_73, rel-2_71, rel-2_76, rel-2_77, rel-2_74, rel-2_75, rel-2_54, rel-2_55, rel-2_56, rel-2_79, rel-2_52, rel-2_53, rel-2_32, UPSTREAM_2006_02_22, rel-2_90, rel-2_92, rel-2_93, rel-2_78, rel-2_61, UPSTREAM_2006_02_03, difficulty_fix_merge_060810_2300, rel-2_43, rel-2_42, rel-2_41, HEAD
Branch point for: difficulty_fix
Changes since 1.1: +0 -0 lines
Log Message:
initial import

File Contents

# Content
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