proper setter for seeking flag

will need more changes to fix that one bug
This commit is contained in:
minenice55 2026-04-05 18:59:47 -04:00
parent 782f3b6184
commit 0b7fbbbb62
4 changed files with 26 additions and 9 deletions

View file

@ -870,7 +870,7 @@ boolean K_BubbleShieldReflect(mobj_t *t1, mobj_t *t2)
t2->player->attractionattack = 0;
t2->player->attractionattack_hipower = 0;
t2->player->attractionboost = 0;
t2->player->itemflags &= ~(IF_SEEKING|IF_PASSIVESEEKING);
K_DisableSeekingReticule(t2->player);
}
S_StartSound(t1, sfx_s3k44);

View file

@ -2309,6 +2309,7 @@ void K_PlayerItemThink(player_t *player, boolean onground)
//K_PlayAttackTaunt(player->mo);
K_SetItemOut(player, KITEM_JAWZ, IF_ITEMOUT|IF_SEEKING);
S_StartSound(player->mo, sfx_s3k3a);
K_EnableSeekingReticule(player, false);
for (moloop = 0; moloop < player->itemamount; moloop++)
{
@ -2344,7 +2345,7 @@ void K_PlayerItemThink(player_t *player, boolean onground)
if (player->itemamount <= 0)
{
player->itemflags &= ~IF_SEEKING;
K_DisableSeekingReticule(player);
}
}
break;
@ -2485,16 +2486,16 @@ void K_PlayerItemThink(player_t *player, boolean onground)
{
S_StopSoundByID(player->mo, sfx_vwre);
}
player->itemflags |= IF_SEEKING;
K_EnableSeekingReticule(player, false);
player->bananadrag += 4;
}
else
{
player->itemflags |= IF_SEEKING;
effectscale = Easing_Linear(CLAMP(FixedDiv(player->attractioncharge, ATTRACTIONCHARGETIME), 0, FRACUNIT),
player->mo->scale/4,
player->mo->scale/2
);
K_EnableSeekingReticule(player, false);
}
// stolen from machine water breathing
@ -2565,7 +2566,7 @@ void K_PlayerItemThink(player_t *player, boolean onground)
K_BotResetItemConfirm(player, false);
}
player->itemflags |= (IF_SEEKING|IF_PASSIVESEEKING);
K_EnableSeekingReticule(player, true);
}
player->attractioncharge = 0;
}
@ -2870,6 +2871,20 @@ void K_DoEggMineStrip(mobj_t *tmo, mobj_t *inflictor, mobj_t *source)
}
}
void K_EnableSeekingReticule(player_t *player, boolean passive)
{
player->itemflags |= IF_SEEKING;
if (passive)
{
player->itemflags |= IF_PASSIVESEEKING;
}
}
void K_DisableSeekingReticule(player_t *player)
{
player->itemflags &= ~(IF_SEEKING|IF_PASSIVESEEKING);
}
void K_KartSeekingReticule(player_t *player)
{
// seeking item reticule

View file

@ -228,6 +228,8 @@ void K_AltShrinkPityIncrease(player_t *player);
void K_SpawnEggMineBumpEffect(mobj_t *mo);
void K_DoEggMineStrip(mobj_t *tmo, mobj_t *inflictor, mobj_t *source);
void K_EnableSeekingReticule(player_t *player, boolean passive);
void K_DisableSeekingReticule(player_t *player);
void K_KartSeekingReticule(player_t *player);
player_t *K_FindJawzTarget(mobj_t *actor, player_t *source);

View file

@ -791,7 +791,7 @@ static void K_SetPlayerBumped(player_t *player, mobj_t *comparemobj)
comparemobj->player->attractionattack = 0;
comparemobj->player->attractionattack_hipower = 0;
comparemobj->player->attractionboost = 0;
comparemobj->player->itemflags &= ~(IF_SEEKING|IF_PASSIVESEEKING);
K_DisableSeekingReticule(comparemobj->player);
}
}
else if (pshield == KSHIELD_NONE)
@ -5454,9 +5454,9 @@ void K_DropHnextList(player_t *player)
else if ((player->itemflags & IF_ITEMOUT)
&& (dropall || (--player->itemamount <= 0)))
{
K_DisableSeekingReticule(player);
player->itemamount = 0;
K_UnsetItemOut(player);
player->itemflags &= ~(IF_SEEKING|IF_PASSIVESEEKING);
player->itemtype = KITEM_NONE;
}
}
@ -5487,7 +5487,7 @@ void K_PopPlayerShield(player_t *player)
player->attractionattack = 0;
player->attractionattack_hipower = 0;
player->attractionboost = 0;
player->itemflags &= ~(IF_SEEKING|IF_PASSIVESEEKING);
K_DisableSeekingReticule(player);
break;
case KSHIELD_BUBBLE:
K_BreakBubbleShield(player);
@ -11906,7 +11906,7 @@ void K_KartAttractHomingAttack(player_t *player)
player->attractionattack = 0;
player->attractionattack_hipower = false;
player->attractionboost = 0;
player->itemflags &= ~(IF_SEEKING|IF_PASSIVESEEKING);
K_DisableSeekingReticule(player);
}
}
#undef TargetThreshold