From 339c371d82b6ed620b6c308c3760d2c5a671947a Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Sun, 28 Apr 2024 02:32:37 +0200 Subject: [PATCH] Controller support for Bionic Eyes and Stealth Nano-Bots --- mod/Cyberware.esm | Bin 310903 -> 311788 bytes src/CWxBionicEyesOnHotkey.gek | 17 ++++++++++++++--- src/CWxBionicEyesUpdateTriggers.gek | 2 ++ src/CWxStealthOnHotkey.gek | 19 ++++++++++++++----- src/CWxStealthUpdateTriggers.gek | 1 + 5 files changed, 31 insertions(+), 8 deletions(-) diff --git a/mod/Cyberware.esm b/mod/Cyberware.esm index 6d575b79d794dfb4525a8eb64c3446b018ce4ce8..bccb2e9979acc5ff8b22cc6f610e2d61e8d1ab26 100644 GIT binary patch delta 3147 zcmb_edr*|u6~Fhp7g%1)y1??-1s60xd^Mm|2&_VuhrAJpW6{Q-StALv*bg+J=_o$Z z#=?-HU*r;J{nV(SKv1N5#UT$m(`nOMCUKZ1nb8W-Xq#x0jBOgJO3z)~m-dg&r0jfm zzjMy-ywADIzwYX9?hf~>&Z}CoyTdO*!qFWmS^98fZQfv$U#gXD=Cri*RCDU!%f}aJ z5&VV0lb2hV8-rL_ofNI)FWf0zcw^{;h4{2|lPVXkWW;r1gd~AQ7*$zwb2@Pxyz5X1 z3Prp2<>NU!v?vHZ=0=RnY0JzOivcKq_?Xv_M1&0B1fyV}dLj@qKVeR=#DjqtcnnAn zA}un@7_Et)<&;|7(rA~WFkB!ZFGV3D!ln=@6%#+yf0P^roayOcv<9JNkrW}tG0~0B zE7r+mh5Ri-X`M`8Y_ULqp+SLxb(_ouwkB(Xy-9AUueZs9=VHnYjg6aY>*Pw?Ch(}F z9yA$+XiI%$jwtP4Ohd?<2dIYkl5$*VuW zEy|Uv*>O`)EAJLeAx{ggE8G8SR@PmM*Ii5wg%ZdFHA={CgaR~QJBGUy^Hik5zn!Jz zeSTk=Sf8kT_<3|7v? zA%b?!1xx}|p?XcOqGlclF=XR1oeeDQr zbYXr?Ras7{2A!S8h$ZhL@tMt1u=8%2Y1m7O1gq?7pBx~0$qu$+FG_92yk!@8O25Mq z+v}{dBerC9NqGoh9I<_maQYwN3_rp-@5Au}I|DwP0N~7Y)Dc@y`EGCl7u_k^KcNTowqKbO;>-3@ipiq#jc<|#STZkQ9s7xad;*-_{iF~Z4-JmGb?#VnZnH<1t6b|Kq1f2;?O)u8 zjMsHY^B}foSEzjH0b<3*tXC(Uhz%flEIZ7NFlDR!4V4sO>CzlFaS;5X9F^ZWNGuTR zmU)q`bW%n<>0AKBs>7gTbXe!R5v>)TY&I9E{OnuA09Ng6>rpBX^zI7;iUpKmWB6`BBu6|t^CJ*BnlhRwtjcuQznhOq!TMu z{(3*LVWT-_%#BDmqjw|v3soLAAVRwN>69B$*%InT`~#BTc9JAvDR+>mryz}%VwLk# zBvCSTtzT>qC7p&KzsUCl`CKUkSvN!)**{N{CVpv%^kXt!rt;P^WMO9fIY;cOs%l6o zV?c+Io8ntx7tT4@pT8!nrC|qK^bJ`gzMp~b_+gjM<#G6j)=jNn2R|e;*tvY{8?t37 z-!q?{(=y{i8iFI)=wh14MlcQJFQiZ{;aN}8mjVM zhHi7_^YK!ID)K6eAuZ=pAjIFu$Odv%T#!m%Y+XwQL!@ z@jtcGcLLa07d5f(I%x{CchPyQ8{W8?(RElzas{)J>))hZe*DYl>GB|URHi!CD$`jk zL8gxj^K)3I3^repsgb`Y(-hsq-oI-5FW&23rK>6HRUxS(J=Bl#->CGmh8^#tb9uu6 Vb%ZhduW1Os&_|iXg5Ra}{{fTB5heft delta 2590 zcmZ{le^6A{702&+_b$80uLWFwxC<Z{#3IkU6f z**}}v`$AWi;O(w=33cFVe!PQ)vDFF-VeZOV4#xg6J%Vvo4{GSO{ScuZx;8zmzIwI0-v7(`HFb@c z9SU)nBw)5GKXSRlqa!ECWW65c;d>N7)W>cAJLCwqJ)g0&p?dn$ZZ zwq|MdhC(mH_Q??M8lAD*^cfo)4?qd~Dg;y1j_W^%4E2-i^OJ@t`QUPfS)iN?YQ~py z)eT?11^&L|zo!BIu@hp{drw7R@;5xXPkxmM*tA0lRfoP#6PL0oU41Z|>`?xtsHyiB zW;XpKa#K*`8kz$DYGE9UVHS1ky{YP-?q#IHM3*?LC4?0SmPlXGbo)K!l_x+=y?+u* z-h`0t8E_MSRR|ATLyOilG{JWM^zEV#UH@mh5~Ha8Fy?Lm z<}RQ+HGh1g6#P*E=S!TqA93gB=h`O`S1(wt9?ik5tbmilot;4Y&RHmliOe>UdS3%N zZqntLbU7xS2+|d?TD^?Gf-~c3SsoNO#5DcL_=1+P1_pQUjDlA=tivT1$lm@HBw(8b zrs&5hL_IPqPM)&BEl4k0SKZJUG0AkG=+w|D+jN}4*wcjw2I~E9r@m&j0o{tU+Bhu6 zgC*RB7fW~~4B*USzANSSc72Z-^Awkt*w`(T^-TnztBfaNVi}LbFn#z>DUZzTf0+)3 zp*d=@j+m@Ie6N%{@m*5kZhhFI>w8ShL6g;OvJPOLuFut_nfj1KgLUB;gHX&Jc+p42 z^x)YN;?7WEcw8T-&dAIk<_71vGBMctg~@svm+Shcbm>xk$k+81CT5w*DmPhvyirX0 z;bM}0Mgvc*T zK@1MP%6nt_?^CA>7cci0FL=_%R(;3-wPv0i+qoG=-{> z*UT5jyfhO1-qU*BBhf__MJ3^+8HqmdfT#Nb&#?zQ1167!;`Eq2R`MJi_Z0Y+m7Z|Y zsgnIW`8;sV-_$up_f^uVsa+dMuOeeEJKd*7qGj|hz8qYGtatJR(%BMgAeVIHwcY$N z;8~83@Px)4e6U@Umo%OQ&hn}ghU)a?Kw$3{O{R46LU5kHcG4jJoo_ed+P7-*l|4KH zoL$qd7({NXo!Q2dJ4eKUKX4Bybw}~ry*!R@YSm=uKE4E;_VPQ1W?N+-YE7FaYv1Jg z;LO^a;h3l={lh>#Zp!`7Z|N}x8!`=Ib7>&=s^4oeb3c!xRrYucqV<^ok)Ud_>K$r{ zvvQ-?AXeS58r7X6;$Rnl7@ReqFE@zZ@1qQ2=Qd5=ewQx-XWfoQgJ8F#4PwrAO+I;m z7lHFo)vi(ES?bKoX9Km^c4+cQH+9Hm`^Vl<;vx}43v5OYYfzhlD|+}kjP2n| z=F`Br{#r`h#0CroHSaDFSx5L(MLE}srTsikH0`4#FZc6CT-(nZWSQjMz}q^s{$qT` zdcsz>!$;LeCqaIs&r0yAy zbNPI*wX%x-IiW+6e%oX6#XOP6F>;OwmwlPygGkw%FSSO0Easc-3GT;C#c@NSEE2(P>#=y$0_IAzLa zk#5JiwPFcg|F!Vx(>B>wE1m$%s1sgv)e(8=dEu33Iz)w#&panySANRh-2FfJ+B)%( z6`$Wo$-S{&q~rH36e&qJ3&@lw*NZC9r@h9ESN3fbJ1v;9j|%Ya7eh8VYo7=enDo9# YlfxeiRPeWb)QJV}3oQzpPKuiU0-cGI>Hq)$ diff --git a/src/CWxBionicEyesOnHotkey.gek b/src/CWxBionicEyesOnHotkey.gek index e64e034..9c85fa9 100644 --- a/src/CWxBionicEyesOnHotkey.gek +++ b/src/CWxBionicEyesOnHotkey.gek @@ -8,11 +8,22 @@ begin function { iKeyID } return endif - if iKeyID != CWxVisionModeHotkey - SetOnKeyUpEventHandler CWxBionicEyesOnHotkey 0 iKeyID + if iKeyID == 27 + if GetController + if GetCrosshairRef != 0 + return + endif + if playerRef.IsSneaking && playerRef.HasPerk CWxImplantStealthPerk + return + endif + elseif iKeyID != CWxVisionModeHotkey + return + endif + elseif iKeyID != CWxVisionModeHotkey + SetOnKeyUpEventHandler (GetCurrentScript) 0 iKeyID return endif - + if CWxVisionModeLevel == 0 SetStage CWxBionicEyesQuest 1 diff --git a/src/CWxBionicEyesUpdateTriggers.gek b/src/CWxBionicEyesUpdateTriggers.gek index 9d06456..dd993d2 100644 --- a/src/CWxBionicEyesUpdateTriggers.gek +++ b/src/CWxBionicEyesUpdateTriggers.gek @@ -7,6 +7,7 @@ begin function { iMode } if player.HasPerk CWxImplantVisionModePerk SetOnKeyUpEventHandler CWxBionicEyesOnHotkey 1 CWxVisionModeHotkey + SetOnControlDownEventHandler CWxBionicEyesOnHotkey 1 27 ; Grab ; Clear list of processed actors to reapply shaders if CWxVisionModeLevel > 0 @@ -16,6 +17,7 @@ begin function { iMode } else SetOnKeyUpEventHandler CWxBionicEyesOnHotkey 0 CWxVisionModeHotkey + SetOnControlDownEventHandler CWxBionicEyesOnHotkey 0 27 ; Grab endif end diff --git a/src/CWxStealthOnHotkey.gek b/src/CWxStealthOnHotkey.gek index 3aa4d54..fcbfa4b 100644 --- a/src/CWxStealthOnHotkey.gek +++ b/src/CWxStealthOnHotkey.gek @@ -1,7 +1,6 @@ scn CWxStealthOnHotkey int iKeyID -ref rScript begin function { iKeyID } @@ -9,13 +8,23 @@ begin function { iKeyID } return endif - if iKeyID != CWxStealthFieldHotkey + if iKeyID == 27 + if GetController + if GetCrosshairRef != 0 + return + endif + if playerRef.IsSneaking == 0 + return + endif + elseif iKeyID != CWxStealthFieldHotkey + return + endif + elseif iKeyID != CWxStealthFieldHotkey printd "Cyberware: Autoremoved stealth hotkey" - set rScript to GetCurrentScript - SetOnKeyUpEventHandler rScript 0 iKeyID + SetOnKeyUpEventHandler (GetCurrentScript) 0 iKeyID return endif - + if player.IsSpellTargetAlt CWxStealthField printd "Cyberware: Swithing stealth off" SetStage CWxStealthFieldQuest 0 diff --git a/src/CWxStealthUpdateTriggers.gek b/src/CWxStealthUpdateTriggers.gek index 4196781..0b08c43 100644 --- a/src/CWxStealthUpdateTriggers.gek +++ b/src/CWxStealthUpdateTriggers.gek @@ -9,6 +9,7 @@ begin function { iStatus } SetOnKeyUpEventHandler CWxStealthOnHotkey bEnabled CWxStealthFieldHotkey SetOnUseAidItemEventHandler CWxStealthOnUseSB bEnabled StealthBoy + SetOnControlDownEventHandler CWxStealthOnHotkey bEnabled 27 ; Grab if GetUIFloat "HUDMainMenu\_CWxSFMeterEnabled" if player.IsSpellTargetAlt CWxStealthField == 0