diff --git a/engine/client/p_script.c b/engine/client/p_script.c index 9058dd2ca..08512884e 100644 --- a/engine/client/p_script.c +++ b/engine/client/p_script.c @@ -731,6 +731,7 @@ static void P_LoadTexture(part_type_t *ptype, qboolean warn) "{\n" "program defaultsprite\n" "nomipmaps\n" + "sort unlitdecal\n" "{\n" "map $diffuse\n" "blendfunc blend\n" @@ -750,6 +751,7 @@ static void P_LoadTexture(part_type_t *ptype, qboolean warn) "{\n" "program defaultsprite\n" "nomipmaps\n" + "sort unlitdecal\n" "{\n" "map $diffuse\n" "blendfunc GL_SRC_COLOR GL_ONE_MINUS_SRC_COLOR\n" @@ -829,7 +831,7 @@ static void P_LoadTexture(part_type_t *ptype, qboolean warn) "{\n" "program defaultsprite\n" "nomipmaps\n" - "sort decal\n" + "sort unlitdecal\n" "{\n" "map $diffuse\n" "blendfunc GL_ZERO GL_ONE_MINUS_SRC_ALPHA\n" @@ -849,7 +851,7 @@ static void P_LoadTexture(part_type_t *ptype, qboolean warn) "{\n" "program defaultsprite\n" "nomipmaps\n" - "sort decal\n" + "sort unlitdecal\n" "{\n" "map $diffuse\n" "blendfunc GL_ZERO GL_ONE_MINUS_SRC_COLOR\n" @@ -869,6 +871,7 @@ static void P_LoadTexture(part_type_t *ptype, qboolean warn) "{\n" "program defaultsprite\n" "nomipmaps\n" + "sort unlitdecal\n" "{\n" "map $diffuse\n" "blendfunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_COLOR\n" diff --git a/engine/client/r_surf.c b/engine/client/r_surf.c index 16207f886..3ac934c64 100644 --- a/engine/client/r_surf.c +++ b/engine/client/r_surf.c @@ -268,7 +268,7 @@ void Surf_LessenStains(void) static float time; - if (!r_stains.value) + if (!r_stains.value || !r_stainfadeammount.value) return; time += host_frametime; diff --git a/engine/gl/gl_model.h b/engine/gl/gl_model.h index 7de94acdf..53eb8a2db 100644 --- a/engine/gl/gl_model.h +++ b/engine/gl/gl_model.h @@ -42,6 +42,8 @@ typedef enum { //fixme: occlusion tests SHADER_SORT_DECAL, SHADER_SORT_SEETHROUGH, + //then rtlights are drawn + SHADER_SORT_UNLITDECAL, SHADER_SORT_BANNER, SHADER_SORT_UNDERWATER, SHADER_SORT_BLEND, diff --git a/engine/gl/gl_shader.c b/engine/gl/gl_shader.c index f731b7342..e11a64f49 100644 --- a/engine/gl/gl_shader.c +++ b/engine/gl/gl_shader.c @@ -984,10 +984,12 @@ static void Shader_Sort ( shader_t *shader, shaderpass_t *pass, char **ptr ) shader->sort = SHADER_SORT_SKY; else if( !Q_stricmp( token, "opaque" ) ) shader->sort = SHADER_SORT_OPAQUE; - else if( !Q_stricmp( token, "decal" ) ) + else if( !Q_stricmp( token, "decal" ) || !Q_stricmp( token, "litdecal" ) ) shader->sort = SHADER_SORT_DECAL; else if( !Q_stricmp( token, "seethrough" ) ) shader->sort = SHADER_SORT_SEETHROUGH; + else if( !Q_stricmp( token, "unlitdecal" ) ) + shader->sort = SHADER_SORT_UNLITDECAL; else if( !Q_stricmp( token, "banner" ) ) shader->sort = SHADER_SORT_BANNER; else if( !Q_stricmp( token, "additive" ) )