Check that top of sprite is above plane or bottom is below

This fixes slightly raised fofs drawing on top of sprites that should be in
front of them. Previously would check that the bottom of the object was above
the plane. Now also uses sprite offsets like the fof seg sorting does.
This commit is contained in:
James R 2020-11-02 02:33:49 -08:00
parent 601451bead
commit 9abdb855f9

View file

@ -2425,19 +2425,15 @@ static void R_CreateDrawNodes(maskcount_t* mask, drawnode_t* head, boolean temps
planeobjectz = P_GetZAt(r2->plane->slope, rover->gx, rover->gy, r2->plane->height);
planecameraz = P_GetZAt(r2->plane->slope, viewx, viewy, r2->plane->height);
if (rover->mobjflags & MF_NOCLIPHEIGHT)
// bird: if any part of the sprite peeks in front the plane
if (planecameraz < viewz)
{
//Objects with NOCLIPHEIGHT can appear halfway in.
if (planecameraz < viewz && rover->pz+(rover->thingheight/2) >= planeobjectz)
continue;
if (planecameraz > viewz && rover->pzt-(rover->thingheight/2) <= planeobjectz)
if (rover->gzt >= planeobjectz)
continue;
}
else
else if (planecameraz > viewz)
{
if (planecameraz < viewz && rover->pz >= planeobjectz)
continue;
if (planecameraz > viewz && rover->pzt <= planeobjectz)
if (rover->gz <= planeobjectz)
continue;
}