From 7cd6f54882d1e5a39693b180bc852ec9460294ee Mon Sep 17 00:00:00 2001 From: James R Date: Wed, 22 Mar 2023 15:04:43 -0700 Subject: [PATCH] Fix SPB chase crashing if not chasing a player --- src/objects/spb.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/objects/spb.c b/src/objects/spb.c index 261245e79..c5cbdf47c 100644 --- a/src/objects/spb.c +++ b/src/objects/spb.c @@ -668,6 +668,8 @@ static void SPBChase(mobj_t *spb, mobj_t *bestMobj) 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; if (chasePlayer != NULL) @@ -723,6 +725,8 @@ static void SPBChase(mobj_t *spb, mobj_t *bestMobj) spb_intangible(spb) = SPB_FLASHING; } } + + chasePlayer->SPBdistance = dist; } else { @@ -731,10 +735,6 @@ static void SPBChase(mobj_t *spb, mobj_t *bestMobj) 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)); if (desiredSpeed < baseSpeed)