From fc8a7a6ca550209240381948afad3a21936eeda9 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Mon, 3 Jan 2022 20:02:22 -0500 Subject: [PATCH] Scale gravity with map scale instead of object scale --- src/p_map.c | 8 +++----- src/p_mobj.c | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/p_map.c b/src/p_map.c index 7899a0964..33c1821d9 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -291,9 +291,7 @@ static boolean P_SpecialIsLinedefCrossType(line_t *ld) // boolean P_DoSpring(mobj_t *spring, mobj_t *object) { - //INT32 pflags; - const fixed_t hscale = mapobjectscale + (mapobjectscale - object->scale); - const fixed_t vscale = mapobjectscale + (object->scale - mapobjectscale); + const fixed_t scaleVal = FixedSqrt(FixedMul(mapobjectscale, spring->scale)); fixed_t vertispeed = spring->info->mass; fixed_t horizspeed = spring->info->damage; UINT16 starcolor = (spring->info->painchance % numskincolors); @@ -370,13 +368,13 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object) if (vertispeed) { - object->momz = FixedMul(vertispeed, FixedSqrt(FixedMul(vscale, spring->scale))); + object->momz = FixedMul(vertispeed, scaleVal); } if (horizspeed) { angle_t finalAngle = spring->angle; - fixed_t finalSpeed = FixedMul(horizspeed, FixedSqrt(FixedMul(hscale, spring->scale))); + fixed_t finalSpeed = FixedMul(horizspeed, scaleVal); fixed_t objectSpeed; if (object->player) diff --git a/src/p_mobj.c b/src/p_mobj.c index 57034ebe0..37385c735 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1201,7 +1201,7 @@ fixed_t P_GetMobjGravity(mobj_t *mo) gravityadd = -((gravityadd/5) + (gravityadd/8)); } - gravityadd = FixedMul(gravityadd, mo->scale); + gravityadd = FixedMul(gravityadd, mapobjectscale); return gravityadd; }