- Fixed: The save percentage for Doom's green armor was slightly too low
which caused roundoff errors that made it less than 1/3 effective. - Added support for "RRGGBB" strings to V_GetColor. - Fixed: Desaturation maps for the TEXTURES lump were calculated incorrectly. - Changed GetSpriteIndex to cache the last used sprite name so that the code using this function doesn't have to do it itself. - Moved some more code for the state parser into p_states.cpp. - Fixed: TDeletingArray should not try to delete NULL pointers. SVN r1312 (trunk)
This commit is contained in:
parent
238de9cda1
commit
081658d3d5
24 changed files with 1978 additions and 1901 deletions
16
src/info.cpp
16
src/info.cpp
|
|
@ -58,6 +58,9 @@ extern void LoadActors ();
|
|||
|
||||
int GetSpriteIndex(const char * spritename)
|
||||
{
|
||||
static char lastsprite[5];
|
||||
static int lastindex;
|
||||
|
||||
// Make sure that the string is upper case and 4 characters long
|
||||
char upper[5]={0,0,0,0,0};
|
||||
for (int i = 0; spritename[i] != 0 && i < 4; i++)
|
||||
|
|
@ -65,18 +68,25 @@ int GetSpriteIndex(const char * spritename)
|
|||
upper[i] = toupper (spritename[i]);
|
||||
}
|
||||
|
||||
// cache the name so if the next one is the same the function doesn't have to perform a search.
|
||||
if (!strcmp(upper, lastsprite))
|
||||
{
|
||||
return lastindex;
|
||||
}
|
||||
strcpy(lastsprite, upper);
|
||||
|
||||
for (unsigned i = 0; i < sprites.Size (); ++i)
|
||||
{
|
||||
if (strcmp (sprites[i].name, spritename) == 0)
|
||||
if (strcmp (sprites[i].name, upper) == 0)
|
||||
{
|
||||
return (int)i;
|
||||
return (lastindex = (int)i);
|
||||
}
|
||||
}
|
||||
spritedef_t temp;
|
||||
strcpy (temp.name, upper);
|
||||
temp.numframes = 0;
|
||||
temp.spriteframes = 0;
|
||||
return (int)sprites.Push (temp);
|
||||
return (lastindex = (int)sprites.Push (temp));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue