From 3aaa77f9e19b41be931d3a21c7a7824479bbf294 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 86f5eb393..9596564ef 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r733 \cu(Thu 19 Jan 10:13:21 CET 2023)\c-"; -SWWM_SHORTVER="\cw1.3pre r733 \cu(2023-01-19 10:13:21)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r734 \cu(Thu 19 Jan 10:25:09 CET 2023)\c-"; +SWWM_SHORTVER="\cw1.3pre r734 \cu(2023-01-19 10:25:09)\c-"; diff --git a/zscript/player/swwm_player_fx.zsc b/zscript/player/swwm_player_fx.zsc index b95b975dd..ef5664e5a 100644 --- a/zscript/player/swwm_player_fx.zsc +++ b/zscript/player/swwm_player_fx.zsc @@ -53,9 +53,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; } }