From dc1fbb2e9a5372f5e76eef475cf3b05f7a1da154 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Fri, 26 Feb 2021 05:42:59 -0500 Subject: [PATCH] Fix bug that caused bots to go into ring debt a lot --- src/k_botitem.c | 2 +- src/k_kart.c | 4 ++-- src/k_kart.h | 2 +- src/p_enemy.c | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/k_botitem.c b/src/k_botitem.c index c82c9808c..070f927c8 100644 --- a/src/k_botitem.c +++ b/src/k_botitem.c @@ -909,7 +909,7 @@ static void K_BotItemFlame(player_t *player, ticcmd_t *cmd) --------------------------------------------------*/ static void K_BotItemRings(player_t *player, ticcmd_t *cmd) { - INT32 saferingsval = 16 - K_GetKartRingPower(player); + INT32 saferingsval = 16 - K_GetKartRingPower(player, false); if (player->speed < K_GetKartSpeed(player, false)/2 // Being slowed down too much || player->kartstuff[k_speedboost] > (FRACUNIT/5)) // Have another type of boost (tethering) diff --git a/src/k_kart.c b/src/k_kart.c index 341aa8f94..91335cdcb 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -6939,11 +6939,11 @@ void K_UpdateDistanceFromFinishLine(player_t *const player) } } -INT32 K_GetKartRingPower(player_t *player) +INT32 K_GetKartRingPower(player_t *player, boolean boosted) { INT32 ringPower = ((9 - player->kartspeed) + (9 - player->kartweight)) / 2; - if (K_PlayerUsesBotMovement(player)) + if (boosted == true && K_PlayerUsesBotMovement(player)) { // Double for Lv. 9 ringPower += (player->botvars.difficulty * ringPower) / MAXBOTDIFFICULTY; diff --git a/src/k_kart.h b/src/k_kart.h index c91bba806..bde845a22 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -69,7 +69,7 @@ void K_UpdateHnextList(player_t *player, boolean clean); void K_DropHnextList(player_t *player, boolean keepshields); void K_RepairOrbitChain(mobj_t *orbit); player_t *K_FindJawzTarget(mobj_t *actor, player_t *source); -INT32 K_GetKartRingPower(player_t *player); +INT32 K_GetKartRingPower(player_t *player, boolean boosted); void K_UpdateDistanceFromFinishLine(player_t *const player); boolean K_CheckPlayersRespawnColliding(INT32 playernum, fixed_t x, fixed_t y); INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue); diff --git a/src/p_enemy.c b/src/p_enemy.c index c96bf979f..ce3186442 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -4159,7 +4159,7 @@ void A_AttractChase(mobj_t *actor) angle_t offset = FixedAngle(18<target->player->kartstuff[k_ringboost] += K_GetKartRingPower(actor->target->player)+3; + actor->target->player->kartstuff[k_ringboost] += K_GetKartRingPower(actor->target->player, true) + 3; S_StartSound(actor->target, sfx_s1b5); sparkle = P_SpawnMobj(actor->target->x, actor->target->y, actor->target->z, MT_RINGSPARKS); @@ -4187,7 +4187,7 @@ void A_AttractChase(mobj_t *actor) if (actor->extravalue1 >= 16) { if (!P_GivePlayerRings(actor->target->player, 1)) // returns 0 if addition failed - actor->target->player->kartstuff[k_ringboost] += K_GetKartRingPower(actor->target->player)+3; + actor->target->player->kartstuff[k_ringboost] += K_GetKartRingPower(actor->target->player, true) + 3; if (actor->cvmem) // caching S_StartSound(actor->target, sfx_s1c5);