From 152bb3260915cfb37deaf7c5f15ac4f8ddf334a3 Mon Sep 17 00:00:00 2001 From: James R Date: Tue, 27 Dec 2022 22:32:57 -0800 Subject: [PATCH] Add K_UpdateMobjItemOverlay --- src/k_kart.c | 23 +++++++++++++++++++++++ src/k_kart.h | 2 ++ src/p_mobj.c | 20 +------------------- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 8e71359b9..855a43bd0 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -10091,4 +10091,27 @@ boolean K_RingsActive(void) return true; } +void K_UpdateMobjItemOverlay(mobj_t *part, SINT8 itemType, UINT8 itemCount) +{ + switch (itemType) + { + case KITEM_ORBINAUT: + part->sprite = SPR_ITMO; + part->frame = FF_FULLBRIGHT|FF_PAPERSPRITE|K_GetOrbinautItemFrame(itemCount); + break; + case KITEM_INVINCIBILITY: + part->sprite = SPR_ITMI; + part->frame = FF_FULLBRIGHT|FF_PAPERSPRITE|K_GetInvincibilityItemFrame(); + break; + case KITEM_SAD: + part->sprite = SPR_ITEM; + part->frame = FF_FULLBRIGHT|FF_PAPERSPRITE; + break; + default: + part->sprite = SPR_ITEM; + part->frame = FF_FULLBRIGHT|FF_PAPERSPRITE|(itemType); + break; + } +} + //} diff --git a/src/k_kart.h b/src/k_kart.h index 8d14da255..b86b6733c 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -184,6 +184,8 @@ boolean K_SafeRespawnPosition(mobj_t * mo); boolean K_RingsActive(void); +void K_UpdateMobjItemOverlay(mobj_t *part, SINT8 itemType, UINT8 itemCount); + #ifdef __cplusplus } // extern "C" #endif diff --git a/src/p_mobj.c b/src/p_mobj.c index 38a2abf69..b250b3e58 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -4135,25 +4135,7 @@ static void P_RefreshItemCapsuleParts(mobj_t *mobj) part->threshold = mobj->threshold; part->movecount = mobj->movecount; - switch (itemType) - { - case KITEM_ORBINAUT: - part->sprite = SPR_ITMO; - part->frame = FF_FULLBRIGHT|FF_PAPERSPRITE|K_GetOrbinautItemFrame(mobj->movecount); - break; - case KITEM_INVINCIBILITY: - part->sprite = SPR_ITMI; - part->frame = FF_FULLBRIGHT|FF_PAPERSPRITE|K_GetInvincibilityItemFrame(); - break; - case KITEM_SAD: - part->sprite = SPR_ITEM; - part->frame = FF_FULLBRIGHT|FF_PAPERSPRITE; - break; - default: - part->sprite = SPR_ITEM; - part->frame = FF_FULLBRIGHT|FF_PAPERSPRITE|(itemType); - break; - } + K_UpdateMobjItemOverlay(part, itemType, mobj->movecount); // update number frame if (K_GetShieldFromItem(itemType) != KSHIELD_NONE) // shields don't stack, so don't show a number