From df3209281eb9431564c926aa2593544de8f3f1dc Mon Sep 17 00:00:00 2001 From: NepDisk Date: Tue, 17 Feb 2026 10:52:01 -0500 Subject: [PATCH] Remerge S-Monitor back into Invin --- src/info/kartitems.h | 1 - src/k_botitem.cpp | 1 - src/k_hud.c | 6 +++--- src/k_items.c | 16 +++++----------- src/p_mobj.c | 2 +- 5 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/info/kartitems.h b/src/info/kartitems.h index 776761be5..279c1b77d 100644 --- a/src/info/kartitems.h +++ b/src/info/kartitems.h @@ -20,4 +20,3 @@ _(LANDMINE) _(BUBBLESHIELD) _(FLAMESHIELD) _(EGGBRICK) -_(SMONITOR) diff --git a/src/k_botitem.cpp b/src/k_botitem.cpp index f4c04d65f..8916cc795 100644 --- a/src/k_botitem.cpp +++ b/src/k_botitem.cpp @@ -1263,7 +1263,6 @@ void K_BotItemUsage(botdata_t *bd, const player_t *player) case KITEM_GROW: case KITEM_SHRINK: case KITEM_SUPERRING: - case KITEM_SMONITOR: K_BotItemGenericTap(bd); break; case KITEM_ROCKETSNEAKER: diff --git a/src/k_hud.c b/src/k_hud.c index 06b4bf214..bc5523cd9 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -1410,7 +1410,7 @@ static void K_drawKartItem(void) if (leveltime & 1) { - localpatch = K_GetCachedItemPatch(KITEM_SMONITOR, tiny, 0); + localpatch = K_GetCachedItemPatchEx(KITEM_INVINCIBILITY, tiny, 0, K_IsKartItemAlternate(KITEM_INVINCIBILITY)); } else localpatch = kp_nodraw; @@ -3527,11 +3527,11 @@ static void K_drawKartPlayerCheck(void) { pnum += 4; } - else if (checkplayer->itemtype == KITEM_INVINCIBILITY || checkplayer->invincibilitytimer) + else if (!K_IsKartItemAlternate(KITEM_INVINCIBILITY) && (checkplayer->itemtype == KITEM_INVINCIBILITY || checkplayer->invincibilitytimer)) { pnum += 2; } - else if (checkplayer->itemtype == KITEM_SMONITOR || checkplayer->smonitortimer) + else if (K_IsKartItemAlternate(KITEM_INVINCIBILITY) && (checkplayer->itemtype == KITEM_INVINCIBILITY || checkplayer->smonitortimer)) { // FIXME: Separate "CHECK" icon(?) pnum += 2; diff --git a/src/k_items.c b/src/k_items.c index a7704cfe2..7edea889b 100644 --- a/src/k_items.c +++ b/src/k_items.c @@ -358,7 +358,7 @@ static boolean K_DontDoubleMyItems(kartitemtype_e type, UINT8 amount) || type == KITEM_INVINCIBILITY || type == KITEM_GROW || type == KITEM_BUBBLESHIELD || type == KITEM_FLAMESHIELD || type == KITEM_ROCKETSNEAKER || type == KITEM_SHRINK - || type == KITEM_HYUDORO || type == KITEM_SMONITOR + || type == KITEM_HYUDORO || (type == KITEM_BANANA && amount >= 4) || (type == KITEM_ORBINAUT && amount >= 3) || (type == KITEM_SNEAKER && amount >= 3) @@ -2066,16 +2066,10 @@ void K_PlayerItemThink(player_t *player, boolean onground) case KITEM_INVINCIBILITY: if (ATTACK_IS_DOWN && !HOLDING_ITEM && NO_HYUDORO) // Doesn't hold your item slot hostage, so you're free to waste it if you have multiple { - K_DoInvincibility(player, INVINTIME); - K_PlayPowerGloatSound(player->mo); - player->itemamount--; - K_BotResetItemConfirm(player, false); - } - break; - case KITEM_SMONITOR: - if (ATTACK_IS_DOWN && !HOLDING_ITEM && NO_HYUDORO) - { - K_DoSMonitor(player, SMONITORTIME); + if (K_IsKartItemAlternate(KITEM_INVINCIBILITY)) + K_DoSMonitor(player, SMONITORTIME); + else + K_DoInvincibility(player, INVINTIME); K_PlayPowerGloatSound(player->mo); player->itemamount--; K_BotResetItemConfirm(player, false); diff --git a/src/p_mobj.c b/src/p_mobj.c index 2fdf5b301..e55ac3e9a 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -8501,7 +8501,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj) K_UpdateMobjItemOverlay(part, mobj->threshold, mobj->movecount); - if ((mobj->threshold == KITEM_INVINCIBILITY) || (mobj->threshold == KITEM_SMONITOR)) + if (mobj->threshold == KITEM_INVINCIBILITY) mobj->color = K_RainbowColor(leveltime); } break;