Add some generalized functions for getting floating item frames

This commit is contained in:
lachablock 2021-06-12 14:12:45 +10:00
parent bac7de2ea7
commit f031177ca4
3 changed files with 16 additions and 4 deletions

View file

@ -9139,4 +9139,14 @@ void K_CheckSpectateStatus(void)
}
}
UINT8 K_GetInvincibilityItemFrame(void)
{
return ((leveltime % (7*3)) / 3);
}
UINT8 K_GetOrbinautItemFrame(UINT8 count)
{
return min(count - 1, 3);
}
//}

View file

@ -116,6 +116,8 @@ SINT8 K_Sliptiding(player_t *player);
void K_AdjustPlayerFriction(player_t *player);
void K_MoveKartPlayer(player_t *player, boolean onground);
void K_CheckSpectateStatus(void);
UINT8 K_GetInvincibilityItemFrame(void);
UINT8 K_GetOrbinautItemFrame(UINT8 count);
// sound stuff for lua
void K_PlayAttackTaunt(mobj_t *source);

View file

@ -5457,11 +5457,11 @@ static void P_MobjSceneryThink(mobj_t *mobj)
{
case KITEM_ORBINAUT:
mobj->tracer->sprite = SPR_ITMO;
mobj->tracer->frame = FF_FULLBRIGHT|(min(mobj->target->player->itemamount-1, 3));
mobj->tracer->frame = FF_FULLBRIGHT|K_GetOrbinautItemFrame(mobj->target->player->itemamount);
break;
case KITEM_INVINCIBILITY:
mobj->tracer->sprite = SPR_ITMI;
mobj->tracer->frame = FF_FULLBRIGHT|((leveltime % (7*3)) / 3);
mobj->tracer->frame = FF_FULLBRIGHT|K_GetInvincibilityItemFrame();
break;
case KITEM_SAD:
mobj->tracer->sprite = SPR_ITEM;
@ -6063,11 +6063,11 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
{
case KITEM_ORBINAUT:
mobj->sprite = SPR_ITMO;
mobj->frame = FF_FULLBRIGHT|FF_PAPERSPRITE|(min(mobj->movecount-1, 3));
mobj->frame = FF_FULLBRIGHT|FF_PAPERSPRITE|K_GetOrbinautItemFrame(mobj->movecount);
break;
case KITEM_INVINCIBILITY:
mobj->sprite = SPR_ITMI;
mobj->frame = FF_FULLBRIGHT|FF_PAPERSPRITE|((leveltime % (7*3)) / 3);
mobj->frame = FF_FULLBRIGHT|FF_PAPERSPRITE|K_GetInvincibilityItemFrame();
break;
case KITEM_SAD:
mobj->sprite = SPR_ITEM;