diff --git a/src/p_map.c b/src/p_map.c index f187897aa..fbea6c271 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -870,21 +870,18 @@ static boolean PIT_CheckThing(mobj_t *thing) } } - if (thing->type == MT_SALOONDOOR) + if (thing->type == MT_SALOONDOOR && tmthing->player) { - if (tmthing->player) + mobj_t *ref = (tmthing->player->powers[pw_carry] == CR_MINECART && tmthing->tracer && !P_MobjWasRemoved(tmthing->tracer)) ? tmthing->tracer : tmthing; + if ((thing->flags & MF2_AMBUSH) || ref != tmthing) { - mobj_t *ref = (tmthing->player->powers[pw_carry] == CR_MINECART && tmthing->tracer && !P_MobjWasRemoved(tmthing->tracer)) ? tmthing->tracer : tmthing; - if ((thing->flags & MF2_AMBUSH) || ref != tmthing) - { - fixed_t dm = min(FixedHypot(ref->momx, ref->momy), 16*FRACUNIT); - angle_t ang = R_PointToAngle2(0, 0, ref->momx, ref->momy) - thing->angle; - fixed_t s = FINESINE((ang >> ANGLETOFINESHIFT) & FINEMASK); - S_StartSound(tmthing, thing->info->activesound); - thing->extravalue2 += 2*FixedMul(s, dm)/3; - } + fixed_t dm = min(FixedHypot(ref->momx, ref->momy), 16*FRACUNIT); + angle_t ang = R_PointToAngle2(0, 0, ref->momx, ref->momy) - thing->angle; + fixed_t s = FINESINE((ang >> ANGLETOFINESHIFT) & FINEMASK); + S_StartSound(tmthing, thing->info->activesound); + thing->extravalue2 += 2*FixedMul(s, dm)/3; + return true; } - return true; } if (thing->type == MT_SALOONDOORCENTER && tmthing->player)