diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /devtools/bin/limit_vtf_sizes.pl | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'devtools/bin/limit_vtf_sizes.pl')
| -rw-r--r-- | devtools/bin/limit_vtf_sizes.pl | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/devtools/bin/limit_vtf_sizes.pl b/devtools/bin/limit_vtf_sizes.pl new file mode 100644 index 0000000..66df3c3 --- /dev/null +++ b/devtools/bin/limit_vtf_sizes.pl @@ -0,0 +1,94 @@ +#!perl + +use File::Find; +use File::Basename; + +$dir_to_run_on = shift; +$max_size = shift; + +if ( (! length( $dir_to_run_on ) || (! $max_size ) ) ) + { + die "format is 'limit_vtf_sizes game_dir_to_run_on size'. maxisze -1 to unlimit"; + } + +open(CMDOUT,">\runit.cmd"); + +find(\&ProcessFile, $dir_to_run_on); + +close CMDOUT; + +sub ProcessFile + { + local($_) = $File::Find::name; + my $origname=$_; + my $srcname; + s@\\@/@g; + if (/\.vtf$/i) # is a vtf? + { + next if (m@/hud/@i); # don't shrink hud textures + next if (m@/vgui/@i); # don't shrink hud textures + my $vtex_it=0; + if ( s@game/(.*)/materials/@content/\1/materialsrc/@i ) + { + $srcname=$_; + s/\.vtf$/\.txt/i; + if (-e $_ ) + { + my $txtname=$_; + # decide whether or not to add the limits + open(TXTIN,$txtname) || die "can't open $_ for read something weird has happened"; + my $txtout; + my $should_add_it=1; + while( <TXTIN>) + { + next if ( ( $max_size == -1) && (/maxwidth/i || /maxheight/i) ); # lose this line + $txtout.=$_; + $should_add_it = 0 if (/maxwidth/i || /maxheight/i || /nomip/i || /reduce/i ); + } + close TXTIN; + if ($should_add_it ) + { + print `p4 edit $txtname`; + open(TXTOUT,">$txtname"); + print TXTOUT $txtout; + print TXTOUT "maxwidth $max_size\nmaxheight $max_size\n" if ($max_size != -1); + close TXTOUT; + $vtex_it = 1; + } + } + else + { + if (-d dirname($_) ) + { + print "$_ not found. Creating it\n"; + open(TXTOUT,">$_" ) || die "can't create $_?"; + print TXTOUT "maxwidth $max_size\nmaxheight $max_size\n" if( $max_size != -1); + close TXTOUT; + print `p4 add $_`; + $vtex_it=1; + } + else + { + print "directory does not exist in content for $_\n"; + } + } + } + else + { + die "I dont understand the file $_ : bad path?"; + } + if ($vtex_it) + { + my $name=$srcname; + $name=~s@\..*$@@; # kill extension + $cmd="vtex -nopause $name"; + $cmd=~s@/@\\@g; + print "execute:$cmd\n"; + print CMDOUT "$cmd\n"; +# print `$cmd`."\n"; + + } + + } + } + |