Fixed that really annoying bug where you disappear when spindashing on top of a FOF whilst wearing a multi-layer shield.

(the problem was that MT_OVERLAY's default radius and height were never getting changed from 1*FRACUNIT, and that meant that when you spindashed, the game considered it completely below the surface of the flat you were standing on. Since you're not usually clipped on flats that don't belong to FOFs, we didn't notice this issue sooner.)
This commit is contained in:
toasterbabe 2016-09-27 17:17:23 +01:00
parent b949f49c68
commit 8881a413f3

View file

@ -5930,6 +5930,8 @@ static boolean P_ShieldLook(mobj_t *thing, shieldtype_t shield)
P_UnsetThingPosition(thing);
thing->x = thing->target->x;
thing->y = thing->target->y;
thing->radius = thing->target->radius;
thing->height = thing->target->height;
if (thing->eflags & MFE_VERTICALFLIP)
thing->z = thing->target->z + thing->target->height - thing->height + FixedDiv(P_GetPlayerHeight(thing->target->player) - thing->target->height, 3*FRACUNIT) - FixedMul(2*FRACUNIT, thing->target->scale);
else
@ -6048,6 +6050,8 @@ void P_RunOverlays(void)
P_UnsetThingPosition(mo);
mo->x = destx;
mo->y = desty;
mo->radius = mo->target->radius;
mo->height = mo->target->height;
if (mo->eflags & MFE_VERTICALFLIP)
mo->z = (mo->target->z + mo->target->height - mo->height) - zoffs;
else