mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-23 12:52:57 +00:00
Fix polyobject midtextures being stretched into infinity
This commit is contained in:
parent
987d2ee59a
commit
ebb63499e0
1 changed files with 19 additions and 8 deletions
|
@ -954,6 +954,7 @@ static boolean HWR_BlendMidtextureSurface(FSurfaceInfo *pSurf)
|
||||||
|
|
||||||
static void HWR_RenderMidtexture(INT32 gl_midtexture, float cliplow, float cliphigh, fixed_t worldtop, fixed_t worldbottom, fixed_t worldhigh, fixed_t worldlow, fixed_t worldtopslope, fixed_t worldbottomslope, fixed_t worldhighslope, fixed_t worldlowslope, UINT32 lightnum, FOutVector *inWallVerts)
|
static void HWR_RenderMidtexture(INT32 gl_midtexture, float cliplow, float cliphigh, fixed_t worldtop, fixed_t worldbottom, fixed_t worldhigh, fixed_t worldlow, fixed_t worldtopslope, fixed_t worldbottomslope, fixed_t worldhighslope, fixed_t worldlowslope, UINT32 lightnum, FOutVector *inWallVerts)
|
||||||
{
|
{
|
||||||
|
sector_t *front, *back;
|
||||||
FOutVector wallVerts[4];
|
FOutVector wallVerts[4];
|
||||||
|
|
||||||
FSurfaceInfo Surf;
|
FSurfaceInfo Surf;
|
||||||
|
@ -963,6 +964,16 @@ static void HWR_RenderMidtexture(INT32 gl_midtexture, float cliplow, float cliph
|
||||||
if (!HWR_BlendMidtextureSurface(&Surf))
|
if (!HWR_BlendMidtextureSurface(&Surf))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (gl_linedef->frontsector->heightsec != -1)
|
||||||
|
front = §ors[gl_linedef->frontsector->heightsec];
|
||||||
|
else
|
||||||
|
front = gl_linedef->frontsector;
|
||||||
|
|
||||||
|
if (gl_linedef->backsector->heightsec != -1)
|
||||||
|
back = §ors[gl_linedef->backsector->heightsec];
|
||||||
|
else
|
||||||
|
back = gl_linedef->backsector;
|
||||||
|
|
||||||
fixed_t texheight = FixedDiv(textureheight[gl_midtexture], abs(gl_sidedef->scaley_mid));
|
fixed_t texheight = FixedDiv(textureheight[gl_midtexture], abs(gl_sidedef->scaley_mid));
|
||||||
INT32 repeats;
|
INT32 repeats;
|
||||||
|
|
||||||
|
@ -972,15 +983,15 @@ static void HWR_RenderMidtexture(INT32 gl_midtexture, float cliplow, float cliph
|
||||||
{
|
{
|
||||||
fixed_t high, low;
|
fixed_t high, low;
|
||||||
|
|
||||||
if (gl_frontsector->ceilingheight > gl_backsector->ceilingheight)
|
if (front->ceilingheight > back->ceilingheight)
|
||||||
high = gl_backsector->ceilingheight;
|
high = back->ceilingheight;
|
||||||
else
|
else
|
||||||
high = gl_frontsector->ceilingheight;
|
high = front->ceilingheight;
|
||||||
|
|
||||||
if (gl_frontsector->floorheight > gl_backsector->floorheight)
|
if (front->floorheight > back->floorheight)
|
||||||
low = gl_frontsector->floorheight;
|
low = front->floorheight;
|
||||||
else
|
else
|
||||||
low = gl_backsector->floorheight;
|
low = back->floorheight;
|
||||||
|
|
||||||
repeats = (high - low) / texheight;
|
repeats = (high - low) / texheight;
|
||||||
if ((high - low) % texheight)
|
if ((high - low) % texheight)
|
||||||
|
@ -1007,8 +1018,8 @@ static void HWR_RenderMidtexture(INT32 gl_midtexture, float cliplow, float cliph
|
||||||
if (gl_curline->polyseg)
|
if (gl_curline->polyseg)
|
||||||
{
|
{
|
||||||
// Change this when polyobjects support slopes
|
// Change this when polyobjects support slopes
|
||||||
popentop = popentopslope = gl_curline->backsector->ceilingheight;
|
popentop = popentopslope = back->ceilingheight;
|
||||||
popenbottom = popenbottomslope = gl_curline->backsector->floorheight;
|
popenbottom = popenbottomslope = back->floorheight;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue