SPB Sliptide disabled during SPBHotPotato

S.P.B.'s sliptide dust should be disabled during both regular target swapping & it's death animation; we've never actually seen the intended metagame of this as a result in Ring Racers. EVER.
This commit is contained in:
VelocitOni 2025-08-03 01:53:51 -04:00
parent 07e7c00fb5
commit 64592326ec

View file

@ -202,35 +202,39 @@ static void SpawnSPBSliptide(mobj_t *spb, SINT8 dir)
angle_t travelangle; angle_t travelangle;
fixed_t sz = spb->floorz; fixed_t sz = spb->floorz;
if (spb->eflags & MFE_VERTICALFLIP) if ((spb_modetimer(spb) != SPB_HOTPOTATO) || (spb_swapcount(spb) > SPB_MAXSWAPS + 1)) // Tired of this thing whacking people when switching targets
{ {
sz = spb->ceilingz; if (spb->eflags & MFE_VERTICALFLIP)
{
sz = spb->ceilingz;
}
travelangle = K_MomentumAngle(spb);
if ((leveltime & 1) && abs(spb->z - sz) < FRACUNIT*64)
{
newx = P_ReturnThrustX(spb, travelangle - (dir*ANGLE_45), 24*FRACUNIT);
newy = P_ReturnThrustY(spb, travelangle - (dir*ANGLE_45), 24*FRACUNIT);
spark = P_SpawnMobjFromMobj(spb, newx, newy, 0, MT_SPBDUST);
spark->z = sz;
P_SetMobjState(spark, S_KARTAIZDRIFTSTRAT);
P_SetTarget(&spark->target, spb);
spark->colorized = true;
spark->color = SKINCOLOR_RED;
spark->angle = travelangle + (dir * ANGLE_90);
P_SetScale(spark, (spark->destscale = spb->scale*3/2));
spark->momx = (6*spb->momx)/5;
spark->momy = (6*spb->momy)/5;
K_MatchGenericExtraFlags(spark, spb);
}
} }
travelangle = K_MomentumAngle(spb);
if ((leveltime & 1) && abs(spb->z - sz) < FRACUNIT*64)
{
newx = P_ReturnThrustX(spb, travelangle - (dir*ANGLE_45), 24*FRACUNIT);
newy = P_ReturnThrustY(spb, travelangle - (dir*ANGLE_45), 24*FRACUNIT);
spark = P_SpawnMobjFromMobj(spb, newx, newy, 0, MT_SPBDUST);
spark->z = sz;
P_SetMobjState(spark, S_KARTAIZDRIFTSTRAT);
P_SetTarget(&spark->target, spb);
spark->colorized = true;
spark->color = SKINCOLOR_RED;
spark->angle = travelangle + (dir * ANGLE_90);
P_SetScale(spark, (spark->destscale = spb->scale*3/2));
spark->momx = (6*spb->momx)/5;
spark->momy = (6*spb->momy)/5;
K_MatchGenericExtraFlags(spark, spb);
}
} }
// Used for seeking and when SPB is trailing its target from way too close! // Used for seeking and when SPB is trailing its target from way too close!