diff --git a/language.version b/language.version index 09c528d3f..a97df418e 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r741 \cu(Thu 19 Jan 10:09:20 CET 2023)\c-"; -SWWM_SHORTVER="\cw1.3pre r741 \cu(2023-01-19 10:09:20)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r742 \cu(Thu 19 Jan 10:23:20 CET 2023)\c-"; +SWWM_SHORTVER="\cw1.3pre r742 \cu(2023-01-19 10:23:20)\c-"; diff --git a/zscript/player/swwm_player_fx.zsc b/zscript/player/swwm_player_fx.zsc index 2fe808b0d..74dee0ac2 100644 --- a/zscript/player/swwm_player_fx.zsc +++ b/zscript/player/swwm_player_fx.zsc @@ -73,9 +73,17 @@ Class SWWMMirrorTracer : LineTracer { if ( Results.HitType == TRACE_HitWall ) { + // did we find a mirror? if ( !Results.HitLine.sidedef[1] && (Results.HitLine.special == Line_Mirror) ) return TRACE_Stop; + // lower/upper will block, as well as one-sided lines that aren't mirrors + if ( !Results.HitLine.sidedef[1] || !(Results.Tier == TIER_Middle) ) + return TRACE_Abort; } + // obviously, floors and ceilings block the view as well + // again, a shame we can't check if they, too, are mirrors + if ( (Results.HitType == TRACE_HitFloor) || (Results.HitType == TRACE_HitCeiling) ) + return TRACE_Abort; return TRACE_Skip; } }