From 6be405953f1ec0931ef30523916a5d92a42e6e59 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Mon, 11 Mar 2019 12:39:26 -0400 Subject: [PATCH] Auto-use rings from Super Ring if they'd be wasted due to the cap --- src/p_enemy.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/p_enemy.c b/src/p_enemy.c index c9d20cd05..8afe1d50c 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -3625,6 +3625,7 @@ void A_AttractChase(mobj_t *actor) if (actor->extravalue1) // SRB2Kart { +#define RINGBOOSTPWR (((9 - actor->target->player->kartspeed) + (9 - actor->target->player->kartweight)) / 2) if (!actor->target || P_MobjWasRemoved(actor->target) || !actor->target->player) { P_RemoveMobj(actor); @@ -3635,7 +3636,6 @@ void A_AttractChase(mobj_t *actor) { if (actor->extravalue1 >= 21) { -#define RINGBOOSTPWR (((9 - actor->target->player->kartspeed) + (9 - actor->target->player->kartweight)) / 2) // Base add is 3 tics for 9,9, adds 1.5 tics for each point closer to the 1,1 end actor->target->player->kartstuff[k_ringboost] += ((3*RINGBOOSTPWR)/2) + 3; S_StartSound(actor->target, sfx_s1b5); @@ -3657,12 +3657,17 @@ void A_AttractChase(mobj_t *actor) { if (actor->extravalue1 >= 16) { - P_GivePlayerRings(actor->target->player, 1); - actor->target->player->kartstuff[k_pickuprings]--; + if (actor->target->player[k_rings] >= 20) + actor->target->player->kartstuff[k_ringboost] += ((3*RINGBOOSTPWR)/2) + 3; + else + P_GivePlayerRings(actor->target->player, 1); + if (actor->cvmem) // caching S_StartSound(actor->target, sfx_s1c5); else S_StartSound(actor->target, sfx_s227); + + actor->target->player->kartstuff[k_pickuprings]--; P_RemoveMobj(actor); return; } @@ -3680,6 +3685,7 @@ void A_AttractChase(mobj_t *actor) actor->extravalue1++; } } +#undef RINGBOOSTPWR } else {