- fixed: ACS's check...Texture functions must use the same search flags as the texture initialization code in p_setup.cpp and p_udmf.cpp. It also should not create textures that don't exist yet. We are only doing a comparison so it's not relevant if the texture exists or not.

This commit is contained in:
Christoph Oelckers 2014-05-16 10:56:23 +02:00
parent bf6a193e5b
commit 25f4af734f
3 changed files with 6 additions and 2 deletions

View file

@ -3944,7 +3944,9 @@ bool DLevelScript::DoCheckActorTexture(int tid, AActor *activator, int string, b
{ {
return 0; return 0;
} }
FTexture *tex = TexMan.FindTexture(FBehavior::StaticLookupString(string)); FTexture *tex = TexMan.FindTexture(FBehavior::StaticLookupString(string), FTexture::TEX_Flat,
FTextureManager::TEXMAN_Overridable|FTextureManager::TEXMAN_TryAny|FTextureManager::TEXMAN_DontCreate);
if (tex == NULL) if (tex == NULL)
{ // If the texture we want to check against doesn't exist, then { // If the texture we want to check against doesn't exist, then
// they're obviously not the same. // they're obviously not the same.

View file

@ -238,6 +238,7 @@ FTextureID FTextureManager::CheckForTexture (const char *name, int usetype, BITF
FTexture *tex = Wads.GetLinkedTexture(lump); FTexture *tex = Wads.GetLinkedTexture(lump);
if (tex == NO_TEXTURE) return FTextureID(-1); if (tex == NO_TEXTURE) return FTextureID(-1);
if (tex != NULL) return tex->id; if (tex != NULL) return tex->id;
if (flags & TEXMAN_DontCreate) return FTextureID(-1); // we only want to check, there's no need to create a texture if we don't have one yet.
tex = FTexture::CreateTexture("", lump, FTexture::TEX_Override); tex = FTexture::CreateTexture("", lump, FTexture::TEX_Override);
if (tex != NULL) if (tex != NULL)
{ {

View file

@ -363,7 +363,8 @@ public:
TEXMAN_Overridable = 2, TEXMAN_Overridable = 2,
TEXMAN_ReturnFirst = 4, TEXMAN_ReturnFirst = 4,
TEXMAN_AllowSkins = 8, TEXMAN_AllowSkins = 8,
TEXMAN_ShortNameOnly = 16 TEXMAN_ShortNameOnly = 16,
TEXMAN_DontCreate = 32
}; };
FTextureID CheckForTexture (const char *name, int usetype, BITFIELD flags=TEXMAN_TryAny); FTextureID CheckForTexture (const char *name, int usetype, BITFIELD flags=TEXMAN_TryAny);