Fix pickmeup bubble shield

This commit is contained in:
Antonio Martinez 2025-05-17 16:54:57 -04:00
parent 54b3450768
commit 1009996ba4
4 changed files with 9 additions and 3 deletions

View file

@ -851,9 +851,6 @@ boolean K_BubbleShieldReflect(mobj_t *t1, mobj_t *t2)
boolean K_BubbleShieldCollide(mobj_t *t1, mobj_t *t2) boolean K_BubbleShieldCollide(mobj_t *t1, mobj_t *t2)
{ {
if (K_TryPickMeUp(t1, t2))
return true;
if (t2->type == MT_PLAYER) if (t2->type == MT_PLAYER)
{ {
// Counter desyncs // Counter desyncs

View file

@ -288,6 +288,7 @@ private:
case MT_BANANA: case MT_BANANA:
case MT_BANANA_SHIELD: case MT_BANANA_SHIELD:
case MT_GACHABOM: case MT_GACHABOM:
case MT_BUBBLESHIELDTRAP:
return { return {
{ // Near { // Near
{2, TICRATE/2, {kp_pickmeup}, 0}, // 1P {2, TICRATE/2, {kp_pickmeup}, 0}, // 1P
@ -405,6 +406,7 @@ bool is_object_tracking_target(const mobj_t* mobj)
case MT_BANANA: case MT_BANANA:
case MT_BANANA_SHIELD: case MT_BANANA_SHIELD:
case MT_GACHABOM: case MT_GACHABOM:
case MT_BUBBLESHIELDTRAP:
return (mobj->target && !P_MobjWasRemoved(mobj->target) && ( return (mobj->target && !P_MobjWasRemoved(mobj->target) && (
(mobj->target->player && stplyr == mobj->target->player) (mobj->target->player && stplyr == mobj->target->player)
|| (mobj->target->player && G_SameTeam(stplyr, mobj->target->player)) || (mobj->target->player && G_SameTeam(stplyr, mobj->target->player))
@ -908,6 +910,7 @@ void K_drawTargetHUD(const vector3_t* origin, player_t* player)
case MT_BANANA: case MT_BANANA:
case MT_BANANA_SHIELD: case MT_BANANA_SHIELD:
case MT_GACHABOM: case MT_GACHABOM:
case MT_BUBBLESHIELDTRAP:
if (stplyr->mo->eflags & MFE_VERTICALFLIP) if (stplyr->mo->eflags & MFE_VERTICALFLIP)
{ {
pos.z -= itemOffset; pos.z -= itemOffset;

View file

@ -15547,6 +15547,9 @@ static void K_PickUp(player_t *player, mobj_t *picked)
case MT_GACHABOM: case MT_GACHABOM:
type = KITEM_GACHABOM; type = KITEM_GACHABOM;
break; break;
case MT_BUBBLESHIELDTRAP:
type = KITEM_BUBBLESHIELD;
break;
default: default:
type = KITEM_SAD; type = KITEM_SAD;
break; break;

View file

@ -667,6 +667,9 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
if (!player->mo || player->spectator) if (!player->mo || player->spectator)
return; return;
if (K_TryPickMeUp(special, toucher))
return;
// attach to player! // attach to player!
P_SetTarget(&special->tracer, toucher); P_SetTarget(&special->tracer, toucher);
toucher->flags |= MF_NOGRAVITY; toucher->flags |= MF_NOGRAVITY;