From 673cdc6d8f75fac4f02c66538a7a7312864d29a1 Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Fri, 8 Dec 2023 22:56:41 +0100 Subject: [PATCH] Bypass A_SetViewPitch to not trigger the "never-will-be-fixed" bug. --- language.version | 4 ++-- zscript/player/swwm_player_tick.zsc | 20 +++++++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/language.version b/language.version index 56e849efc..97c097401 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1044 \cu(Thu 7 Dec 23:17:27 CET 2023)\c-"; -SWWM_SHORTVER="\cw1.3pre r1044 \cu(2023-12-07 23:17:27)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1045 \cu(Fri 8 Dec 22:56:41 CET 2023)\c-"; +SWWM_SHORTVER="\cw1.3pre r1045 \cu(2023-12-08 22:56:41)\c-"; diff --git a/zscript/player/swwm_player_tick.zsc b/zscript/player/swwm_player_tick.zsc index 429a0a868..73e288ec5 100644 --- a/zscript/player/swwm_player_tick.zsc +++ b/zscript/player/swwm_player_tick.zsc @@ -453,9 +453,23 @@ extend Class Demolitionist // stabilize view angles if ( temp dot temp < double.epsilon ) temp = (0,0,0); else temp *= .8; - if ( ViewAngle != temp.x ) A_SetViewAngle(temp.x,SPF_INTERPOLATE); - if ( ViewPitch != temp.y ) A_SetViewPitch(temp.y,SPF_INTERPOLATE); - if ( ViewRoll != temp.z ) A_SetViewRoll(temp.z,SPF_INTERPOLATE); + // we have to bypass the A_SetView* functions due to a bug that + // will likely never get addressed + if ( ViewAngle != temp.x ) + { + ViewAngle = temp.x; + player.cheats |= CF_INTERPVIEWANGLES; + } + if ( ViewPitch != temp.y ) + { + ViewPitch = temp.y; + player.cheats |= CF_INTERPVIEWANGLES; + } + if ( ViewRoll != temp.z ) + { + ViewRoll = temp.z; + player.cheats |= CF_INTERPVIEWANGLES; + } if ( player.onground && !lastground ) landvelz = lastvelz; else if ( !player.onground && lastground ) landvelz = 0; else if ( player.onground && lastground ) landvelz *= .9;