- added a 'forceworldpanning' map flag.

Since unfortunately this cannot be set as a general default, let's at least make it as easy as possible to disable that panning+scaling madness without having to edit the texture data.
This commit is contained in:
Christoph Oelckers 2018-12-15 16:29:37 +01:00
parent dc9c7afa24
commit 74ea9143ee
4 changed files with 6 additions and 2 deletions

View file

@ -247,6 +247,7 @@ enum ELevelFlags : unsigned int
LEVEL3_NOCOLOREDSPRITELIGHTING = 0x00000010, // draw sprites only with color-less light
LEVEL3_EXITNORMALUSED = 0x00000020,
LEVEL3_EXITSECRETUSED = 0x00000040,
LEVEL3_FORCEWORLDPANNING = 0x00000080, // Forces the world panning flag for all textures, even those without it explicitly set.
};

View file

@ -1553,6 +1553,7 @@ MapFlagHandlers[] =
{ "forcefakecontrast", MITYPE_SETFLAG3, LEVEL3_FORCEFAKECONTRAST, 0 },
{ "nolightfade", MITYPE_SETFLAG3, LEVEL3_NOLIGHTFADE, 0 },
{ "nocoloredspritelighting", MITYPE_SETFLAG3, LEVEL3_NOCOLOREDSPRITELIGHTING, 0 },
{ "forceworldpanning", MITYPE_SETFLAG3, LEVEL3_FORCEWORLDPANNING, 0 },
{ "nobotnodes", MITYPE_IGNORE, 0, 0 }, // Skulltag option: nobotnodes
{ "compat_shorttex", MITYPE_COMPATFLAG, COMPATF_SHORTTEX, 0 },
{ "compat_stairs", MITYPE_COMPATFLAG, COMPATF_STAIRINDEX, 0 },

View file

@ -1,6 +1,7 @@
#pragma once
#include "textures/textures.h"
#include "v_video.h"
#include "g_levellocals.h"
struct FSoftwareTextureSpan
@ -48,7 +49,7 @@ public:
// The feature from hell... :(
bool useWorldPanning() const
{
return mTexture->bWorldPanning;
return mTexture->bWorldPanning || (level.flags3 & LEVEL3_FORCEWORLDPANNING);
}
bool isMasked()

View file

@ -51,6 +51,7 @@
#include "imagehelpers.h"
#include "image.h"
#include "formats/multipatchtexture.h"
#include "g_levellocals.h"
FTexture *CreateBrightmapTexture(FImageSource*);
@ -903,7 +904,7 @@ void FTexCoordInfo::GetFromTexture(FTexture *tex, float x, float y)
mScale.Y = -mScale.Y;
mRenderHeight = -mRenderHeight;
}
mWorldPanning = tex->bWorldPanning;
mWorldPanning = tex->bWorldPanning || (level.flags3 & LEVEL3_FORCEWORLDPANNING);
mWidth = tex->GetWidth();
}