diff --git a/src/k_hud.cpp b/src/k_hud.cpp index ae686aac4..6e592dfe1 100644 --- a/src/k_hud.cpp +++ b/src/k_hud.cpp @@ -1962,14 +1962,14 @@ static void K_drawBackupItem(void) fx += 26; fy += 5; tx += 10; - ty += 10; + ty += 18; } else if (tiny && (R_GetViewNumber() & 1)) // P2/P4 4P { fx += -4; fy += 5; - tx += -5; - ty += 10; + tx += 1; + ty += 18; } else // 1P/2P { diff --git a/src/k_hud_track.cpp b/src/k_hud_track.cpp index 2df26bcf3..6088ee957 100644 --- a/src/k_hud_track.cpp +++ b/src/k_hud_track.cpp @@ -403,7 +403,10 @@ bool is_object_tracking_target(const mobj_t* mobj) case MT_LANDMINE: case MT_BANANA: case MT_BANANA_SHIELD: - return (mobj->target && !P_MobjWasRemoved(mobj->target) && mobj->target->player && stplyr == mobj->target->player); + return (mobj->target && !P_MobjWasRemoved(mobj->target) && ( + (mobj->target->player && stplyr == mobj->target->player) + || (mobj->target->player && G_SameTeam(stplyr, mobj->target->player)) + ); default: return false; diff --git a/src/k_kart.c b/src/k_kart.c index 7395d9aa1..f18927a36 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -15568,7 +15568,16 @@ boolean K_TryPickMeUp(mobj_t *m1, mobj_t *m2) inflictor = m1; } - if (inflictor->target != victim) + if (!victim->player) + return false; + + boolean allied = (inflictor->target == victim); + + if (!allied) + if (inflictor->target->player && G_SameTeam(inflictor->target->player, victim->player)) + allied = true; + + if (!allied) return false; // CONS_Printf("target check passed\n");