From 37f94685f3c64f9b2578049796cf8ccf75c83bad Mon Sep 17 00:00:00 2001 From: Thilo Schulz Date: Mon, 2 May 2011 15:53:20 +0000 Subject: Do not retry image loader for image that failed, patch by Zack Middleton (#4968) --- src/renderer/tr_image.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/renderer/tr_image.c b/src/renderer/tr_image.c index 1fa8042d..c40add48 100644 --- a/src/renderer/tr_image.c +++ b/src/renderer/tr_image.c @@ -861,8 +861,7 @@ static imageExtToLoaderMap_t imageLoaders[ ] = { "bmp", R_LoadBMP } }; -static int numImageLoaders = sizeof( imageLoaders ) / - sizeof( imageLoaders[ 0 ] ); +static int numImageLoaders = ARRAY_LEN( imageLoaders ); /* ================= @@ -875,9 +874,11 @@ Loads any of the supported image types into a cannonical void R_LoadImage( const char *name, byte **pic, int *width, int *height ) { qboolean orgNameFailed = qfalse; + int orgLoader = -1; int i; char localName[ MAX_QPATH ]; const char *ext; + char *altName; *pic = NULL; *width = 0; @@ -908,6 +909,7 @@ void R_LoadImage( const char *name, byte **pic, int *width, int *height ) // Loader failed, most likely because the file isn't there; // try again without the extension orgNameFailed = qtrue; + orgLoader = i; COM_StripExtension( name, localName, MAX_QPATH ); } else @@ -922,7 +924,10 @@ void R_LoadImage( const char *name, byte **pic, int *width, int *height ) // the image formats supported for( i = 0; i < numImageLoaders; i++ ) { - char *altName = va( "%s.%s", localName, imageLoaders[ i ].ext ); + if (i == orgLoader) + continue; + + altName = va( "%s.%s", localName, imageLoaders[ i ].ext ); // Load imageLoaders[ i ].ImageLoader( altName, pic, width, height ); -- cgit