- Backport r1253 through r1256 and r1259 of GZDoom.
* By pressing request, allow Linux users to build ZDoom with an FMOD version that doesn't give them 3D sound positioning. :p * Fixed severe copy-pasta portal copy bug. * 3D floors hidden by being moved above the ceiling or below the floor will no longer show in the automap. * Reject TEXTURES scale of 0. They'd do nothing but provoke a division by zero error. * Maybe fixed Linux compilation? SVN r3297 (trunk)
This commit is contained in:
parent
3c47a30249
commit
9c8bb236ec
5 changed files with 25 additions and 14 deletions
|
|
@ -1670,6 +1670,7 @@ void AM_drawSubsectors()
|
|||
// (Make the comparison in floating point to avoid overflows and improve performance.)
|
||||
double secx;
|
||||
double secy;
|
||||
double seczb, seczt;
|
||||
double cmpz = FIXED2DBL(viewz);
|
||||
|
||||
if (players[consoleplayer].camera && sec == players[consoleplayer].camera->Sector)
|
||||
|
|
@ -1683,6 +1684,8 @@ void AM_drawSubsectors()
|
|||
secx = FIXED2DBL(sec->soundorg[0]);
|
||||
secy = FIXED2DBL(sec->soundorg[1]);
|
||||
}
|
||||
seczb = floorplane->ZatPoint(secx, secy);
|
||||
seczt = sec->ceilingplane.ZatPoint(secx, secy);
|
||||
|
||||
for (unsigned int i = 0; i < sec->e->XFloor.ffloors.Size(); ++i)
|
||||
{
|
||||
|
|
@ -1690,7 +1693,13 @@ void AM_drawSubsectors()
|
|||
if (!(rover->flags & FF_EXISTS)) continue;
|
||||
if (rover->flags & FF_FOG) continue;
|
||||
if (rover->alpha == 0) continue;
|
||||
if (rover->top.plane->ZatPoint(secx, secy) < cmpz)
|
||||
double roverz = rover->top.plane->ZatPoint(secx, secy);
|
||||
// Ignore 3D floors that are above or below the sector itself:
|
||||
// they are hidden. Since 3D floors are sorted top to bottom,
|
||||
// if we get below the sector floor, we can stop.
|
||||
if (roverz > seczt) continue;
|
||||
if (roverz < seczb) break;
|
||||
if (roverz < cmpz)
|
||||
{
|
||||
maptex = *(rover->top.texture);
|
||||
floorplane = rover->top.plane;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue