From 1ad16bfcd4055f57841f2d0d2d794b9f05ba7d5a Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Thu, 19 Jan 2023 10:23:20 +0100 Subject: [PATCH] Blocking checks for mirror interaction (forgot about them). --- language.version | 4 ++-- zscript/player/swwm_player_fx.zsc | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) 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; } }