From 1f68bc84c8e7959476e42a06166584fbd2f89707 Mon Sep 17 00:00:00 2001 From: div0 Date: Fri, 13 Feb 2009 17:51:26 +0000 Subject: [PATCH] allow more glitchy shader files (matches DP) git-svn-id: svn://svn.icculus.org/nexuiz/trunk@5867 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- misc/tools/shader-checksums.pl | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/misc/tools/shader-checksums.pl b/misc/tools/shader-checksums.pl index d3d9f68cc..33dc5b515 100755 --- a/misc/tools/shader-checksums.pl +++ b/misc/tools/shader-checksums.pl @@ -31,10 +31,24 @@ while() next if /^$/; my @line = map { s/"//g; $_; } split /\s+/, $_; + my @nextline = (); + +nextline: + # allow trailing } token + my $brace_index = [grep { $line[$_] eq "}" } 0..@line-1]->[0]; + if(defined $brace_index) + { + @nextline = splice @line, $brace_index || 1; + } + + # allow initial { token + if(@line >= 2 && $line[0] eq '{') + { + @nextline = splice @line, 1; + } $shadertext .= "@line\n"; -again: if($line[0] eq '{') { die "{ line without shader name" @@ -42,11 +56,6 @@ again: die "{ line in level $level" if $level >= 2; ++$level; - if(@line > 1) - { - shift @line; - goto again; - } } elsif($line[0] eq '}') { @@ -108,6 +117,13 @@ again: $curshader = normalize_path $line[0]; $shadertext = ""; } + + if(@nextline) + { + @line = @nextline; + @nextline = (); + goto nextline; + } } if($level != 0) -- 2.39.2