From caa1a07e254d4e36888dcaea63a974feae274e32 Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Sun, 11 Dec 2022 00:21:36 +0100 Subject: [PATCH] Fix VERY WRONG math. --- language.version | 4 ++-- zscript/swwm_utility.zsc | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/language.version b/language.version index 8be6787cd..8716b2d15 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r682 \cu(Sat 10 Dec 23:17:48 CET 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r682 \cu(2022-12-10 23:17:48)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r683 \cu(Sun 11 Dec 00:21:36 CET 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r683 \cu(2022-12-11 00:21:36)\c-"; diff --git a/zscript/swwm_utility.zsc b/zscript/swwm_utility.zsc index c76c03add..ee0a49d60 100644 --- a/zscript/swwm_utility.zsc +++ b/zscript/swwm_utility.zsc @@ -252,9 +252,8 @@ Class SWWMUtility // new GetAxes static clearscope Vector3, Vector3, Vector3 GetAxes( double angle, double pitch, double roll ) { - Vector3 x = (1,0,0), y = (0,-1,0), z = (0,0,1); // left-handed Y Quat r = Quat.FromAngles(angle,pitch,roll); - return r*x,r*y,r*z; + return r*(1,0,0), r*(0,-1,0), r*(0,0,1); } // for aiming and shooting @@ -274,14 +273,17 @@ Class SWWMUtility } static clearscope Vector3, Vector3, Vector3 GetPlayerAxes( Actor player ) { - return GetAxes(player.angle+player.viewangle,player.pitch+player.viewpitch,player.roll+player.viewroll); + r = Quat.FromAngles(player.angle+player.viewangle,pitch,player.roll+player.viewroll); + return r*(1,0,0), r*(0,-1,0), r*(0,0,1); } static play Vector3, Vector3, Vector3 GetPlayerAxesAutoAimed( Actor player ) { FTranslatedLineTarget t; double pitch = player.BulletSlope(t); - if ( !t.linetarget ) return GetAxes(player.angle+player.viewangle,player.pitch+player.viewpitch,player.roll+player.viewroll); - return GetAxes(player.angle+player.viewangle,pitch,player.roll+player.viewroll); + Quat r; + if ( !t.linetarget ) r = Quat.FromAngles(player.angle+player.viewangle,player.pitch+player.viewpitch,player.roll+player.viewroll); + else r = Quat.FromAngles(player.angle+player.viewangle,pitch,player.roll+player.viewroll); + return r*(1,0,0), r*(0,-1,0), r*(0,0,1); } static clearscope Vector3 GetPlayerEye( Actor player ) {