diff --git a/src/k_hud_track.cpp b/src/k_hud_track.cpp index 8574c9159..c587e33e1 100644 --- a/src/k_hud_track.cpp +++ b/src/k_hud_track.cpp @@ -403,10 +403,11 @@ bool is_object_tracking_target(const mobj_t* mobj) case MT_LANDMINE: case MT_BANANA: case MT_BANANA_SHIELD: + case MT_GACHABOM: return (mobj->target && !P_MobjWasRemoved(mobj->target) && ( (mobj->target->player && stplyr == mobj->target->player) || (mobj->target->player && G_SameTeam(stplyr, mobj->target->player)) - )); + ) && P_CheckSight(stplyr->mo, const_cast(mobj))); default: return false; diff --git a/src/k_kart.c b/src/k_kart.c index f18927a36..723ade47e 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -8352,7 +8352,17 @@ static void K_MoveHeldObjects(player_t *player) // If we can move our backup item into main slots, do so. static void K_TryMoveBackupItem(player_t *player) { - if (player->itemtype == KITEM_NONE && player->backupitemtype) + if (player->itemtype && player->itemtype == player->backupitemtype) + { + player->itemamount += player->backupitemamount; + + player->backupitemtype = 0; + player->backupitemamount = 0; + + S_StartSound(player->mo, sfx_mbs54); + } + + if (player->itemtype == KITEM_NONE && player->backupitemtype && !(player->itemRoulette.active)) { player->itemtype = player->backupitemtype; player->itemamount = player->backupitemamount; @@ -15503,6 +15513,9 @@ static void K_PickUp(player_t *player, mobj_t *picked) case MT_DROPTARGET_SHIELD: type = KITEM_DROPTARGET; break; + case MT_GACHABOM: + type = KITEM_GACHABOM; + break; default: type = KITEM_SAD; break; @@ -15573,7 +15586,7 @@ boolean K_TryPickMeUp(mobj_t *m1, mobj_t *m2) boolean allied = (inflictor->target == victim); - if (!allied) + if (!allied && inflictor->target && !P_MobjWasRemoved(inflictor->target)) if (inflictor->target->player && G_SameTeam(inflictor->target->player, victim->player)) allied = true; diff --git a/src/p_mobj.c b/src/p_mobj.c index 52c6fec00..102a183c9 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -5410,6 +5410,7 @@ static boolean P_IsTrackerType(INT32 type) case MT_LANDMINE: case MT_BANANA: case MT_BANANA_SHIELD: + case MT_GACHABOM: return true; default: