]> de.git.xonotic.org Git - xonotic/xonotic-maps.pk3dir.git/blobdiff - scripts/shader-audit.sh
shader audit: handle skyboxes properly
[xonotic/xonotic-maps.pk3dir.git] / scripts / shader-audit.sh
index f7c0b95a4af02708cb12bac8a827726395c0f3b1..95454f835ad2beb5788da7549328de1e06bf047d 100644 (file)
@@ -80,7 +80,7 @@ use_texture()
 
        # verify shader -> texture name
        case "$1" in
-               ## RULE: textures/FOOx/BAR-BAZ must use textures/FOO/*/*, recommended textures/FOO/BAR/BAZ
+               ## RULE: textures/FOOx/BAR-BAZ must use textures/FOOx/*/*, recommended textures/FOOx/BAR/BAZ
                textures/*x/*-*)
                        pre=${1%%x/*}x
                        suf=${1#*x/}
@@ -93,7 +93,7 @@ use_texture()
                                        ;;
                        esac
                        ;;
-               ## RULE: textures/FOOx/BAR must use textures/FOO/*/*, recommended textures/FOO/base/BAR
+               ## RULE: textures/FOOx/BAR must use textures/FOOx/*/*, recommended textures/FOOx/base/BAR
                textures/*x/*)
                        pre=${1%%x/*}x
                        suf=${1#*x/}
@@ -113,9 +113,13 @@ use_texture()
                        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/*/*
@@ -205,13 +209,18 @@ parse_shaderstage()
 parse_shader()
 {
        use_texture "$parsing_shader" "$parsing_shader" shader
-       while read L A1; do
+       while read L A1 AREST; 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