From aa7c7fbf94fcd103a6e95cb787b4739197c0fa17 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Sun, 27 Nov 2022 03:33:01 -0500 Subject: [PATCH] Bots don't use boost items in the air No Sneaker, Rocket Sneaker, or Ring waste when they can't apply! --- src/k_botitem.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/k_botitem.c b/src/k_botitem.c index 49b387d28..8c85a3c3c 100644 --- a/src/k_botitem.c +++ b/src/k_botitem.c @@ -486,6 +486,12 @@ static void K_BotItemGenericOrbitShield(player_t *player, ticcmd_t *cmd) --------------------------------------------------*/ static void K_BotItemSneaker(player_t *player, ticcmd_t *cmd) { + if (P_IsObjectOnGround(player->mo) == false) + { + // Don't use while mid-air. + return; + } + if ((player->offroad && K_ApplyOffroad(player)) // Stuck in offroad, use it NOW || K_GetWaypointIsShortcut(player->nextwaypoint) == true // Going toward a shortcut! || player->speed < K_GetKartSpeed(player, false, true) / 2 // Being slowed down too much @@ -518,6 +524,12 @@ static void K_BotItemSneaker(player_t *player, ticcmd_t *cmd) --------------------------------------------------*/ static void K_BotItemRocketSneaker(player_t *player, ticcmd_t *cmd) { + if (P_IsObjectOnGround(player->mo) == false) + { + // Don't use while mid-air. + return; + } + if (player->botvars.itemconfirm > TICRATE) { if (player->sneakertimer == 0 && K_ItemButtonWasDown(player) == false) @@ -1182,6 +1194,12 @@ static void K_BotItemRings(player_t *player, ticcmd_t *cmd) { INT32 saferingsval = 16 - K_GetKartRingPower(player, false); + if (P_IsObjectOnGround(player->mo) == false) + { + // Don't use while mid-air. + return; + } + if (player->speed < K_GetKartSpeed(player, false, true) / 2 // Being slowed down too much || player->speedboost > (FRACUNIT/5)) // Have another type of boost (tethering) {