From 5e7f55d0c850a4bad084323bc9e01b40911b7388 Mon Sep 17 00:00:00 2001 From: Spoike Date: Mon, 27 Mar 2017 22:57:54 +0000 Subject: [PATCH] lame way to fix decals not affecting rtworld. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5083 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/client/p_script.c | 7 +++++-- engine/client/r_surf.c | 2 +- engine/gl/gl_model.h | 2 ++ engine/gl/gl_shader.c | 4 +++- 4 files changed, 11 insertions(+), 4 deletions(-) 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" ) )