From 619402666a92bcb4d5e6496c4a91df67466fa8b5 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Fri, 30 Oct 2020 22:57:42 -0400 Subject: [PATCH] Better Jawz - More friction in Battle - Throwables take your momz (has been bothering me for an eternity) --- src/k_kart.c | 2 ++ src/p_enemy.c | 2 +- src/p_mobj.c | 7 +++---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index bbdc62e82..67859e077 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2889,8 +2889,10 @@ static mobj_t *K_SpawnKartMissile(mobj_t *source, mobjtype_t type, angle_t an, I } th->angle = an; + th->momx = FixedMul(finalspeed, FINECOSINE(an>>ANGLETOFINESHIFT)); th->momy = FixedMul(finalspeed, FINESINE(an>>ANGLETOFINESHIFT)); + th->momz = source->momz; switch (type) { diff --git a/src/p_enemy.c b/src/p_enemy.c index 630e3b29e..790144caa 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -8676,7 +8676,7 @@ void A_JawzChase(mobj_t *actor) angle_t angledelta = actor->angle - targetangle; boolean turnclockwise = true; - if ((gametyperules & GTR_CIRCUIT)) + if (gametyperules & GTR_CIRCUIT) { const fixed_t distbarrier = FixedMul(512*mapobjectscale, FRACUNIT + ((gamespeed-1) * (FRACUNIT/4))); const fixed_t distaway = P_AproxDistance(actor->tracer->x - actor->x, actor->tracer->y - actor->y); diff --git a/src/p_mobj.c b/src/p_mobj.c index e13e9f428..1b53f8072 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1166,10 +1166,6 @@ fixed_t P_GetMobjGravity(mobj_t *mo) case MT_SINK: if (mo->extravalue2 > 0) gravityadd *= mo->extravalue2; - /* FALLTHRU */ - case MT_ORBINAUT: - case MT_JAWZ: - case MT_JAWZ_DUD: gravityadd = (5*gravityadd)/2; break; case MT_KARMAFIREWORK: @@ -6184,6 +6180,9 @@ static boolean P_MobjRegularThink(mobj_t *mobj) if (P_MobjTouchingSectorSpecial(mobj, 3, 1, true)) K_DoPogoSpring(mobj, 0, 1); + if (!(gametyperules & GTR_CIRCUIT)) + mobj->friction = max(0, 3 * mobj->friction / 4); + break; } case MT_JAWZ_DUD: