Update K_TryPickMeUp with allowHostile boolean

This commit is contained in:
Ashnal 2025-05-18 16:21:56 -04:00
parent 136cb20cb6
commit cdc49d755b
5 changed files with 11 additions and 11 deletions

View file

@ -75,7 +75,7 @@ boolean K_BananaBallhogCollide(mobj_t *t1, mobj_t *t2)
if (t1->type == MT_BALLHOGBOOM && t2->type == MT_BALLHOGBOOM)
return true; // Ballhogs don't collide with eachother
if (K_TryPickMeUp(t1, t2))
if (K_TryPickMeUp(t1, t2, false))
return true;
if (t2->player)
@ -178,7 +178,7 @@ boolean K_EggItemCollide(mobj_t *t1, mobj_t *t2)
if (t1->health <= 0 || t2->health <= 0)
return true;
if (K_TryPickMeUp(t1, t2))
if (K_TryPickMeUp(t1, t2, false))
return true;
if (!P_CanPickupItem(t2->player, PICKUP_EGGBOX))
@ -434,7 +434,7 @@ boolean K_LandMineCollide(mobj_t *t1, mobj_t *t2)
if (t1->health <= 0 || t2->health <= 0)
return true;
if (K_TryPickMeUp(t1, t2))
if (K_TryPickMeUp(t1, t2, false))
return true;
if (t2->player)
@ -544,7 +544,7 @@ boolean K_DropTargetCollide(mobj_t *t1, mobj_t *t2)
if (t2->player && (t2->player->hyudorotimer || t2->player->justbumped))
return true;
if (K_TryPickMeUp(t1, t2))
if (K_TryPickMeUp(t1, t2, false))
return true;
if (draggeddroptarget && P_MobjWasRemoved(draggeddroptarget))
@ -1059,7 +1059,7 @@ boolean K_InstaWhipCollide(mobj_t *shield, mobj_t *victim)
shield->extravalue1 = 1;
}
if (!K_TryPickMeUp(attackerPlayer->mo, victim))
if (!K_TryPickMeUp(attackerPlayer->mo, victim, true))
{
P_DamageMobj(victim, shield, attacker, 1, DMG_NORMAL);
}
@ -1076,7 +1076,7 @@ boolean K_KitchenSinkCollide(mobj_t *t1, mobj_t *t2)
if (((t1->target == t2) || (!(t2->flags & (MF_ENEMY|MF_BOSS)) && (t1->target == t2->target))) && (t1->threshold > 0 || (t2->type != MT_PLAYER && t2->threshold > 0)))
return true;
if (K_TryPickMeUp(t1, t2))
if (K_TryPickMeUp(t1, t2, false))
return true;
if (t2->player)

View file

@ -15908,7 +15908,7 @@ static boolean K_PickUp(player_t *player, mobj_t *picked)
}
// ACHTUNG this destroys items when returning true, make sure to bail out
boolean K_TryPickMeUp(mobj_t *m1, mobj_t *m2)
boolean K_TryPickMeUp(mobj_t *m1, mobj_t *m2, boolean allowHostile)
{
if (!m1 || P_MobjWasRemoved(m1))
return false;
@ -15943,7 +15943,7 @@ boolean K_TryPickMeUp(mobj_t *m1, mobj_t *m2)
if (inflictor->target->player && G_SameTeam(inflictor->target->player, victim->player))
allied = true;
if (!allied)
if (!allied && !allowHostile)
return false;
// CONS_Printf("target check passed\n");

View file

@ -327,7 +327,7 @@ void K_BotHitPenalty(player_t *player);
boolean K_IsPickMeUpItem(mobjtype_t type);
boolean K_TryPickMeUp(mobj_t *m1, mobj_t *m2);
boolean K_TryPickMeUp(mobj_t *m1, mobj_t *m2, boolean allowHostile);
fixed_t K_TeamComebackMultiplier(player_t *player);

View file

@ -190,7 +190,7 @@ boolean Obj_OrbinautJawzCollide(mobj_t *t1, mobj_t *t2)
return true;
}
if (K_TryPickMeUp(t1, t2))
if (K_TryPickMeUp(t1, t2, false))
return true;
if (t1->type == MT_GARDENTOP)

View file

@ -667,7 +667,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
if (!player->mo || player->spectator)
return;
if (K_TryPickMeUp(special, toucher))
if (K_TryPickMeUp(special, toucher, false))
return;
// attach to player!