- fixed: 3Dmidtex opening checks didn't take per-sidedef scaling into account.

This commit is contained in:
Christoph Oelckers 2015-02-10 21:30:52 +01:00
parent 6423b2fece
commit a3bdbff052
2 changed files with 5 additions and 3 deletions

View File

@ -223,11 +223,12 @@ bool P_GetMidTexturePosition(const line_t *line, int sideno, fixed_t *ptextop, f
FTexture * tex= TexMan(texnum);
if (!tex) return false;
fixed_t totalscale = FixedMul(side->GetTextureYScale(side_t::mid), tex->yScale);
fixed_t y_offset = side->GetTextureYOffset(side_t::mid);
fixed_t textureheight = tex->GetScaledHeight() << FRACBITS;
if (tex->yScale != FRACUNIT && !tex->bWorldPanning)
fixed_t textureheight = tex->GetScaledHeight(totalscale) << FRACBITS;
if (totalscale != FRACUNIT && !tex->bWorldPanning)
{
y_offset = FixedDiv(y_offset, tex->yScale);
y_offset = FixedDiv(y_offset, totalscale);
}
if(line->flags & ML_DONTPEGBOTTOM)

View File

@ -233,6 +233,7 @@ public:
int GetScaledWidth () { int foo = (Width << 17) / xScale; return (foo >> 1) + (foo & 1); }
int GetScaledHeight () { int foo = (Height << 17) / yScale; return (foo >> 1) + (foo & 1); }
int GetScaledHeight(fixed_t scale) { int foo = (Height << 17) / scale; return (foo >> 1) + (foo & 1); }
double GetScaledWidthDouble () { return (Width * 65536.) / xScale; }
double GetScaledHeightDouble () { return (Height * 65536.) / yScale; }