#!/bin/sh
+case "$0" in
+ */*)
+ cd "${0%/*}"
+ ;;
+esac
+
LF="
"
case "$2" in
"$pre"/map_$map[/_]*)
;;
- *)
+ textures/map_*)
+ # protect one map's textures from the evil of other maps :P
echo "(EE) texture $2 of shader $1 is out of place, recommended file name is $pre/map_$map/*"
;;
+ *)
+ # using outside stuff is permitted
+ ;;
esac
;;
## RULE: textures/common/FOO must use textures/common/FOO or textures/common/*/*
parsing_shader=
parse_shaderstage()
{
- while read L A1 A2 Aother; do
+ while read L A1 Aother; do
case "$L" in
map)
case "$A1" in
esac
;;
animmap)
- for X in $A2 $Aother; do
+ for X in $Aother; do
use_texture "$parsing_shader" "`normalize "$X"`" animmap
done
;;
parse_shader()
{
use_texture "$parsing_shader" "$parsing_shader" shader
- while read L A1; do
+ while read L A1 Aother; do
case "$L" in
- qer_editorimage\ *)
- use_texture "$parsing_shader" "$A1" editorimage
+ qer_editorimage)
+ use_texture "$parsing_shader" "`normalize "$A1"`" editorimage
;;
- skyparms\ *)
- use_texture "$parsing_shader" "$A1" sky
+ skyparms)
+ use_texture "$parsing_shader" "${A1}_lf" sky
+ use_texture "$parsing_shader" "${A1}_rt" sky
+ use_texture "$parsing_shader" "${A1}_up" sky
+ use_texture "$parsing_shader" "${A1}_dn" sky
+ use_texture "$parsing_shader" "${A1}_ft" sky
+ use_texture "$parsing_shader" "${A1}_bk" sky
;;
'{')
parse_shaderstage
sed 's,//.*,,g; s,\r, ,g; s,\t, ,g; s, *, ,g; s, $,,; s,^ ,,; /^$/ d'
}
-t=`mktemp`
+t=`mktemp || echo ".temp"`
for X in *.shader; do
strip_comments < "$X" > "$t"
parse_shaderfile "${X%.shader}" < "$t"
done
rm -f "$t"
-textures_avail=`( cd ..; find textures/ -type f -not -name '*_norm.*' -not -name '*_glow.*' -not -name '*_gloss.*' -not -name '*.xcf' ) | while IFS= read -r T; do normalize "$T"; done | sort -u`
+textures_avail=`( cd ..; find textures/ -type f -not -name '*_norm.*' -not -name '*_glow.*' -not -name '*_gloss.*' -not -name '*_reflect.*' -not -name '*_bump.*' -not -name '*.xcf' ) | while IFS= read -r T; do normalize "$T"; done | sort -u`
textures_used=`echo "${textures_used#$LF}" | sort -u`
echo "$textures_used$LF$textures_used$LF$textures_avail" | sort | uniq -u | while IFS= read -r L; do