Make P_CanPickupItem check whether Sonic is in a state to recieve it when Tailsbot tries to get it.

Specfically, this fixes the case where Sonic runs into something hazardous and spills his rings, but Tailsbot is immediately behind and ends up picking them all up the tic before they also get hurt.
This commit is contained in:
toaster 2019-11-26 11:55:31 +00:00
parent e8b3f84741
commit 6ac44415fb
1 changed files with 10 additions and 4 deletions

View File

@ -148,15 +148,21 @@ void P_ResetStarposts(void)
//
boolean P_CanPickupItem(player_t *player, boolean weapon)
{
if (player->bot && weapon)
soniccheck:
if (!player->mo || player->mo->health <= 0)
return false;
if (player->bot)
{
if (weapon || players[consoleplayer].bot)
return false;
player = &players[consoleplayer];
goto soniccheck;
}
if (player->powers[pw_flashing] > (flashingtics/4)*3 && player->powers[pw_flashing] < UINT16_MAX)
return false;
if (player->mo && player->mo->health <= 0)
return false;
return true;
}