From f93b1e4c6540557f4d77bf4578849e6603d09955 Mon Sep 17 00:00:00 2001
From: havoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Date: Wed, 30 Dec 2009 22:33:59 +0000
Subject: [PATCH] do not set hasalphaflag on dds images that have alpha but
 were loaded without TEXF_ALPHA

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9756 d7cf8633-e32d-0410-b094-e92efae38249
---
 gl_textures.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/gl_textures.c b/gl_textures.c
index b10611b7..a029377c 100644
--- a/gl_textures.c
+++ b/gl_textures.c
@@ -1236,8 +1236,8 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen
 		for (i = 3;i < size;i += 4)
 			if (ddspixels[i] < 255)
 				break;
-		if (i < size)
-			flags |= TEXF_ALPHA;
+		if (i >= size)
+			flags &= ~TEXF_ALPHA;
 	}
 	else if (!memcmp(dds+84, "DXT1", 4))
 	{
@@ -1259,10 +1259,9 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen
 			if (ddspixels[i+0] + ddspixels[i+1] * 256 <= ddspixels[i+2] + ddspixels[i+3] * 256)
 				break;
 		if (i < size)
-		{
 			textype = TEXTYPE_DXT1A;
-			flags |= TEXF_ALPHA;
-		}
+		else
+			flags &= ~TEXF_ALPHA;
 	}
 	else if (!memcmp(dds+84, "DXT3", 4))
 	{
@@ -1276,7 +1275,6 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen
 			Con_Printf("^1%s: invalid DXT3 DDS image\n", filename);
 			return NULL;
 		}
-		flags |= TEXF_ALPHA;
 	}
 	else if (!memcmp(dds+84, "DXT5", 4))
 	{
@@ -1290,7 +1288,6 @@ rtexture_t *R_LoadTextureDDSFile(rtexturepool_t *rtexturepool, const char *filen
 			Con_Printf("^1%s: invalid DXT5 DDS image\n", filename);
 			return NULL;
 		}
-		flags |= TEXF_ALPHA;
 	}
 	else
 	{
-- 
2.39.5