From 2b3f294bb4526223dc35068d5d189f96c6b96b20 Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Sun, 17 Dec 2023 09:12:42 +0100 Subject: [PATCH] Removed redundant checks and updates from _00E_Game_SkillmenuSC intended to fix hotkey registrations, prone to breaking due to missing RegisterForMenu() in OnPlayerLoadGame --- scripts/_00e_game_skillmenusc.pex | Bin 35374 -> 34658 bytes source/scripts/_00e_game_skillmenusc.psc | 208 ++++++++--------------- 2 files changed, 75 insertions(+), 133 deletions(-) diff --git a/scripts/_00e_game_skillmenusc.pex b/scripts/_00e_game_skillmenusc.pex index f2dfbb253d6bd6b32046a05b32d4217a7db25d94..f7b0025651bd86ad3135cad91cb1e345fa484c35 100644 GIT binary patch literal 34658 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 OEO1>H&Tjjd=YIi;@$QNM literal 35374 zcmb__2Yg(`@&C+Iu`SD%Eq5D(OfelScMC|6Z5bQfu#Amq;v}7|!>2pt?qpl^YI^UT z6j}nL5K@0hsG$=e0a6Hogc?YrqyxY2%)Z@yclV6+`+xo(Wbf|G&d$uv&d%;zCI4P~ z|0@*%G2u@#ck1pmp>5i;8hlW)&{{|o zk~HL?Y$0okBip34BbVwatV!nbsceR-S7erCQUw~kB6C zA~9%bf(VsLq*KQyn>z~G+?qtXH@PIUKAWduD|(U{XHy!k()s!jsJJMdO%(Dp2*qXD z&OFtqF>TbkFePhr?Ts+ZAit+g*-NOsdmqsX$vaoJpJ zM^`qRrV(JfGMma2@=G!c(usVYMoA0!E))Z#+Iz)VG*-k&Y$rhM39; z7WJmn%aYyMT%X!xxG0iN^d)mfv60RBjS)60(w#J-xM@)<4MV4cl9|qAZaLhS>QJ@g zYD0Z7Q*DD+nQ@k86P>bLXlO?k#t_RT(p24*>g-HrX!xq+`eZJd=}0!GQ;9rHu#DSU zdy*Y+wlpjbBPO>{#ga^cc4}(!3((OnNGEft4jH#?QzA!$x|8{Q0**X2mU@0V(XnwE z@UFv-A>E?ZHpjEMeR*m_S7CEDyXGNo0>wqU=q{HdH9BOwmp%CtsA<+*1a8oiRip`g-g+3kG`a+rJs}h?qH#sG;Q>(U_pU8{<=^znF zYMWDwlZj1z%{iH$iKmA>$`rM0WNjjsOJ$4vtfo1&QZ|BAN1lc|pOqMZ zu!$Aly%bY+oc$%V<>=2X7RDLDe>F52yAyc@4I+ner4q_Lol8KFmu@wz^@_{;2I z*O@H--Mq0J)8_V4O9>@Z$Hup@2j<2OLc2%j#dj^8cj-B%scBg%lQl6^V=-K%@jaN5^l;_eh`&V^qXf>zkTFFZRa93iUy; zxTi?FeTatHB7>`|>cC}l-Yk-JCfjq#1RPOmY)mQ+F>4cj>l3;11u+_`TLrwB!`mfW z$xG&;1{&GEIFYv!&Ch0f^Tlf;x>`jK?<5Noxs8V;lRef+cJ&$-3uvbuzOHISLWUi< zt+`zzWxI=%)*i|#>bsF?m@I0^YH}tO@6Lyjo`x(lI}jEaf=f%L1Bq2ZoDA#RhB|MU znx>}Zht6nJ39G))n?x+FU6k6A?3~}bA>Y_GohF3(X{>0o`IMp0cV&AEG`^`Rb!aa< zSxp=!kxDQY7~3P-zGr_nvq42nKej!>!lqTpPUIV5YSq@-fz)?Ha>aUV6l+uIPNYt< zX^(LPVNfn@4wtTJ_JMSMuD1~Gu9F=LJDZ_orjMO1N7dXOjn!&{T|!-poukNmMa%kx z(FS>$-EgQ{Vm7AHZf<3<#|NzFHXpxmyktyjL2nLO zkxR3Ts*{|KYZH=*!Ic?j5kU%GN*h#W%kHzM-QDJwXL6F?V7@| zLneNrlQpWe!Nsq_h#_TM&mbC%3OJn#~(xXp223 zl5a+6M>~}lNkSWLU_S4H9wzTJO4$6z^=fW6{nV`1Mmn$!8Ks)|5sgHK@nB77(uJ-_ z#PrFaq4Bd;6t@tpRw9V>$SI{jHV3mlzp^WlM@bDUAow)e+gFiw$es zDq_=ys8>hRR42hcQ3_{EzeAMTtW+uAMRGT_ef;8$x?w5Px~3*M4)~C6cY9S&P^CQv z!P3au`XrZFjMcnZ66&7b%*KLA*T=gJ##`M?-B^dQZc*B9Gf2~pt-)spviUAqwql{` zS)b~LWci*%2M&mxsr9KOmYw4swYK4e#1Gp`cPf*JkS$HEPc~;d7bX*hE<-lXv2aO% zLDD}D!7rwIFrb0d-Mgx-_(=iP5xc2Op<;l&;(Z(Aa6dkF}P9)ci z%pXF7Iqfc>P29(r&q7#*7s&Q0`%P>k#+@%4ebV}pMWsYz}i@KMes8VnD zai(-Au!sf&&jObjOXV6PuUBcR-6+*glUT3X(B{oY zI+8eksuQY8BSgzwCK8-uwr;ZlD}9Vt&QBBy2xy45N>LP&-R_`E*m_ILmL4UwSz4L9 zxmz41D+(vk$ts;opH@Y)WD_$nosnx$m1|3LmE}*VCDFlH z-yQ*-#eB3|l*;AZ=|e@ZoHdZUFz&kI)D@l_l-i%w{VbS4t-5NE==E1*(c2pf$K4C2 z+~fDesO_CWu%=D;U7k!L`q*WKh_oV;3?q`gc_|&PO>aWmrcKvDolyP)KHrj&8(Wh# z_Q%DX@2x)+&vx_z3kUYYmK-X#01L9+J?Ug2xlG5e%4d5so$h|C#7X7$B67|XceYl- zP)qW-^4pLt6!3)wiv|Z=sFvD1+jp5H7w998xTC?r$ozfY%ByL(u)JD^^kiYBWcjuzCf#fXE z(pG$F9coc*{E|c_j046FN*N7qWENwYqebjMbtRu?$b{kIQKL>wBcn;Pas0@lk0PVa zSsWdG&Z@p4FFwMjB9TuS6j94AG$pT%9-C>e0ZpNu9uvP~CWIPRWYT>NnIs+|4vF>mE7TN-WPhjk*hdf*r;qw z58P+ua#UAxel4+>8@FtSE{&KAi$42CUp?6wv$m`&xxJ*3QIi_m3^ntocLiZkRO6Q} zE4$s=K4Y7NlPikVrZm4l=UK!11#Rsfv+t?><1m8w>sC_ z%B<`J;yKxj3g_BwrRwIOWqeRg9NCQQjMXEq__^G+vqbNVL_(@=Ey!m`s!HiszajF@ zNf3D&x?UeWnaYr+CcL%lX>6QFwm5y7FE;w(bYGl7)p%IeijRr%;7^Ae*IWF8t`Bz# z`o69TkHc`!Jt|{w{z9wE6T8|Jp0(LopkY~85u_Do+8ke;i!Ru9T$holMR<|Yj<0vF z$#sK5sj}8auUn()wmh3juECMKQVKLEHNUq|zzf34d@{WrxAdWQmGaJp1{;$?o599v zGiJEbOjnvkBi!3a(;;thjk8>7wkyqXrMWan-%5>K1w*a?Jcz2nB89S0o@seP5syi7^`j9_+SU8Zuqsox2v0n*D3J7r>d&3#O3pZQ zopI*QpgLoDc?4rjZ|Att2kOSzRMQKm$n>_$WxS)9BhB(!K%>Lxq~4X5B$kfYyG)~Z z8AP&bJhs+QsZ6TzKpXMikAYC#n}X?*8F}m&J`LB<1h0^XgMCZnk@sMHT+k=)RJ$Qr zz*}s*%9H2B`c+7Gme3%G+_eYeB@^B#H!KrAR>0}=XjH;H=ai+r-adK_`^}m|)zapJ z>MXZNXJL`{pbs3NJC6s%`m!7zn}G;=IHsW~|0UW^$n0rUDI8tBkt&6Yt53(KE27Y# z)mbw)gYceCTSB4cIp?0|Hja7DtLM4+Gj9%6Ay_8lF}&`tk^3g9Z&|*uZCT5*6|2^@ ztzOmA(uU{~@}KVF)^w*V>=a^WIN!p#$hJ+VVQwYq6MlJ2jsTVF?(H^?8dAaw#uRz5 z{F1=@z9kD`EbPsA$+iH$CP5<(%jA5hm)|g`i-dli!NG}**#EJe5lZMPrCp1+fn2hH zDVJR!+0bELUWGw_2x4$5qeiVuwI<~WJ5JG3Z={lj>7@h{B}lU53M#q&wHegrwCBaPkkPPNvY1Mt5Ze8z73wli8I?x)*LrkbKGRjae-it zQ)SLfO~zXB`x{7-d1epN?z;K~h>Z;xM+Uz*Lzd*ucAES}4z-FwN%1HFkU*(aQZQk;XDryQZQbPG=I0u+9hek=SeZiz#5@iZxoSkm6b`R^o3hRM|qc5Z7tj zAfjrTNRwzg+Mafx25lTH_^DbPLbQhV`b^lH_NIOMg?(unHPUpNp)i|f(>y>EVE_LQ zZ~$2l(QAk*sRghIAPqz1ujN{-B^pL+OW<%?2RITSgu{piQGz%9i9YM4QZ2|NFjt86wI0v7-T)=sN z^8ptCE(BZzkfBEs{<|WCE9q*wk#3@!0k;6Y2>7yskk-qDevR&>Z_|DB9e^~BB6^Vi z2XH^&0lo@CteO9eH?_JiJC8eor3$KptKv4{wl%H_5|W zS9VlNGjSfd)m5MX=yq08;_G z0!%0#C(U~S_6F<&*jK5?6J5bGdA7nlp2tmq{Q#c>90+Iz%m*w0ECjRw76A?dECw9R zhX9r;Eaw&63Rn#|46qh(IA9&%2*8nmqX0((jsdg*jsz@>o80GEew z1q)mQxR$R6+yeL_;5Ieb1ft1&_h-O8d=Gy!2EN7LViWu(;#ZsbM}YhJ0fh%y;2{SO zv%pUk9@kMP5!LfE3eWO$3eWTN{Bs8{u)r^scsn6}S>YA_ox-d9D!=C74=nJe5>F~jV`r!KD289~~ftvxh zD10dpxHY&PaEHR3!JWZf!QDl0PjFB0tunYbxHtHY!gm9KA1d4*2s{9IP~nl_QNUw> zCxRydPX$j4sA4-4%?@4+UJ8B{{5k@^34Rm2tnk}F;1$5DfY%gW4+P!`<{o#gvL20XqS9228D(szc%Lnu@&?_O39nZv{Y+yAlNzGb?6l z1!1+WVlH5w!hRL|RqPKqz`^I0Y>{8{`S@>nh5??*Ii zm1dIERR1*Ef~2YXXD0Gm{WHs=X44$gGS{}uvxO#0ydN@J{c`|)&J;dxX%4i7W?PtV z3kz&vq3zycTNYW)2hn1~aEV17Y==0+wk);Xmuboi`W3cirKLI4wyd(qFLr>|AYv(@mG9N?8Gpvn?Afr?hS9ri?LV*2>>wc}rHWfAZGc1?n{|o4j>q(Pm#6 zgUmnlqCO|j@m7ozY~e&(ILQ`HwuMuygr{0Ya#qkkXV{iAZQ(2{^H$Tn;#2&=AtLnF zb1dDtws4;1e!iu-z!omFsEcgN#nv>J*zT9w!ezE_xh1~B7Ou2>uCg>&ThujH+-q&i zb#{pBE$Rl_>qc9+$rf(5g@If z?y@a++wS++map5wH>{@Lv@PGVg?nw`+g8E*Y|D47VBfWc?^!iYkXX{qwLTe#8#(Q`_>WEj(rmkKEJw-jEqL@&9fU)rW$*}|`_Lcg(vm#z4}wS`ygAiuLTuiBQ^ zY~lCT8+iLa>{n2RluI=@nE&RzA{%raD#kTy_w*1Yuyl?gT zz>f8yMSWyZf49Bp22+H)ng9Eq0>!cC-3en-{C#5xWjQC=RG~<=e(C6^l;wW z5BeY8$74EhaCNLd&(nP6DQ@(YG)u~4#=#AST=Ip3p2stNVnNZsGlX2bSB~S)c~3kNS*>wPa0v@$vGYVpd6*?t z3kNur5A;U<88>^(YbK0bIc%iSn$1Prw`+1Sa9Kr|DG}gpr5dDjn&^~;y z$T0|)O@S3GR>C?y#IyMUFZB}k@G`IHW?t^eUf~tK@+hzLKK>3L>M>99Dqne>B_#~C z`Yx~biu{HT^MfXNjj#NK*ZRt_d^qx`kii#top*yPSyIIiGmDS(m~Ze=ZXDcPN!A#W z{hE*QeSXZ6J%*T-e5|j0g%iHdZQSm~d73*sW;S>FJ~wmHOYnDIkBu#4{VZ?rm1XK*G=r=0eE{>t4R)65xP`4VS+rIjTS4Y_@pzu+!6!B>`WuOIY#yvbuOVM$qqHG=YeEGcU^&R@9CSI*_*y@!0tCwOkB@QI%6`+SnG z{Ebicl|Qj$vmxt8_*8HB-|=al?2CN5uPop*yxMQ`nI3ZlILY^jYQHXIse}ubrt(>4 zC|t-h@?k!kGJFowuPQzlwex5(pO3Y60dA-+1ZmAU#w`@R!+fqRc&cMQFD&y|l%=t% zf%$yqbC|b+`eLnIpwttYFBmPQN<(sXl;lE7av|+(Wd$W)B3E7z1vxWcfuw#YUkRbE z!VfZJz6L)cHgaRW4nNnU{RRkoBj3a~gU#$=%vWoIkHR&!uvNzz!F(koV7_d)mac>b zR|=*An5(28%4Bd?S==ayel0^P-U^P_p#mF#7^TZ=v?QcgN!Otuy`FJD$Jc=drR%E* zxa)NYkqZbl2d-TOeT|M6rMSjX7&>gR7+a;sHLr+%?P$^I9mBu~9A$tZt}$Il6|02d zL{1|Ma4^K>R$bu46p9-;j%ioMts>tbXb5mQCiRO7Dq;crJ7I$f-;f165x)?1lxn*yZPQH33LQ(MJS zz;?G{;M-{=-{c3b<~!&iz7uXMF8fso@io2+SGM;MOwV6udYt(V9RT{>i89lJ@H3R| zgpzj(W;m35sfsZ=WWr48ybyYSgXybw3MxN;D$xYSWiRe_4M`C2y~-Iq$7s*5YSmDE zJEW=z_`ZO@!~9i{!Ba56*CJ%!Eh76KkRTh~583xYhIMtf@EHt2f8gbYmF_l^gb;KS z{}2@T!~8!IsKiE8fet_N9YpCL1CQ39L|Sq4?X1kWy}lHm6dr(;A4HIND75y&_*a6* zBM208>zN;5x=&SuY!Bc+82ACHOSpPan9zNggojXxP(5U+DliSEyOAGqnU%VO>5Vmt zu2{1VqQ^tRp~mv%ttdTWMo>9qxJQZ@qo-jD0|6P00S{^n_y~5#%-s^shnVFN2sD{- zHBZl?ViY{mivF-s@L{PBR<-Cz&_i`d`4Id;Mf9p42^#cqs)Oob5Ti*fplrkfhJU#Q zL_1gjW`zZuYIVk*TQM-4S_Tfsw7sL7BO1Wdznfe4XHA!dcQJoCT)cwqlq7{>6=MU3-KV14Hrcan3Q##lR z!9dFl#Zi77ia)M{!Fo?Hy4gaX?Qb-M#ctTy`G06Oc^cabO z9tR(^S~Y6X1P_KFTVVr~p4E-?Ss|~4p&nya5oAyN8LCbdAhu4?fuB(-p;W1bQkvY7 z5=vngZmU3GTm3WCM)!!?&zSKI4~S<(fOzPCiS(Cc_q1g^1&)eYa@0CiJAmSHrmYC2 z(A;ghD9f~|31rbdrzW@@<2{G}sw52o$#a$jo{qk9acNXgH2nh0RykCder96AuI3*% zNCgA{>!<)l+@XcpScj+^G7Rn95dDlBLY(Jx7GSAe)Kc1BVQqdn!~`Q_X9RBA*%N^w zJmMJ)gQ<k1{m}+T8yLAOZ)Oi}c zp9Pi96MF094JqpVYu_85`@C$blD0I5`u^Y278v~J;0G4Jfhg8wXhh4)8k0>11$p>E zwEdRp3*r3Xx(VBZ5#IcbFm;#D8iw&J$P#{sxbrGL;l9Sd$2Zb@_;vief%Z4i{uat_ zs z8T9BSgkq~dsr|H{!Jy~cVEc|?P>jY{A^ML74Ozg<$?`7Bu;FXQhJR*4I{XJ635`I2 z_7C{y4=7=XS5cY*wNz$Qeb2vWPZbKY5cU*2x=2qjc-8gdt@lTAMLG~&P z2+}`V0}e98Fzve~rX6h51m;cC=T+Nh2>L)6Og|QinSP8HGdln0I*X-! zf1uK0D=C(C;XtK@FBePu;y|SxUn=dP1CMRDVcRb+F4AV9+|8;k3aR z^nr!Op@!L-2)YTO$ia4!%b6->X`-Q+U@725GR7#OmKh&~s0N5rnZ|2mCZZ()$tP6)xc^9c}7x1s_`wzoP72CdKz zF%4G|IM)ZLOhz4YqtpQE2GtC6jkt!J4QZZYn=7IHjvVZSCe? zBf(yBqzHD?q0tD$?x;FE9;KGz_YiU=1LYo|+zl1*or=;FuoqT@s^cMJJb;GC7~tXY zGDZm=oTp+8km0}G!3oUwz!(^6svUz-EgIu)G(^TI)1w4G5IqnWB68yRwNwNX{fw>3 z^eDj(L=Wic^if**(; zLre8|zaKqH@B`7Kwp5RW{peAGABY|jzFfSLb^c;MdX(S?qK8DvqA?EbM~@QxK=i-{ zSFFeN{peAGABY~Lp z0#HZ<;!uNuLY$35)dGbjABRG^BRh5+YBW&TNaIk*{0RGB916!%!nPHM8U)ny@u(p{ zVIzv`H5Mqu-8j@Jpb+-sP(y)21d2n|0foR3hZ+GC)_WXk7*JTIaj0=X!Smx#^0^)h zFAh}$6nr@jH4-Se;NCc=`|sMpzH%n9U&VuI{#3(EtI=aM2m6*Bj_@7aF_4T*&Qvl% z`6?U>@Nq=GDV3a%P{r}>7JIxZVTe;nqsQU|HxzGl+z>%9ogNBi&_m%+rOy=b0q?9p zeoH0%BX2c+j02HlP_3s9xo?<-pV|1CgP*xjyegQ7QWH)d`_YVGfBbs@P9WoPOqeIf zi(nSkcoQnJv}zFFQEnQGAF0cMb3gfL#Mc?jeil>j`p-sxEK%1V<^6FO+h6+Qqfs=^gO(eW74eNJ?!!%e{tA~T0(yk9xXe`Tr)nqk!Wn4kstS%`8A&~?zE z*?&e0n$;c{LvJyH`BH`ZZAIjpufh)nZmNtEED#)iyZ%0=Z!>j6;TAL^+%L2b2Vjha zLR4MW2agk^&m?pRf<^dSN`^tm$5;x(wm=l829ANUNP>gp7Qt~fpXh;O!ez;I=yVXi zlway~9~>-(b1mUZgM)F*l~(|A)IEeg7vRxoAa6zMal&29w9MSxAu28r!EyFkEdPqd zpF*2G56c-}sIf;MEW-wiq3XdxiDzQLA;6#&O^2xVXj*ETu)3B@C0G`61(#si6mx0@ z7o#)|R*TVJNX)H}Ah3`>#AI_hlV#Q!|FI#2?WALjh0rzL(s4i z;;a;wa^->$2!hQZK2U)kRTs3QRlGl!$Edz=A4+ zRv3CU^6V?ys( z7xj)KLt?^p-1^eK&a$5GBZj*`yRXgb<@2VsV9;oulm z5banC*j$c*gWPWz8S&vD>xvy@opX@;@%z~>xNy)0>1%^yVf+MiYRA7F`02z?k{;4q zwDkzL8*s&iC%r+6e-RvqcQ0!&E61WUoCwa*jtW9$yGT`wdI$Ui8g)p02rjB{RS2OI z=mW|&luVy?+ouvVxDO0zI-)ck$}VU(JvzWuN0|)IJl2eItc)^2mu0Xq9275AAwntJ1<)L|$7bGL(Nqv;39Syy70~?V}*#=stqikK$ zo})A{mu#%~+IEYL#BJCGma_P)UNUM)@(#E}vwwR2~R?j`K0=tP8I4Y$d7-HGq;2=c2_ui zSokTlo5g7U#wD~{b$A&T^kTJb!YbQL%Y!YH3HlI8j;H?#@cWO!iD*9wUykGs`(%_) zLDZ2KX%cl#Mg25HqSLV&&%mlY6ED%^y(8Y#&_ViwgpT@FW<70s;+e+n)cBUmv|BOL06P9Ne(*lfgFS^Ch z1WZ3+YGq1;=3DVJ$R1WP{e|fg(7?Om_*61sni5QHp!s?{O%>DAOy6btK4|WVr>SQ8 z8Pm;7uYu;Sc$z^>UuJrR=_{a_8Ba5q>0qY!m|h3Xo$)k7n0lBFWV#A8cYp?Nb)r~R zGNDpS*D$@!bOX~fAih1G;ZUXnn4V&K5;PxxM!im6NZu}N<*1>b8i!(fkCzrX_WclL zJKa*hI5PcGM_RfC@*oJ7%sk=o(z{H50?j{+Jf$>nfR`D+Cr6io=IVGFIKbbT&Sm;J zXwHwPfdhPx=~Sjp(7YK>0|z*UsgddPpt&NR1`hBD)8CkG0S(rsI8v$1aDXeBG2%I( zxjdc*4$#5$1Ew#5=Aw8SH~?l=XzMF%n{y z@rDQS<}r}(9nZOzX(Q7-rk{f5+ISjZ4rkiJbO=f($I}dFI*;jLrkg->QalYl#1hk5 zrdgmtaEY_(2&Q(XFEV`xG|1%RXht$kXL^-sE@+zKY3iB2!8D)gQqY_bPcw??4W=J6 z-3XfF<7q}SUC8t!rZYfu7-)2*$ZdgM%}C)|nFxuGCrd%j{U=F5j`F%l<^Euiw8(9N z9x&y+euA{fy@;+axtY+^ax{(ty-cU!pA)d;unkE>Mg=JhN}Dj>o1~|F@;eE1ND|@0 zCt>#SCCz0A(bTaQ6i6LU){L(g-7teEgN;gCX~w~`f#4J+IKdE{VhIK{aB!-OA)ll{ z6P!8)qbeynK(eBP1+0UE#Rp~&gY0nHynZ`9MPwd>7Oc$;+H$J2NW?L>3Z@Hk?~@~^ zM->qd;e*p9`jAL)CMpo|43u0-q6UF5XDI(*Q-nVjtv=f{M#DyXru_Al4`kV{F*Kn4v%t(N27x(cTo2>k1MPx6p2+qQu zycIuZC_pu6NEtmV1_(1{itzjt$6Qwr-Q)uKoya4+$Wx;SF_Ee)EZW zxEtzD5aRf`6+-BF5l@AKvsH+%8_e0;B)B6az!;{h9m6~W!1rx4BsMIZA@n!c?E;jL1_uc9=fK~VslT0%2E@m6(eQ0;xWF`=hlXy`fb-5) z8XPq@QY@)rdax$k^dLKRQ^LW8B9PL_5w++jN}D0~W{{LJ7+0zUGOOSsC~>hWaS3Xd zhDuxluY-uVPJ(HXnFN<|a1k0V)&|5UX}A~-*O>-YVwe}uUg_X54h@2UMQ3PQUDhHZ z_f@ewNnHln@s!ajkA-rXJ3+W9+>s@*-G%?V2m+QE`{DP5eEelN+Ql0g1Ag1sgAqkaZLumzD!7G#g(a;*|zK8&g3 zNU#fi5HU|2$%#sG$7d_ONQwHHttKV<`e$>(#tDh~QT=!&G6vqJl@C)Q&522g{ud{@ BrbYk& diff --git a/source/scripts/_00e_game_skillmenusc.psc b/source/scripts/_00e_game_skillmenusc.psc index e8e7d8ba..c63346c9 100644 --- a/source/scripts/_00e_game_skillmenusc.psc +++ b/source/scripts/_00e_game_skillmenusc.psc @@ -12,7 +12,7 @@ Import ActorValueInfo Import _00E_QuestFunctions int function _GetScriptVersion() Global - return 1 + return 1 endFunction ; This script handles the custom character menu @@ -23,19 +23,20 @@ endFunction Event OnInit() - FixedBugs1_2 = True iCurrentAffinityIndex = -1 InitAffinitySystem() InitializeActorValueInfos() UpdateKeyRegistration() - RegisterForMenu("Journal Menu") + RegisterForMenu("Journal Menu") EndEvent -Event OnUpdate() +Event OnPlayerLoadGame() + InitAffinitySystem() UpdateKeyRegistration() + RegisterForMenu("Journal Menu") EndEvent @@ -60,22 +61,14 @@ Event OnKeyDown(Int KeyCode) If PlayerREF.HasSpell(_00E_Class_Meditate) && Utility.IsInMenuMode() == False && UI.IsTextInputEnabled() == False && PlayerRef.IsOnMount() == False && Game.IsLookingControlsEnabled() == true && UI.IsMenuOpen("Dialogue Menu") == False && PlayerREF.GetCurrentLocation() != _00E_Dreamworld_Location meditateSpell.Cast(PlayerREF, PlayerREF) EndIf - EndIf + EndIf EndEvent Event OnMenuClose(String MenuName) - - If MenuName == ("Journal Menu") - UpdateKeyRegistration() - EndIf - -EndEvent -Event OnLocationChange(Location akOldLoc, Location akNewLoc) - ; Gavrant: - ; I don't know the purpose of re-registering keys on location change, but someone added this to _00E_Game_TalentControlSC in the first place. UpdateKeyRegistration() + EndEvent @@ -104,8 +97,8 @@ Function UpdateKeyRegistration() EndFunction Function SetHeroMenuKey(int iNewKeyCode) - UnregisterForKey(iHeroMenuKeycode) - iHeroMenuKeycode = iNewKeyCode + UnregisterForKey(iHeroMenuKeycode) + iHeroMenuKeycode = iNewKeyCode UpdateKeyRegistration() EndFunction @@ -148,20 +141,11 @@ Function OpenSkillmenu() If PlayerREF.GetCurrentLocation() != _00E_Dreamworld_Location MenuOpen = True - UpdateKeyRegistration() - - ; if !Game.IsMovementControlsEnabled() - ; bControlsHaveBeenDisabled = True - ; EndIf - _00E_Game_MenuIMOD.Apply() UI.OpenCustomMenu("00E_heromenu") UI.InvokeStringA("CustomMenu", "_root.heromenu_mc.SetStringValues", GetStrings()) UI.InvokeFloatA("CustomMenu", "_root.heromenu_mc.SetIntValues", GetFloats()) UI.InvokeFloatA("CustomMenu", "_root.heromenu_mc.SetModifier", GetMods()) - - RegisterForSingleUpdate(8) - EndIf EndFunction @@ -169,17 +153,8 @@ EndFunction Function CloseSkillmenu() UI.CloseCustomMenu() - - ; If !bControlsHaveBeenDisabled - ; Game.EnablePlayerControls() - ; EndIf - - ; bControlsHaveBeenDisabled = False - _00E_Game_MenuIMOD.Remove() MenuOpen = False - UpdateKeyRegistration() - RegisterForSingleUpdate(15) EndFunction @@ -329,10 +304,10 @@ Function InitAffinitySystem() If isFS PerkTree_PhasmalistIndex = RegisterPerkTree(10, FS_PhasmalistPerks, _00E_FS_Game_PhasmalistName, _00E_FS_Game_PhasmalistName_Female) - PerkTree_TheriantrophistIndex = RegisterPerkTree(11, FS_TheriantrophistPerks, _00E_FS_Game_TheriantrophistName, _00E_FS_Game_TheriantrophistName_Female) + PerkTree_TheriantrophistIndex = RegisterPerkTree(11, FS_TheriantrophistPerks, _00E_FS_Game_TheriantrophistName, _00E_FS_Game_TheriantrophistName_Female) Else - PerkTree_PhasmalistIndex = 10 - PerkTree_TheriantrophistIndex = 11 + PerkTree_PhasmalistIndex = 10 + PerkTree_TheriantrophistIndex = 11 EndIf ; Affinities @@ -340,7 +315,7 @@ Function InitAffinitySystem() Affinity_Names_Male = New Message[21] Affinity_Names_Female = New Message[21] - Affinity_BattlemageIndex = RegisterAffinity( 0, _00E_Affinity_AbBattlemage, _00E_Game_Affinity_BattlemageName, _00E_Game_Affinity_BattlemageName_Female) + Affinity_BattlemageIndex = RegisterAffinity( 0, _00E_Affinity_AbBattlemage, _00E_Game_Affinity_BattlemageName, _00E_Game_Affinity_BattlemageName_Female) Affinity_ClericIndex = RegisterAffinity( 1, _00E_Affinity_AbCleric, _00E_Game_Affinity_ClericName, _00E_Game_Affinity_ClericName_Female) Affinity_AssasinIndex = RegisterAffinity( 2, _00E_Affinity_AbAssassin, _00E_Game_Affinity_AssassinName, _00E_Game_Affinity_AssassinName_Female) Affinity_WayfarerIndex = RegisterAffinity( 3, _00E_Affinity_AbWayfarer, _00E_Game_Affinity_WayfarerName, _00E_Game_Affinity_WayfarerName_Female) @@ -356,27 +331,27 @@ Function InitAffinitySystem() ; Affinity_WanderingMageIndex = RegisterAffinity(10, __Config_AffinityAbs[10], , ) If isFS - Affinity_SpectralistIndex = RegisterAffinity(11, _00E_FS_Affinity_AbRitualist, _00E_FS_Game_Affinity_Spectralist, _00E_FS_Game_Affinity_Spectralist_Female) - Affinity_GhostBladeIndex = RegisterAffinity(12, _00E_FS_Affinity_AbGhostblade, _00E_FS_Game_Affinity_GhostBlade, _00E_FS_Game_Affinity_GhostBlade_Female) - Affinity_SpectralWarriorIndex = RegisterAffinity(13, _00E_FS_Affinity_AbSpectralWarrior, _00E_FS_Game_Affinity_SpectralWarrior, _00E_FS_Game_Affinity_SpectralWarrior_Female) - Affinity_BruteIndex = RegisterAffinity(14, _00E_FS_Affinity_AbBrute, _00E_FS_Game_Affinity_Brute, _00E_FS_Game_Affinity_Brute_Female) - Affinity_DrifterIndex = RegisterAffinity(15, _00E_FS_Affinity_AbDrifter, _00E_FS_Game_Affinity_Drifter, _00E_FS_Game_Affinity_Drifter_Female) - Affinity_DruidIndex = RegisterAffinity(16, _00E_FS_Affinity_AbDruid, _00E_FS_Game_Affinity_Druid, _00E_FS_Game_Affinity_Druid_Female) - Affinity_NightwolfIndex = RegisterAffinity(17, _00E_FS_Affinity_AbNightwolf, _00E_FS_Game_Affinity_Nightwolf, _00E_FS_Game_Affinity_Nightwolf_Female) - Affinity_RavagerIndex = RegisterAffinity(18, _00E_FS_Affinity_AbRavager, _00E_FS_Game_Affinity_Ravager, _00E_FS_Game_Affinity_Ravager_Female) - Affinity_ScourgeOfTheWildsIndex = RegisterAffinity(19, _00E_FS_Affinity_AbScourge, _00E_FS_Game_Affinity_ScourgeOfTheWilds, _00E_FS_Game_Affinity_ScourgeOfTheWilds_Female) - Affinity_SoulcallerIndex = RegisterAffinity(20, _00E_FS_Affinity_AbSoulcaller, _00E_FS_Game_Affinity_Soulcaller, _00E_FS_Game_Affinity_Soulcaller_Female) + Affinity_SpectralistIndex = RegisterAffinity(11, _00E_FS_Affinity_AbRitualist, _00E_FS_Game_Affinity_Spectralist, _00E_FS_Game_Affinity_Spectralist_Female) + Affinity_GhostBladeIndex = RegisterAffinity(12, _00E_FS_Affinity_AbGhostblade, _00E_FS_Game_Affinity_GhostBlade, _00E_FS_Game_Affinity_GhostBlade_Female) + Affinity_SpectralWarriorIndex = RegisterAffinity(13, _00E_FS_Affinity_AbSpectralWarrior, _00E_FS_Game_Affinity_SpectralWarrior, _00E_FS_Game_Affinity_SpectralWarrior_Female) + Affinity_BruteIndex = RegisterAffinity(14, _00E_FS_Affinity_AbBrute, _00E_FS_Game_Affinity_Brute, _00E_FS_Game_Affinity_Brute_Female) + Affinity_DrifterIndex = RegisterAffinity(15, _00E_FS_Affinity_AbDrifter, _00E_FS_Game_Affinity_Drifter, _00E_FS_Game_Affinity_Drifter_Female) + Affinity_DruidIndex = RegisterAffinity(16, _00E_FS_Affinity_AbDruid, _00E_FS_Game_Affinity_Druid, _00E_FS_Game_Affinity_Druid_Female) + Affinity_NightwolfIndex = RegisterAffinity(17, _00E_FS_Affinity_AbNightwolf, _00E_FS_Game_Affinity_Nightwolf, _00E_FS_Game_Affinity_Nightwolf_Female) + Affinity_RavagerIndex = RegisterAffinity(18, _00E_FS_Affinity_AbRavager, _00E_FS_Game_Affinity_Ravager, _00E_FS_Game_Affinity_Ravager_Female) + Affinity_ScourgeOfTheWildsIndex = RegisterAffinity(19, _00E_FS_Affinity_AbScourge, _00E_FS_Game_Affinity_ScourgeOfTheWilds, _00E_FS_Game_Affinity_ScourgeOfTheWilds_Female) + Affinity_SoulcallerIndex = RegisterAffinity(20, _00E_FS_Affinity_AbSoulcaller, _00E_FS_Game_Affinity_Soulcaller, _00E_FS_Game_Affinity_Soulcaller_Female) Else - Affinity_SpectralistIndex = 11 - Affinity_GhostBladeIndex = 12 - Affinity_SpectralWarriorIndex = 13 - Affinity_BruteIndex = 14 - Affinity_DrifterIndex = 15 - Affinity_DruidIndex = 16 - Affinity_NightwolfIndex = 17 - Affinity_RavagerIndex = 18 - Affinity_ScourgeOfTheWildsIndex = 19 - Affinity_SoulcallerIndex = 20 + Affinity_SpectralistIndex = 11 + Affinity_GhostBladeIndex = 12 + Affinity_SpectralWarriorIndex = 13 + Affinity_BruteIndex = 14 + Affinity_DrifterIndex = 15 + Affinity_DruidIndex = 16 + Affinity_NightwolfIndex = 17 + Affinity_RavagerIndex = 18 + Affinity_ScourgeOfTheWildsIndex = 19 + Affinity_SoulcallerIndex = 20 EndIf @@ -392,31 +367,9 @@ Function InitAffinitySystem() EndWhile EndIf - ; Fix 1.2.x.x bugs if needed - If FixedBugs1_2 == False - If bHasAffinityBonus == False - iCurrentAffinityIndex = -1 - EndIf - - If iCurrentAffinityIndex >= 0 - Spell affSpell = Affinity_Spells[iCurrentAffinityIndex] - If PlayerREF.HasSpell(affSpell) == False - PlayerREF.AddSpell(affSpell) - EndIf - EndIf - - Int[] PerkDistribution = GetPerkDistribution() - UpdateClassIndices(PerkDistribution) - - FixedBugs1_2 = True - - Else - - ; Init MajorSchool - If MajorSchool == 0 - UpdateMajorSchool() - EndIf - + ; Init MajorSchool + If MajorSchool == 0 + UpdateMajorSchool() EndIf BlockClassUpdates = False @@ -583,55 +536,55 @@ Function UpdateUnlockedAffinities(Int[] PerkDistribution) ; Spectral Warrior: Phasmalist und Vandale/Hüter/Klingentänzer TryUnlockAffinity(PerkDistribution, Affinity_SpectralWarriorIndex, PerkTree_PhasmalistIndex, PerkTree_RageIndex, PerkTree_BastionIndex, PerkTree_DerwishIndex) - - ; Ghostblade: Phasmalist und Infiltrator/Gauner + + ; Ghostblade: Phasmalist und Infiltrator/Gauner TryUnlockAffinity(PerkDistribution, Affinity_GhostBladeIndex, PerkTree_PhasmalistIndex, PerkTree_EspionageIndex, PerkTree_TrickeryIndex) - - ; Brute: Vandal/Bladedancer und Lycantrophe - TryUnlockAffinity(PerkDistribution, Affinity_BruteIndex, PerkTree_TheriantrophistIndex, PerkTree_DerwishIndex, PerkTree_RageIndex) + + ; Brute: Vandal/Bladedancer und Lycantrophe + TryUnlockAffinity(PerkDistribution, Affinity_BruteIndex, PerkTree_TheriantrophistIndex, PerkTree_DerwishIndex, PerkTree_RageIndex) - ; Drifter: Vagrant und Lycantrophe - TryUnlockAffinity(PerkDistribution, Affinity_DrifterIndex, PerkTree_TheriantrophistIndex, PerkTree_VagabondIndex) + ; Drifter: Vagrant und Lycantrophe + TryUnlockAffinity(PerkDistribution, Affinity_DrifterIndex, PerkTree_TheriantrophistIndex, PerkTree_VagabondIndex) - ; Druid: Lycantrophe und Elementarist - TryUnlockAffinity(PerkDistribution, Affinity_DruidIndex, PerkTree_TheriantrophistIndex, PerkTree_ElementalismIndex) + ; Druid: Lycantrophe und Elementarist + TryUnlockAffinity(PerkDistribution, Affinity_DruidIndex, PerkTree_TheriantrophistIndex, PerkTree_ElementalismIndex) - ; Nightwolf: Infiltrator und Lycantrophe - TryUnlockAffinity(PerkDistribution, Affinity_NightwolfIndex, PerkTree_TheriantrophistIndex, PerkTree_EspionageIndex) + ; Nightwolf: Infiltrator und Lycantrophe + TryUnlockAffinity(PerkDistribution, Affinity_NightwolfIndex, PerkTree_TheriantrophistIndex, PerkTree_EspionageIndex) - ; Ravager: Sinistrope und Lycantrophe - TryUnlockAffinity(PerkDistribution, Affinity_RavagerIndex, PerkTree_TheriantrophistIndex, PerkTree_LifeAndDeathIndex) + ; Ravager: Sinistrope und Lycantrophe + TryUnlockAffinity(PerkDistribution, Affinity_RavagerIndex, PerkTree_TheriantrophistIndex, PerkTree_LifeAndDeathIndex) - ; Scourge of the Wilds: Keeper/Thaumaturgy und Lycantrophe - TryUnlockAffinity(PerkDistribution, Affinity_ScourgeOfTheWildsIndex, PerkTree_TheriantrophistIndex, PerkTree_ManipulationIndex) + ; Scourge of the Wilds: Keeper/Thaumaturgy und Lycantrophe + TryUnlockAffinity(PerkDistribution, Affinity_ScourgeOfTheWildsIndex, PerkTree_TheriantrophistIndex, PerkTree_ManipulationIndex) - ; Soulcaller: Phasmalist und Lycantrophe - TryUnlockAffinity(PerkDistribution, Affinity_SoulcallerIndex, PerkTree_TheriantrophistIndex, PerkTree_PhasmalistIndex) + ; Soulcaller: Phasmalist und Lycantrophe + TryUnlockAffinity(PerkDistribution, Affinity_SoulcallerIndex, PerkTree_TheriantrophistIndex, PerkTree_PhasmalistIndex) Endfunction Function AddAchievementForAffinityUnlock(int nTotalUnlockedAffinityCount) - If _00E_AchievementsEnabled.GetValueInt() == 1 - If nTotalUnlockedAffinityCount >= 1 - Steam.UnlockAchievement("END_AFFINITY_01") - EndIf - If nTotalUnlockedAffinityCount >= 2 - Steam.UnlockAchievement("END_AFFINITY_02") - EndIf - EndIf + If _00E_AchievementsEnabled.GetValueInt() == 1 + If nTotalUnlockedAffinityCount >= 1 + Steam.UnlockAchievement("END_AFFINITY_01") + EndIf + If nTotalUnlockedAffinityCount >= 2 + Steam.UnlockAchievement("END_AFFINITY_02") + EndIf + EndIf EndFunction Function AddAchievementForFullMemoryTree(Int[] PerkDistribution, Int[] MaxPerkDistribution) - Int Index = 1 + Int Index = 1 While Index < PerkDistribution.Length - If PerkDistribution[Index] == MaxPerkDistribution[Index] && !bMemoryTreeAchievementUnlocked - Steam.UnlockAchievement("END_MEMORY_TREE_01") - bMemoryTreeAchievementUnlocked = true - EndIf - Index += 1 + If PerkDistribution[Index] == MaxPerkDistribution[Index] && !bMemoryTreeAchievementUnlocked + Steam.UnlockAchievement("END_MEMORY_TREE_01") + bMemoryTreeAchievementUnlocked = true + EndIf + Index += 1 EndWhile EndFunction @@ -646,11 +599,11 @@ Function GetPlayerClass() Int[] PerkDistribution = GetPerkDistribution() UpdateClassIndices(PerkDistribution) - - If _00E_AchievementsEnabled.GetValueInt() == 1 && !bMemoryTreeAchievementUnlocked - Int[] MaxPerkDistribution = GetMaxPerkDistribution() - AddAchievementForFullMemoryTree(PerkDistribution, MaxPerkDistribution) - EndIf + + If _00E_AchievementsEnabled.GetValueInt() == 1 && !bMemoryTreeAchievementUnlocked + Int[] MaxPerkDistribution = GetMaxPerkDistribution() + AddAchievementForFullMemoryTree(PerkDistribution, MaxPerkDistribution) + EndIf ; What affinities are unlocked? Int iNewAffinityIndex = -1 @@ -659,7 +612,7 @@ Function GetPlayerClass() UpdateUnlockedAffinities(PerkDistribution) Int nTotalUnlockedAffinityCount = 0 - Int nSinceLastTimeUnlockedAffinityCount = 0 + Int nSinceLastTimeUnlockedAffinityCount = 0 Int[] unlockedAffinityIndices = Utility.CreateIntArray(affinitiesUnlocked.Length, 0) Int Index = 0 @@ -673,8 +626,8 @@ Function GetPlayerClass() EndIf Index += 1 EndWhile - - AddAchievementForAffinityUnlock(nTotalUnlockedAffinityCount) + + AddAchievementForAffinityUnlock(nTotalUnlockedAffinityCount) If nTotalUnlockedAffinityCount == 1 iNewAffinityIndex = unlockedAffinityIndices[0] @@ -832,16 +785,6 @@ String Function GetPlayerClassName() EndIf EndFunction -Event OnPlayerLoadGame() - InitAffinitySystem() - - ; Post-1.2.5.0 update - If bMeditateKeyRegistered == False - UpdateKeyRegistration() - EndIf - -EndEvent - ;===================================================================================== ; PROPERTIES @@ -1078,7 +1021,6 @@ Int Affinity_RavagerIndex Int Affinity_ScourgeOfTheWildsIndex Int Affinity_SoulcallerIndex -Bool FixedBugs1_2 Bool BlockClassUpdates Bool bMeditateKeyRegistered = False