From 1bc5976534a7b104fcbffefec2cb70f2ab30f4e8 Mon Sep 17 00:00:00 2001 From: mazmazz Date: Mon, 13 Aug 2018 04:49:32 -0400 Subject: [PATCH 1/2] Correct hitboxradius value; proper sparkle->z when moving x/y --- src/p_mobj.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/p_mobj.c b/src/p_mobj.c index 5292ef15e..2a3e8cc84 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -7951,7 +7951,7 @@ void P_MobjThinker(mobj_t *mobj) if (goalpost->x != mobj->x || goalpost->y != mobj->y) { P_TeleportMove(goalpost, mobj->x, mobj->y, goalpost->z); - P_TeleportMove(sparkle, mobj->x, mobj->y, goalpost->z); + P_TeleportMove(sparkle, mobj->x, mobj->y, sparkle->z); } if (droneman->x != mobj->x || droneman->y != mobj->y) @@ -10686,7 +10686,7 @@ ML_EFFECT4 : Don't clip inside the ground boolean bottomoffsetted = !(mthing->options & MTF_OBJECTSPECIAL) && !(mthing->options & MTF_EXTRA); INT16 timelimit = mthing->angle & 0xFFF; - fixed_t hitboxradius = (mthing->angle & 0xF000) * 32 * FRACUNIT; + fixed_t hitboxradius = ((mthing->angle & 0xF000) >> 12) * 32 * FRACUNIT; fixed_t hitboxheight = mthing->extrainfo * 32 * FRACUNIT; fixed_t oldheight = mobj->height; fixed_t dronemanoffset, goaloffset, sparkleoffset, droneboxmandiff, dronemangoaldiff; From 6585ca3df3943ab93c110de583ae9f72dc40db71 Mon Sep 17 00:00:00 2001 From: mazmazz Date: Mon, 13 Aug 2018 09:50:50 -0400 Subject: [PATCH 2/2] Make Drone visual elements react to height change --- src/p_mobj.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/p_mobj.c b/src/p_mobj.c index 2a3e8cc84..c7efd9081 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -7880,6 +7880,7 @@ void P_MobjThinker(mobj_t *mobj) if (goalpost->destscale != mobj->destscale || goalpost->movefactor != mobj->z + || goalpost->friction != mobj->height || flipchanged || goalpost->threshold != (mobj->flags & (MF_SLIDEME | MF_GRENADEBOUNCE))) { @@ -7939,10 +7940,11 @@ void P_MobjThinker(mobj_t *mobj) P_TeleportMove(goalpost, mobj->x, mobj->y, mobj->z + goaloffset); P_TeleportMove(sparkle, mobj->x, mobj->y, mobj->z + sparkleoffset); - if (goalpost->movefactor != mobj->z) + if (goalpost->movefactor != mobj->z || goalpost->friction != mobj->height) { P_TeleportMove(droneman, mobj->x, mobj->y, mobj->z + dronemanoffset); goalpost->movefactor = mobj->z; + goalpost->friction = mobj->height; } goalpost->threshold = mobj->flags & (MF_SLIDEME | MF_GRENADEBOUNCE); } @@ -10790,6 +10792,7 @@ ML_EFFECT4 : Don't clip inside the ground // Remember old Z position and flags for correction detection goalpost->movefactor = mobj->z; + goalpost->friction = mobj->height; goalpost->threshold = mobj->flags & (MF_SLIDEME | MF_GRENADEBOUNCE); } break;