- Fixed: World panning was ignored for the X offset of masked midtextures.

SVN r1541 (trunk)
This commit is contained in:
Randy Heit 2009-04-11 04:28:06 +00:00
parent d3b6dfb0f1
commit 6a9acc2cf8
3 changed files with 16 additions and 4 deletions

View file

@ -1,4 +1,7 @@
April 10, 2009 (Changes by Graf Zahl) April 10, 2009
- Fixed: World panning was ignored for the X offset of masked midtextures.
April 10, 2009 (Changes by Graf Zahl)
- Extended MF5_MOVEWITHSECTOR so that it always keeps the actor on the ground - Extended MF5_MOVEWITHSECTOR so that it always keeps the actor on the ground
of a moving floor, regardless of movement speed. For NOBLOCKMAP items this of a moving floor, regardless of movement speed. For NOBLOCKMAP items this
is necessary because otherwise they can be left in the air and it also adds is necessary because otherwise they can be left in the air and it also adds

View file

@ -268,7 +268,7 @@ void R_RenderMaskedSegRange (drawseg_t *ds, int x1, int x2)
dc_texturemid = MIN (frontsector->GetPlaneTexZ(sector_t::ceiling), backsector->GetPlaneTexZ(sector_t::ceiling)); dc_texturemid = MIN (frontsector->GetPlaneTexZ(sector_t::ceiling), backsector->GetPlaneTexZ(sector_t::ceiling));
} }
{ // encapsilate the lifetime of rowoffset { // encapsulate the lifetime of rowoffset
fixed_t rowoffset = curline->sidedef->GetTextureYOffset(side_t::mid); fixed_t rowoffset = curline->sidedef->GetTextureYOffset(side_t::mid);
if (tex->bWorldPanning) if (tex->bWorldPanning)
{ {
@ -1629,8 +1629,15 @@ void R_StoreWallRange (int start, int stop)
lwal = (fixed_t *)(openings + ds_p->maskedtexturecol); lwal = (fixed_t *)(openings + ds_p->maskedtexturecol);
swal = (fixed_t *)(openings + ds_p->swall); swal = (fixed_t *)(openings + ds_p->swall);
int scaley = TexMan(sidedef->GetTexture(side_t::mid))->yScale; FTexture *pic = TexMan(sidedef->GetTexture(side_t::mid));
int scaley = pic->yScale;
int xoffset = sidedef->GetTextureXOffset(side_t::mid); int xoffset = sidedef->GetTextureXOffset(side_t::mid);
if (pic->bWorldPanning)
{
xoffset = MulScale16 (xoffset, pic->xScale);
}
for (i = start; i < stop; i++) for (i = start; i < stop; i++)
{ {
*lwal++ = lwall[i] + xoffset; *lwal++ = lwall[i] + xoffset;

View file

@ -108,7 +108,9 @@ FTexture * FTexture::CreateTexture (int lumpnum, int usetype)
int w = tex->GetWidth(); int w = tex->GetWidth();
int h = tex->GetHeight(); int h = tex->GetHeight();
// Auto-scale flats with dimensions 128x128 and 256x256 // Auto-scale flats with dimensions 128x128 and 256x256.
// In hindsight, a bad idea, but RandomLag made it sound better than it really is.
// Now we're stuck with this stupid behaviour.
if (w==128 && h==128) if (w==128 && h==128)
{ {
tex->xScale = tex->yScale = 2*FRACUNIT; tex->xScale = tex->yScale = 2*FRACUNIT;