- added far stronger restrictions for when the Boom-Texture-Y-offset compatibility flag may trigger.

This had absolutely no sanity checks and unconditionally picked the source texture if one existed.
It should only be done for wall textures, only for those defined in TEXTUREx and only for those where the scale is identical with the underlying texture.
This commit is contained in:
Christoph Oelckers 2018-11-01 10:51:57 +01:00
parent c5153ca095
commit b79622bcba
2 changed files with 4 additions and 4 deletions

View file

@ -234,7 +234,7 @@ FMultiPatchTexture::FMultiPatchTexture (const void *texdef, FPatchLookup *patchl
int i;
mtexture.d = (const maptexture_t *)texdef;
bMultiPatch = true;
bMultiPatch = 1;
if (strife)
{
@ -713,7 +713,7 @@ FTexture *FMultiPatchTexture::GetRedirect()
FTexture *FMultiPatchTexture::GetRawTexture()
{
return NumParts == 1 ? Parts->Texture : this;
return NumParts == 1 && UseType == ETextureType::Wall && bMultiPatch == 1 && Scale == Parts->Texture->Scale ? Parts->Texture : this;
}
//==========================================================================
@ -1071,7 +1071,7 @@ FMultiPatchTexture::FMultiPatchTexture (FScanner &sc, ETextureType usetype)
TArray<TexInit> inits;
bool bSilent = false;
bMultiPatch = true;
bMultiPatch = 2;
sc.SetCMode(true);
sc.MustGetString();
const char* textureName = NULL;

View file

@ -263,7 +263,7 @@ public:
uint8_t bComplex:1; // Will be used to mark extended MultipatchTextures that have to be
// fully composited before subjected to any kind of postprocessing instead of
// doing it per patch.
uint8_t bMultiPatch:1; // This is a multipatch texture (we really could use real type info for textures...)
uint8_t bMultiPatch:2; // This is a multipatch texture (we really could use real type info for textures...)
uint8_t bKeepAround:1; // This texture was used as part of a multi-patch texture. Do not free it.
uint8_t bFullNameTexture : 1;
uint8_t bBrightmapChecked : 1; // Set to 1 if brightmap has been checked