From d5ff256fd5eb4d8ba57ee4c9f313898344a38b4f Mon Sep 17 00:00:00 2001 From: div0 Date: Wed, 22 Oct 2008 06:07:59 +0000 Subject: [PATCH] add the perl script that annotates effectinfo.txt; fix effectindexdump command git-svn-id: svn://svn.icculus.org/nexuiz/trunk@4799 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/effectinfo-addcomments.pl | 63 ++++++++++++++++++++++++++++++++ data/qcsrc/common/util.qc | 2 +- data/qcsrc/server/gamecommand.qc | 2 +- 3 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 data/effectinfo-addcomments.pl diff --git a/data/effectinfo-addcomments.pl b/data/effectinfo-addcomments.pl new file mode 100644 index 000000000..e2bd49579 --- /dev/null +++ b/data/effectinfo-addcomments.pl @@ -0,0 +1,63 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +my $out = ""; +my %found; + +open my $fh, '<', 'effectinfo.txt'; +while(<$fh>) +{ + chomp; + + next if /^\/\/ used in /; + next if /^\/\/ used nowhere in code$/; + + if(/^effect\s+([^\s\/]+)\s*(?:\/\/.*)?$/i) + { + if(!$found{$1}) + { + print STDERR "Handling $1...\n"; + $found{$1} = 1; + my $search = + $1 eq 'TR_BLOOD' ? 'MF_GIB' : + $1 eq 'TR_SLIGHTBLOOD' ? 'MF_ZOMGIB' : + $1 eq 'TR_WIZSPIKE' ? 'MF_TRACER' : + $1 eq 'TR_KNIGHTSPIKE' ? 'MF_TRACER2' : + $1 eq 'TR_ROCKET' ? 'MF_ROCKET' : + $1 eq 'TR_GRENADE' ? 'MF_GRENADE' : + $1 eq 'TR_VORESPIKE' ? 'MF_TRACER3' : + $1; + local $ENV{effectre} = + $search eq lc $search + ? "\"$search\"" + : "\"$search\"|\\<" . lc($search) . "\\>|\\<" . $search . "\\>"; + print "$ENV{effectre}\n"; + my $occurrences = `grep -E "\$effectre" qcsrc/server/*.qc qcsrc/client/*.qc`; + $occurrences =~ s/\r/\n/g; + $occurrences =~ s/;//g; + my $found = 0; + for(split /\n/, $occurrences) + { + next if $_ eq ''; + next if /^qcsrc\/server\/gamecommand\.qc:/; # list of quake effects is there + next if /^qcsrc\/client\/csqc_builtins\.qc:/; # list of quake effects is there + next if /^qcsrc\/client\/csqc_constants\.qc:/; # list of quake effects is there + $out .= "// used in $_\n"; + $found = 1; + } + if(!$found) + { + $out .= "// used nowhere in code\n"; + } + } + } + + $out .= "$_\n"; +} +close $fh; + +open $fh, '>', 'effectinfo.txt'; +print $fh $out; +close $fh; diff --git a/data/qcsrc/common/util.qc b/data/qcsrc/common/util.qc index 33c7a0f5e..3e56701d2 100644 --- a/data/qcsrc/common/util.qc +++ b/data/qcsrc/common/util.qc @@ -951,7 +951,7 @@ float _tokenize_sane(string s) float data; float end; float i; - + _argc_sane = 0; data = 0; end = strlen(s); diff --git a/data/qcsrc/server/gamecommand.qc b/data/qcsrc/server/gamecommand.qc index f5f533d9e..f31b626f5 100644 --- a/data/qcsrc/server/gamecommand.qc +++ b/data/qcsrc/server/gamecommand.qc @@ -420,7 +420,7 @@ void EffectIndexDump() fh = fopen("effectinfo.txt", FILE_READ); while((s = fgets(fh))) { - tokenize_sane(s); + tokenize_insane(s); // tokenize_sane would hit the loop counter :( if(argv(0) == "effect") { if(db_get(d, argv(1)) != "1") -- 2.39.2