Fix empty item roulettes

This commit is contained in:
Antonio Martinez 2025-07-07 20:02:52 -04:00
parent 719ba464af
commit 5df0a31363

View file

@ -1232,6 +1232,17 @@ static boolean K_TimingPermitsItem(kartitems_t item, const itemroulette_t *roule
return true;
}
static void K_FixEmptyRoulette(const player_t *player, itemroulette_t *const roulette)
{
if (roulette->itemListLen > 0)
return;
if (K_PlayerUsesBotMovement(player)) // Bots can't use certain items. Give them _something_.
K_PushToRouletteItemList(roulette, KITEM_SUPERRING);
else // Players can use all items, so this should never happen.
K_PushToRouletteItemList(roulette, KITEM_SAD);
}
/*--------------------------------------------------
void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulette, boolean ringbox, boolean dryrun)
@ -1376,6 +1387,7 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet
if (K_ForcedSPB(player, roulette) == true)
{
K_AddItemToReel(player, roulette, KITEM_SPB);
K_FixEmptyRoulette(player, roulette);
return;
}
@ -1400,6 +1412,7 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet
// singleItem = KITEM_SAD by default,
// so it will be used when all items are turned off.
K_AddItemToReel(player, roulette, singleItem);
K_FixEmptyRoulette(player, roulette);
return;
}
@ -1755,6 +1768,8 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet
totalSpawnChance--;
}
K_FixEmptyRoulette(player, roulette);
}
/*--------------------------------------------------