Do not retry image loader for image that failed, patch by Zack Middleton (#4968)

This commit is contained in:
Thilo Schulz 2011-05-02 15:53:20 +00:00
parent c5e2654b54
commit bd9485f597

View file

@ -860,8 +860,7 @@ static imageExtToLoaderMap_t imageLoaders[ ] =
{ "bmp", R_LoadBMP }
};
static int numImageLoaders = sizeof( imageLoaders ) /
sizeof( imageLoaders[ 0 ] );
static int numImageLoaders = ARRAY_LEN( imageLoaders );
/*
=================
@ -874,9 +873,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;
@ -907,6 +908,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
@ -921,7 +923,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 );