diff options
| author | Joe Ludwig <[email protected]> | 2013-07-17 18:26:59 -0700 |
|---|---|---|
| committer | Joe Ludwig <[email protected]> | 2013-07-17 18:26:59 -0700 |
| commit | e16ea21dc8a710237ade8413207f58d403c616a3 (patch) | |
| tree | 85dcfbda9881e4e022dedafefbc2727e2fd2aa59 /mp/src/devtools/bin/checkshaderchecksums.pl | |
| parent | Merge pull request #36 from AnAkIn1/fogplayerparams_fix (diff) | |
| download | source-sdk-2013-e16ea21dc8a710237ade8413207f58d403c616a3.tar.xz source-sdk-2013-e16ea21dc8a710237ade8413207f58d403c616a3.zip | |
* Added support for building shaders in your mod
* Added nav mesh support
* fixed many warnings and misc bugs
* Fixed the create*projects scripts in mp
* Added a bunch of stuff to .gitignore
Diffstat (limited to 'mp/src/devtools/bin/checkshaderchecksums.pl')
| -rw-r--r-- | mp/src/devtools/bin/checkshaderchecksums.pl | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/mp/src/devtools/bin/checkshaderchecksums.pl b/mp/src/devtools/bin/checkshaderchecksums.pl new file mode 100644 index 00000000..e41509f2 --- /dev/null +++ b/mp/src/devtools/bin/checkshaderchecksums.pl @@ -0,0 +1,116 @@ +use String::CRC32;
+BEGIN {use File::Basename; push @INC, dirname($0); }
+require "valve_perl_helpers.pl";
+
+sub GetShaderType
+{
+ my $shadername = shift;
+ my $shadertype;
+ if( $shadername =~ m/\.vsh/i )
+ {
+ $shadertype = "vsh";
+ }
+ elsif( $shadername =~ m/\.psh/i )
+ {
+ $shadertype = "psh";
+ }
+ elsif( $shadername =~ m/\.fxc/i )
+ {
+ $shadertype = "fxc";
+ }
+ else
+ {
+ die;
+ }
+ return $shadertype;
+}
+
+sub GetShaderSrc
+{
+ my $shadername = shift;
+ if ( $shadername =~ m/^(.*)-----/i )
+ {
+ return $1;
+ }
+ else
+ {
+ return $shadername;
+ }
+}
+
+sub GetShaderType
+{
+ my $shadername = shift;
+ my $shadertype;
+ if( $shadername =~ m/\.vsh/i )
+ {
+ $shadertype = "vsh";
+ }
+ elsif( $shadername =~ m/\.psh/i )
+ {
+ $shadertype = "psh";
+ }
+ elsif( $shadername =~ m/\.fxc/i )
+ {
+ $shadertype = "fxc";
+ }
+ else
+ {
+ die;
+ }
+ return $shadertype;
+}
+
+sub GetShaderBase
+{
+ my $shadername = shift;
+ if ( $shadername =~ m/-----(.*)$/i )
+ {
+ return $1;
+ }
+ else
+ {
+ my $shadertype = &GetShaderType( $shadername );
+ $shadername =~ s/\.$shadertype//i;
+ return $shadername;
+ }
+}
+
+$g_x360 = 0;
+$g_vcsext = ".vcs";
+
+while( 1 )
+{
+ $inputbase = shift;
+
+ if( $inputbase =~ m/-x360/ )
+ {
+ $g_x360 = 1;
+ $g_vcsext = ".360.vcs";
+ }
+ else
+ {
+ last;
+ }
+}
+
+# rip the txt off the end if it's there.
+$inputbase =~ s/\.txt//i;
+
+my @srcfiles = &LoadShaderListFile( $inputbase );
+
+foreach $srcfile ( @srcfiles )
+{
+ my $shadertype = &GetShaderType( $srcfile );
+ my $shaderbase = &GetShaderBase( $srcfile );
+ my $shadersrc = &GetShaderSrc( $srcfile );
+ my $vcsFileName = "..\\..\\..\\game\\hl2\\shaders\\$shadertype\\$shaderbase" . $g_vcsext;
+# print "shadersrc: $shadersrc vcsFileName: $vcsFileName\n";
+
+ if( $g_x360 && ( $shaderbase =~ m/_ps20$/i ) )
+ {
+ next; # skip _ps20 files for 360
+ }
+
+ &CheckCRCAgainstTarget( $shadersrc, $vcsFileName, 1 );
+}
|