11 $p =~ s/(?:\.jpg|\.png|\.tga)$//gi;
16 my $find_texture_names;
17 $find_texture_names = grep { /^-t$/ } @ARGV;
32 my @line = map { s/"//g; $_; } split /\s+/, $_;
34 $shadertext .= "@line\n";
38 die "{ line contains other stuff"
40 die "{ line without shader name"
41 unless defined $curshader;
42 die "{ line in level $level"
46 elsif($line[0] eq '}')
48 die "} line contains other stuff"
50 die "} line without shader name"
51 unless defined $curshader;
52 die "{ line in level $level"
58 printf "%s %s\n", Digest::MD5::md5_hex($shadertext), $curshader;
60 if($find_texture_names)
62 # find out possibly loaded textures
63 my @maps = ($shadertext =~ /^map ([^\$].*)$/gim);
64 for($shadertext =~ /^animmap \S+ (.*)$/gim)
66 push @maps, split / /, $_;
68 for($shadertext =~ /^skyparms (.*)$/gim)
73 push @maps, "$_"."_lf";
74 push @maps, "$_"."_ft";
75 push @maps, "$_"."_rt";
76 push @maps, "$_"."_bk";
77 push @maps, "$_"."_up";
78 push @maps, "$_"."_dn";
83 printf "* %s %s\n", $_, $curshader
84 for map { normalize_path $_ } @maps;
92 die "shader name already set"
93 if defined $curshader;
94 $curshader = normalize_path $line[0];
101 die "missing } line";