Merge branch 'fix-non-player-chasing-spb' into 'master'

Fix SPB chase crashing if not chasing a player

Closes #484

See merge request KartKrew/Kart!1079
This commit is contained in:
Chromatian Keiske 2023-03-23 08:31:19 +00:00
commit ada076a5cb

View file

@ -668,6 +668,8 @@ static void SPBChase(mobj_t *spb, mobj_t *bestMobj)
S_StartSound(spb, spb->info->activesound); S_StartSound(spb, spb->info->activesound);
} }
dist = P_AproxDistance(P_AproxDistance(spb->x - chase->x, spb->y - chase->y), spb->z - chase->z);
chasePlayer = chase->player; chasePlayer = chase->player;
if (chasePlayer != NULL) if (chasePlayer != NULL)
@ -723,6 +725,8 @@ static void SPBChase(mobj_t *spb, mobj_t *bestMobj)
spb_intangible(spb) = SPB_FLASHING; spb_intangible(spb) = SPB_FLASHING;
} }
} }
chasePlayer->SPBdistance = dist;
} }
else else
{ {
@ -731,10 +735,6 @@ static void SPBChase(mobj_t *spb, mobj_t *bestMobj)
spb_modetimer(spb) = SPB_HOTPOTATO; spb_modetimer(spb) = SPB_HOTPOTATO;
} }
dist = P_AproxDistance(P_AproxDistance(spb->x - chase->x, spb->y - chase->y), spb->z - chase->z);
chasePlayer->SPBdistance = dist;
desiredSpeed = FixedMul(baseSpeed, FRACUNIT + FixedDiv(dist - range, range)); desiredSpeed = FixedMul(baseSpeed, FRACUNIT + FixedDiv(dist - range, range));
if (desiredSpeed < baseSpeed) if (desiredSpeed < baseSpeed)