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;