diff --git a/src/playsim/p_map.cpp b/src/playsim/p_map.cpp index 068e1cbf5..00d47aa37 100644 --- a/src/playsim/p_map.cpp +++ b/src/playsim/p_map.cpp @@ -5089,12 +5089,6 @@ static ETraceStatus ProcessRailHit(FTraceResults &res, void *userdata) return TRACE_Stop; } - // Invulnerable things completely block the shot - if (data->StopAtInvul && res.Actor->flags2 & MF2_INVULNERABLE) - { - return TRACE_Stop; - } - // Skip actors if the puff has: // 1. THRUACTORS (This one did NOT include a check for spectral) // 2. MTHRUSPECIES on puff and the shooter has same species as the hit actor @@ -5109,6 +5103,12 @@ static ETraceStatus ProcessRailHit(FTraceResults &res, void *userdata) return TRACE_Skip; } + // Invulnerable things completely block the shot + if (data->StopAtInvul && res.Actor->flags2 & MF2_INVULNERABLE) + { + return TRACE_Stop; + } + // Save this thing for damaging later, and continue the trace SRailHit newhit; newhit.HitActor = res.Actor;