Bots: Fix a couple bugs with item priority

- Fix Ring Debt priorities being used even when not at 0 rings
- Fix extra item results not being considered for priorities.
This commit is contained in:
Sally Coolatta 2023-05-15 06:51:13 -04:00
parent 7d7875d7be
commit 69181e4ff2
3 changed files with 17 additions and 6 deletions

View file

@ -1638,6 +1638,15 @@ void K_BotPickItemPriority(player_t *player)
continue;
}
if (priority == BOT_ITEM_PR_RINGDEBT)
{
if (player->rings > 0)
{
// Only consider this priority when in ring debt.
continue;
}
}
player->botvars.roulettePriority = max( player->botvars.roulettePriority, priority );
}

View file

@ -263,13 +263,15 @@ boolean K_ItemSingularity(kartitems_t item)
}
/*--------------------------------------------------
botItemPriority_e K_GetBotItemPriority(kartitems_t type)
botItemPriority_e K_GetBotItemPriority(kartitems_t result)
See header file for description.
--------------------------------------------------*/
botItemPriority_e K_GetBotItemPriority(kartitems_t type)
botItemPriority_e K_GetBotItemPriority(kartitems_t result)
{
switch (type)
result = K_ItemResultToType(result);
switch (result)
{
case KITEM_SPB:
{

View file

@ -58,20 +58,20 @@ boolean K_ItemSingularity(kartitems_t item);
/*--------------------------------------------------
botItemPriority_e K_GetBotItemPriority(kartitems_t type)
botItemPriority_e K_GetBotItemPriority(kartitems_t result)
Returns an item's priority value, which
bots use to determine what kind of item they
want when the roulette is started.
Input Arguments:-
item - The item to check.
result - The item result type to check.
Return:-
The item's priority type.
--------------------------------------------------*/
botItemPriority_e K_GetBotItemPriority(kartitems_t type);
botItemPriority_e K_GetBotItemPriority(kartitems_t result);
/*--------------------------------------------------