mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-10 23:01:50 +00:00
- Fixed: Skin mugshots didn't load. (This adds a texture usetype for skin graphics.)
SVN r4205 (trunk)
This commit is contained in:
parent
332b1091b4
commit
316faf59b4
3 changed files with 14 additions and 4 deletions
|
@ -98,7 +98,7 @@ FTexture *FMugShotFrame::GetTexture(const char *default_face, const char *skin_f
|
||||||
}
|
}
|
||||||
sprite.UnlockBuffer();
|
sprite.UnlockBuffer();
|
||||||
}
|
}
|
||||||
return TexMan[TexMan.CheckForTexture(sprite, 0, true)];
|
return TexMan[TexMan.CheckForTexture(sprite, 0, FTextureManager::TEXMAN_TryAny|FTextureManager::TEXMAN_AllowSkins)];
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
|
@ -176,7 +176,8 @@ FTextureID FTextureManager::CheckForTexture (const char *name, int usetype, BITF
|
||||||
{
|
{
|
||||||
// All NULL textures should actually return 0
|
// All NULL textures should actually return 0
|
||||||
if (tex->UseType == FTexture::TEX_FirstDefined && !(flags & TEXMAN_ReturnFirst)) return 0;
|
if (tex->UseType == FTexture::TEX_FirstDefined && !(flags & TEXMAN_ReturnFirst)) return 0;
|
||||||
return FTextureID(tex->UseType==FTexture::TEX_Null? 0 : i);
|
if (tex->UseType == FTexture::TEX_SkinGraphic && !(flags & TEXMAN_AllowSkins)) return 0;
|
||||||
|
return FTextureID(tex->UseType==FTexture::TEX_Null ? 0 : i);
|
||||||
}
|
}
|
||||||
else if ((flags & TEXMAN_Overridable) && tex->UseType == FTexture::TEX_Override)
|
else if ((flags & TEXMAN_Overridable) && tex->UseType == FTexture::TEX_Override)
|
||||||
{
|
{
|
||||||
|
@ -831,6 +832,7 @@ void FTextureManager::AddTexturesForWad(int wadnum)
|
||||||
|
|
||||||
for (int i= firsttx; i <= lasttx; i++)
|
for (int i= firsttx; i <= lasttx; i++)
|
||||||
{
|
{
|
||||||
|
bool skin = false;
|
||||||
char name[9];
|
char name[9];
|
||||||
Wads.GetLumpName(name, i);
|
Wads.GetLumpName(name, i);
|
||||||
name[8]=0;
|
name[8]=0;
|
||||||
|
@ -869,11 +871,17 @@ void FTextureManager::AddTexturesForWad(int wadnum)
|
||||||
// Don't bother looking this lump if something later overrides it.
|
// Don't bother looking this lump if something later overrides it.
|
||||||
if (Wads.CheckNumForName(name, ns_graphics) != i) continue;
|
if (Wads.CheckNumForName(name, ns_graphics) != i) continue;
|
||||||
}
|
}
|
||||||
|
else if (ns >= ns_firstskin)
|
||||||
|
{
|
||||||
|
// Don't bother looking this lump if something later overrides it.
|
||||||
|
if (Wads.CheckNumForName(name, ns) != i) continue;
|
||||||
|
skin = true;
|
||||||
|
}
|
||||||
else continue;
|
else continue;
|
||||||
|
|
||||||
// Try to create a texture from this lump and add it.
|
// Try to create a texture from this lump and add it.
|
||||||
// Unfortunately we have to look at everything that comes through here...
|
// Unfortunately we have to look at everything that comes through here...
|
||||||
FTexture *out = FTexture::CreateTexture(i, FTexture::TEX_MiscPatch);
|
FTexture *out = FTexture::CreateTexture(i, skin ? FTexture::TEX_SkinGraphic : FTexture::TEX_MiscPatch);
|
||||||
|
|
||||||
if (out != NULL)
|
if (out != NULL)
|
||||||
{
|
{
|
||||||
|
@ -922,7 +930,7 @@ void FTextureManager::SortTexturesByType(int start, int end)
|
||||||
static int texturetypes[] = {
|
static int texturetypes[] = {
|
||||||
FTexture::TEX_Sprite, FTexture::TEX_Null, FTexture::TEX_FirstDefined,
|
FTexture::TEX_Sprite, FTexture::TEX_Null, FTexture::TEX_FirstDefined,
|
||||||
FTexture::TEX_WallPatch, FTexture::TEX_Wall, FTexture::TEX_Flat,
|
FTexture::TEX_WallPatch, FTexture::TEX_Wall, FTexture::TEX_Flat,
|
||||||
FTexture::TEX_Override, FTexture::TEX_MiscPatch
|
FTexture::TEX_Override, FTexture::TEX_MiscPatch, FTexture::TEX_SkinGraphic
|
||||||
};
|
};
|
||||||
|
|
||||||
for(unsigned int i=0;i<countof(texturetypes);i++)
|
for(unsigned int i=0;i<countof(texturetypes);i++)
|
||||||
|
|
|
@ -195,6 +195,7 @@ public:
|
||||||
TEX_FontChar,
|
TEX_FontChar,
|
||||||
TEX_Override, // For patches between TX_START/TX_END
|
TEX_Override, // For patches between TX_START/TX_END
|
||||||
TEX_Autopage, // Automap background - used to enable the use of FAutomapTexture
|
TEX_Autopage, // Automap background - used to enable the use of FAutomapTexture
|
||||||
|
TEX_SkinGraphic,
|
||||||
TEX_Null,
|
TEX_Null,
|
||||||
TEX_FirstDefined,
|
TEX_FirstDefined,
|
||||||
};
|
};
|
||||||
|
@ -363,6 +364,7 @@ public:
|
||||||
TEXMAN_TryAny = 1,
|
TEXMAN_TryAny = 1,
|
||||||
TEXMAN_Overridable = 2,
|
TEXMAN_Overridable = 2,
|
||||||
TEXMAN_ReturnFirst = 4,
|
TEXMAN_ReturnFirst = 4,
|
||||||
|
TEXMAN_AllowSkins = 8
|
||||||
};
|
};
|
||||||
|
|
||||||
FTextureID CheckForTexture (const char *name, int usetype, BITFIELD flags=TEXMAN_TryAny);
|
FTextureID CheckForTexture (const char *name, int usetype, BITFIELD flags=TEXMAN_TryAny);
|
||||||
|
|
Loading…
Reference in a new issue