From 50dca7ea53e2f2f5450168efedac39992e80dc9b Mon Sep 17 00:00:00 2001 From: Hash Borgir Date: Sat, 27 Apr 2024 12:23:15 -0600 Subject: [PATCH] Optimized the code, right click ad to bag working for all gems. --- build/Debug/D2tweaks.ilk | Bin 13719972 -> 13853572 bytes build/Debug/src/d2tweaks/ui/ui_manager.obj | Bin 369458 -> 443684 bytes build/Debug/vc143.pdb | Bin 3297280 -> 3297280 bytes src/d2tweaks/ui/ui_manager.cpp | 1058 ++++---------------- 4 files changed, 170 insertions(+), 888 deletions(-) diff --git a/build/Debug/D2tweaks.ilk b/build/Debug/D2tweaks.ilk index 0a0cf4610d0946c32cdb69a06e1272a5f3aaf6e2..323d9dcae94e5543911beaca267571f700cbc251 100644 GIT binary patch delta 44628 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 delta 15771 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 Ib@TTB3rS@B_5c6? diff --git a/build/Debug/src/d2tweaks/ui/ui_manager.obj b/build/Debug/src/d2tweaks/ui/ui_manager.obj index c93a8d9709d1573e66bb81f6c1071777b00ea382..0d3ed93af6f23ebd8b684ffaced7f70ca187d4a2 100644 GIT binary patch delta 76070 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

9G;6F~}tc^u@kEz^%*y^E~FikUt+(8&zPgLrzis zkXf1qwi9y5H`-Av94-8Y_4^yO_C7+^J0kC5!i*wBO*`Tg>yMa+$#o2Q@u<$Vim2?z zxQ#l-jd+AB>v2}86O5Xi?!Xx*n9C=WvyI3{Cn*&Jr0lm&@$R<_kOy*Lz$DEUk&)r?=?|>>XUxu6e>$V4u2C5C<1;kaIdc`}w&(P6-1i*o z<#|2O3Q#EXyi=?r%-A<-l4T3whZp3HfU9(>Q^cj}X%RwHbHZIN%Bq9j^j*tvW<=^wPSNHUJ#<(7;uHtb3|(U{*?uFu=2vri)d<(` zzdA*OD=Jyw!YfX({fc=W^EqVytIC_Pm_mGV)hQbD5r*c#ZjTot7)( zc07b~@scf&=>~TjH+6OMa={)qonky;S>2MvzeRZcAF|w;e*S}g_*1WI@|ihbVAoqt z(do9i?WG9U^xHJ>ZM6&-asggTc>G@~YV}`EvF$ItLda%1PWZ<=gblYN^sX+-NwVa* z%d;V2?Dhip)R--N&nZIw)=6u_Gdvm8|Jy0*-`B}T-&e^d+~>aVfw~iO&3nMr(5y#B zu)G@K^AFAWHMkAsi+-~DAOYqrB>ZLgma1j`IPVI1gpkIy84R% zG13;GPUvb<-etA`@f%^e@>Rm!KZGkd0@Q6zZ%2R_gYFXJc1=Oga|WpU#KTZ7IX9gF zqGX`5xjF|1hf7^ zu29JU;V8xR>$@El;7|1<9SJa~L8N0DjE2i$#|9kBmI@H5=(ifU9gpA&;vPepwoqvu zE(~S3ffa6Og$Kg-8%AatR60Ps$6xu!ZYDR#=U7Ed#|G}K_gI})6Z1(q9oy0jYn0D% zEQUU66zR%QAwV>&ps(EWXY?5Khv@0(`IcUX-ih9eJr(V$tkP%7S~)9| z-JC%UlbT05mckWH-L4+wSb;u+Eprt~w~Jm9C($KZL^@7EnJy2uhv>1`a#YnedBoqi zYQXw~En3;kQY~-(fBE}O%N~x7Tu>HFK8tKccWf2um{?60q6xN-rN;J$WvhuT%S#Lp zY|Wu8bQjpTb)+K&4r@Ka5l}tAyh^w)l)hyJ%hk|n8$ns=O4#DjNo^t>o1skS##XW> z8e3E7XiK-(WK5&Wv~|0_L?1+Z+J>pM@>{~ERoLyigch}Ay0D;7{DjsD5Jgqk?W%@u zf|mI*68AFUE`$rb>~;-9&-jmgiwJMB@*PBaat!3v;dEJCwq80@hD%_eG|NL;a{MWtKfH|9sh*^K!u* zD*6xpPR?z1>D9u#)GfbR;I&w1#Te1rT+^$SBidqli{&hqRcz^ut?Uz(e4?UH#QH=9 zpU_^(rQIU5Uxapy@OiG_^IXB_xq{Dg1)t{%KF<|=o-6n~SMYhR;PYI;=Q+mbImYKX z#^*W4=Q+mbImYKX#^*W4=Q+mbImYKX+UGgi=Q-NvIojtr+UGgi=Q-NvIojtr+UGgi z=efMkb9tZV@;=YyeV)tvJeT)*F7NYP-sicz&vSV^&+gsIfnN!{O5jrhj}rKkz?%fV zB=97GA7CqMuIkm=R#|;kTED8-eOrVaPEEqtDU-W6;mOT` z*Y_=Bt4^q-nWbMLTS1wkP$t&9{PF~a(*zNeHT1#b$0s@nF=Rlu(Y;<5*)av1Gy8@X z$xXyRuL<#buO5S6@2S$3#PnxdA$s>3Si4(qN)wdzlDVc|3tNb3>t8OsFww(tJ8XEj z;VRPkABJ*f_2J>>p#GsDB|8amLe5j}foG-fPhC7TtRH zB89_OV{y78Q!}&5C`(?K(0M7X9;@L&lWK_Mb(O(Je#FjRV4o%4Ul(JM@hTERAt~ zR`be$@EX}gaMqC3s;GPn>DHrvui+vaM%h04PvJJLTUQWv7MK6)_zK^q3=D6WP9L#p z`lu)uT#iSm`3`f(fKXM;in5p?vY1m?_N?eN{^&|FI$T!mXigRVbb%|I+Xm(}JNAtX zl*z(!o7V@1H%hah()jPnmMi;INo7&`$*oA2G+q`Z-R{agR?qadoh2xcBpct z(bwg5U&|(HR@_|vMrk#;-!Ea_A5vOP>dPg~(nCvUl?h@>`~AgBe}$BFqWq%58g$C4 zvK=mK9vG^fYGx*AYVN-8h?OJ$W@ z#@u`$2TvNE6df!3U6nMt>a)C8GzSgSC2fe?_-f|-Vd0I_+vt^^YV<}p`Sm4#*>$(DO8#`ib3Z1V_o(tA zhlomEx6ZSYN2}yJo+OurNviv-zf({8%Oqc?O0z1J&GS}O zQTfz@nQjXAcpa;c{0qi2l43Tk(Yk|p@5&9h1ns|uW|e8@3aK$f7< z%g;()(VQ?+j}n<~T|0Bt$TXW)-M3_wm(Kf&zocu_Rnj|Id5%h}+b42k%pY0v1g9r6{ns3#u9?On9IFOJ0ol}3yQ$=9RHcF$KKetX1E{jga_auco3d~hhQrF2Ht~* zVNMP_kHC`f7#t6e!)fpY^um*HKKvFgho|61_#NB|J>Me^A2e3SR2rI*X zU|bFlZ~GuxV0aAML6)!h*PsK+hg9B6ik}Yy;8GX}*FjEg~RUSQoB@ac~!`2Y-b1;XT;U&irr4<9Z_u?O|is z12%#EU{m-8Yz8O6<}eYqfOBDMC?EIRz@xA&JPlulmtZ@19kz$};43hM7ppqJ(y*fk zQ5W$ldV(W6aEZ)Lq~og`oJ*Q7Z!p2U^&9oE^sepNLqFVG`U2C&TkF0hZxR<4sr{z6Be?sjvl1gq`5qun$av zgW)td0nUK(Ok^h92xq|^a5g*uO?Wb#`9BA79zzPe1K)w69FKTmariDA2j7E9@O|io z^Wc2=0bB;>!_VM{a0^@j55h%I9=9xpj)H7zFcVw?b9oS-Alz^%ECH9nI&eAc23Nq5 z@KbmIu7cmg)$kHr1Fyoh@Ge{j?QV8Cm=SJ(x#1=#4{A2U7VvZE>45kG(Gz|N2f;0H z6x<4D!fkLB+zxlauV4;Na(2SP@M~BG?t-y!H>?f!z-DkSYzz0np70=?1P{siKM(N@ zh9&SYTmz55FW^zQ3m$`K;c<8$o`4}74t)!|!&7i5{0@$X-@_^J2RH+shVR2Oa3MSk z*TM^O{>xLQR1Ckti|`iw5&i>zg08|sT!LBQ&#)N$1=feZ!dKyMa1Fcyx52CM0Q?;u zgV*3WcpYAbH{cC;Q%;9Rh+9w|VBLnX@Gn>s-hqwaUDyWRgPq~u@C|q$&Vdi$a`+E? z03SgkicJmXfWm=)XoE$e9mYV915p*>gpHsJ_JJATB$yFSg9dyD2Ehd|7%qpI;7*ts zrot@n4$KN0@VZbo*bZigJzyy82Xnv?MVS9N5fd@wf>U8`=!N;j`BFdY5_ z3&3lzAiN9RFbg-k5wH|21na;^_zsMMi(wJC1{Q^zih6`7hWHvoad;S(fZxKB@DeNo z-sdQLsEL3!`Bb7z69V3a}H5g=1hvI1^Te7hx566IO)}Jcw!tdvPINf|+4; zm>1T7ZdenRg>_&vSQqwzaqx9m4~~QN;hV4loCzDkrLYm)0~^D$uqiBEf=vy2UP3fS zG=wc+3)m8Ngsot2*cuLkZQyv=4!#fD!_VL=a69Y(_rs3x1ndOQ!B^p5urthFlFbbk zgWdSYFY)6L-7&lkd%$;KPxt}s1((6s;0D+mehK@)1F%253b~RWCCc!dr8jOX>uoj#So5C5e z4V(#kKoiQN;5qPpm;yhB@4(g23qOZ*;n&dfF5(R0J@_|#A7&}bt_Hiq`EUsQ5RQWj z;AHp_oB|xD;N7%iy1IIeZ9Lz`%0M|CNZ4a_nxfC|m{W!PT%6 zTnj&i>);l+9`1!3;9>X~JPkL(U*INq4Q_@H;g>LPc{Vl35v14(tHW)uL3!r?c0?-- zJ76dH6&wzC!rAa^xD@V&_u(FxF`8Ws=79TPez+eNfd?R86^nzg3OocG!Xr?gpC5%2 z;W3!xK^#YopDR=>X2mgXUzy>kwYVc)v26l&MVPAL-j)3Q3JiGwk zf~oKw_!E>T^OvCKFyd##_wX0^Bm5Qq4llzy@Hd#b0=pY539rK1@ESDXb+{1TfS&a45_S$HFWy0fxXC zFf057W`nz7c6bKnfTb%5krP&fxnKjB8#ae|U`Lo2z6SGo5CakU;W$_T%C9a8!VS<3 zx4{Uw4;F&QVPSX{M#9@L3TCU!?gop(VsJDp4yVEr(1a!7d$1H-0zIV>>kwt&=ddi? z2cx0`9N5G~q88(9}U~~8tYzafF zv8llb*cz6u#{6%CsDPm@tOZ|&O<+6N8n%bsVMiDbJHhwht8g*w3|GM}a5L-*cfxM) zH0%!V!5%R4OKfhi7<>(m@gRC55@8=W2lj>U!+!7+*dMNk1K<~MAlwg!K>6L!P-v^p zt_FkPFqi`lhXvpWSPZ@aYr&DQ3mgSKBM_qzGvQeHBOC|+faBpmZ~}DJV6ea}FdpWE z6JZ3L1k1q$D8F2K6ZVB~!C`PJ91j!WTkvf-3nn?4|H}~5FzkiN@En{D@4=a{aZR4x z;45%8>;+9Y0M3Dwwz&r3G z7+Qy7yz5|!QkKre94O|L0!DVmtR8-0TzLu!D?_L>;N~xA#gKHf?vRM@JskR+yd{xt?)7223>X7MfeE* z2=m0T%fWu|XE+-E0;j-VVN#rjT@En^!*B2dcm*zoSK)ei9m?+!Z@>%iCj15d0k6S7 z;ca*eK7hAjNIf3mU}<;<)`fRr7x*_^3-7}n9>fF0A@~rUfd9ZV@DaQOAH%Cq1aJca zc^f@GcYSs@7zG1hDJb7UkAb{#9$yu5%pYGH@ks9L|RY0+|0>5Ct(Dhi-Tc@;-Nb^@i+nuqovI?fCXE3U-0KvmM_D z7KKA0?`g-6g1nO*{}$w(>UjD6D{nr>Z--^zepnWsfV>SIe-4%p@UVm;qA@&%F)*wV zyB&;%yr&%B4D#l0`~t{(z45DI75F8r3U|V4@EiCN`~g;nsjvpT0eRgsUVedF2Nr>K zVL2G*K~zQ5gK@AvYz`a1-moD|fQ{h$urb^So5GAu*yUg@*c=vuEnsoj62`(-uoi3$ z8^AWO9c%|jKu>$b48$w&UDyFGf*s+fuoK(_Uxi0tXLt>EfsUr^b}$@vhl61cI05#A ziLe)(315TrU~jk-_JOOLGXMJ`wqY0m<@eG9;T<>#ie@~+K?4qfp>QY+hp)p}I1ILd z!(l%-0w%zb@H;pP{sKqCKj9eoHyjI{&6)q>5FyRk?O-lA0Y<@zP=51033i5)VIMdJ zz77-MIQS-f6TSuK!>Mo!OoYeb+wdBk25YuplY`CRblAazn1Sd9XTpJS790gF^yWzgzdhJ#a2O3g3mN;d}5Bd>>wi^I%|0b~{)Y&WBathp;XD2zr(v79u`_i{K8p z81981!xL}`yZ}FezrdyNFSr6`Z^iBgOTkZJMYsyqf~#R;xCXX`YvDk+4kp3%a{hmW z*nnXR+z2zbW|xCua5F3hKZj-E7qBY)64r-XU^BQCz6y6h`KrKIFa_>}AHuKUGPnz_ zhr8icxJS0gHaS=bx?yP;0V{YAg%Gu1 zVb~N#!Zt7p_JGBpd<~>Hd>@v8AH$MxH7o@`ho#}yunar{%fi25Ihds*yB#bJW8gSg z0eX@Uu?R1$2&ZkE90VAJ>VRFcYi=bHUos4eP)Xur90v z<6t*f4~~TO1DXG`5e+f?3>(2)urYiLo4~+V+3jF9*bIij=CCkq0i$7SC|_7<1N+0a za0GlAdSE-42-`ywz5-Xk4uQ=7{fLejF2GLkKI{w|cV?G^9bi}33wDD8V0SnQ_JC7h zPnZOI!S`SvxEc0^$6-Hs7WRj~zya_k9OyyZM+}15y0F{9vTz8j2ZzFLa2Q+9OhEuyS|4qa~40GU0m;yJ# zci;}_g$LkV_#=E5itg-oFeiK;mV+O_NpL=#1wVxI-~zY^egs#;h44$b2=46eVYfpZ z!|(~b0hhvzJ$ROb+2L{+23No$a3w4UKZOn9D%cyYhU4KHI2W#iSKxa1H{1XNdh$pI zgW*P)%Y)d2C_%7TD*TS#i5x5Kf40l7( zi%kx;hWlVQxF323A`T#i!-Fs$9)d~m8#o&th9ALWa63E>e}E_8Pw*tX2ET=O;VEc) zjol9Bf#1W5@CVowo`!wkSvmhdN1Vg351xl7;01UZrovy~MffND5&jK-f*E?VyTK^< zE364G!$$Bo*alvKo#9p32mTJ@;WaoPUYGNK1L6jTBk&LC?!ztz%fef*8oUkbz`tNK zcn5ZXcVRbp4-SD3pnQ?*AzTXof$QKSxCK6jd!TS}>jrHe#ASpX2KHsQgZZHoR)m4@ zZRmn?VFtJuW`rxC0XM-QxDy7${V)^!9%hACU=H{X%n2XEd@x%-R^0rEP(%bQ0Sm!W zuo$chi^F=b6zmJj!r`zS90jA{yD-LO4xatU6HCxV{VKvxSP2$@m0=XD0!zVaup)d3 zR)*DKU04J1cq3{;ZU{wf$VMRIAjKB-;BZ(Uj)e{2B-jW}V`~(R5z{d=f$zemZ~<%v zKY=aaTG-09KG&R8w%Tn7XC&MfW`gaYEJ%CE&473XvWJR}a2)IeC&127Ubu^Ez3UzP zbR#VNbcfPUPbmHLg3`}xQ2OZurJue~`soj)p8>A*cfH$ewFeQFeg;G7XDF0@UWd}p zFev?ufbsARDD#hkZ^F^|dACfEIqBoswnE++rEEF8A+fd$X3~+gM1$7btb9@~}A zEW4zL+4ti--fZEvoMy{q`E2bh^GmiimMUXrxf5h&{p15%EAy*mxxF*zIdYpHEGuMd zpc0J#q>xImW7*$Ug0ge)RpryRW|375ZF@;naQ*4!gKT;82v^o3*%;fR#o&>>UT-_B z*XvEYjp{pa#6YwD%3Wr+H9fs0OWI19H&%t2-+kJ`+`XoV_w^WCDP{O#)t~0?YZ~z{ z%!aON7+imph{GHIv`b_#%WWuY4qlsCN7?I-UO#Sao9tvOxT}DwI_KwX=J<-%wfgE9G^HUkk z3Eu_=^&Qq_;NYGk1`HO5tqhB0t!?Ga&ky)g1+Rbk+wm@2cdOkpmo?!(ZeM@q!AZMW^G=)fs~^p^+h(e3d~){y_Nw3H#HqIgipHqBCoIEUgP9@|Ar8KOMnI!W1L zEoF$eP(1XLF3D1cIE&&y09&f13{fsSw^2L*Vyqw~$`Eg&I7z_vwxtYl2E{1@whNXr zL|Il>P9U(wSjrFys42>pXemRSMom_>^OiD1nH=g=gS^r51;|N68$!P7$dL!esg^Rt z52$!$J7+0Fl+MXrqq3E^lp!XgI5r{gTb44!_b853u${G(Axh;^$1T{(S<3K;NyxD( z;hUB+#CNDM%67(5hA5d^9paF=tfdSw5j9GsOR$t7PN7CB+i6P~LcUD+hO(8hl)SV}{jz&J=5zq6Dfiso0xVPr08DMO4$4N&POTFMZ|QT>(e zl%)(&B#fsHWh-GRLySXl+=jn+OHq+y$Ue&Wt)&bR6|N5INLbubh8T-_O{Mc#$`D6U zy_D^wr3?|tcHdLkido7KV^BSmZGxo?aRk+!10XJPLQ7hqa6z82RKlW`GQ?<9S7jS- zDMK7aby2qCmNG;kw>q7~UlB_gLcYcJs!BJ`Qik{j)k)cop*&I=A|gT^d6GHGQid3b z>Yx&iwUi+aqFzz9BbG8mfkNCaC|e;*8Dbc!owALzlp*$_URJh)mNNJPxG?t~%2>cs zh8T=$qin-0Wr(j)t(9%Br3_ImQhk#|p=(--ZbCIv={%M)#K)-S%C^i>hFF7YiOmxv zHdxXSJ5en#28lhEVwK{yZFr!xRj`yH8lXlhTN6teq9=;4wMf^;Qid@7Hm~2d5H&tf zrduMF2T6Y-$0*}*OBvz@N;|w|DHfk1K3jQ98R8|>WRfB9|Ai~0PuwiJ7b&*l;G zoiLp_ptvt#MoY0B`)yVIwl1hdRl6RRV!)wzHm6xfTFMY}P`bu*EoF!;D4xMdw?irF z&pbx*z>e{xrKkx?Xa37lhR9PwJ-CxD%u;j-if49guVl3Sj%#Qp_Bb&b!A_hPWb? zN_X8-hIowPK!CiCQc8KKaY3ZcT-Z`fF%%~RBy3_SL%fROZ~$93OR<@tblyppGQ<)T zhXkZsZYe{2iQ+&3+jdKFQ-bp7%&ADJ4B;%TP7Fwx!BX@)iqi#bVU{vP6_n0f-BN~- zueu#n>0YxGt0;;S2l9@!lp*G#bl!O$OB!MaiW3GB?y?lyF^ba%Y(H4a5O+{I^L2_O+g$u>W1-4t3GDJvOU*1ql8KM&EH@W@=iE2`!4AB(Du?Du5mNLX3 zl)mummNLXUD2_8oC*Qu4ikXArBm>)OOBv!2O6NUlDMQ>wagss0du5sbQW_#-Id$xT zF_WdZ^Fis%r7dNMRw#}+NcXa(4AC3K5eT;amf{W?rSnd+6q^pp=91|)Sc?0<-AK+y zFz&aMA>@mEI`b7v8A86qr)}YuVxjTd*M3qpsE|%i<3Z)AeZz)zd6h|doV}_*+@j0rrvTcoK{gaaW zbSq1cIBzLK*kjZ|3Yh~fWr$p;7?nAnr5H#kec@`BGDLk8hb!c5Y$-#?mjXF}!8Y1b z-2cfp0(Iv1EML(D*NnnODIuAx*6B$U3ee9urSLu^NJibJ}uEoF#n zs8-7MhouaWIo6jq8%nKzJh>t{@*#5-OBtduien#a%`Ih!0VsXpA(mpBMR6QNy1AAz z#4;2|LfAgFlpzkFbl$_3GQ^)AWN(%5j-?FYs;JJ7$Q)!To&``kb4g1Xq6KQ8%G<_L zY+|T>%GTFXJX4}{-nT7fh!hlON%H>hT}yJ4i5j9Z@3oX6E}?Yh%a$_4E!1e0?yjW_ z;jW|(qbPKwr3_IUrSsOalp$K8IQ1l5TdAaE6e7nd<77)2VgX8LUTi5ttVSiMbn7j} ztrTjKvR$;4As(T0UVCM&c&I@osdU9HWr(Vkng3Iju?9w|4AIHT5+u4>il<}LER{~a zO(~Tj-bGDUwht_2h%Zq3!rLrmh#ygNR66-WrBsHvi}FgFM?A2kA#zvoWzKIYp5ss- zsLUlSWr((@_mu4wOL2RJ(ia|MDMQRhEmG+gTFMaXQ45r9lTzyb?<7)Z{@zlC_zAU4 zCH&P=hR9l#mjRSbzL_Z%Cm<-DH`Y>ysD)as(#2VdhZ@vMWgBKGL(Hto{MVW1V3f)b zAEG`}2^U$4XExM2WjkgmLtIDcynkBC5IL*ya)3&g*HS$Dqc$sB8A};LzTc_ydRkbL zdp*=wD&Z(gafpQ4rfkWUGQ@I}&MaU1)P?>WwO6IvYAJ3|QM;7ws-?I=eaV+MSSxw| zmkargN|?`5hKNHQP_~AaGQ?{rec^tVGQ@P$36*ZPr3|qMbyV5p>!VT`Vi!v1-DfF7 z{EqURQVDM&r80zklk^8=3$PSV$0(gS%2I}CggUFzHM5i<CE!IRH+ORSc5NmR64^_JVv9gDq8_d@pO#Rd23pV zhg8%bDqSB-asM|Od0iRhOR7>C;yskkJl|5>4XbbBntK^5w@vYoM%A>^B@I`2bE zv831J%OI65$Wk15qVDUZu(Fiu!Y`wA<_?zP9v|h%AeYQZmg3PGC6vu;DMM^P>AagQ z#XUYMqe_=*DIV=mfy(w*O^=p_$X3gjIj5z#$46yR39DPm5Y17+%GTOah8Tj<7andY z?(tDMRJwVVGQ_8-Y|6IQQr!O?M(WJREybFS%BK=uw3H#_`?9%}EsLet6;V2GNlS4z z|`LceW^-?qnZJK(pS^4m`PZ8!b4+o+d# z)0!frzMS5)iRNg-0?O~1@HsPHZYR_vvY9G95 z)p+|Lm#v^TEW!R}?Z*7%pKbE^kPcZA8XGKIcoRueZ@14X5|b+tH+if46j`R6lMyL0 z&`KqmyvsQ?p$0*3<{r+x-p2{{8d+s*Qp@1P9Ci|C*_Kel+x$&?*UXlOY8mm6P{~_# zroGUn)Hm(LGla;PmQUPO_vW2pe^t9_5S*AvyGg0;ojSul#MapR_Y8Z!UIocBd8_=S zR5D3Yf(#@zaQZzZCghfu6!|%EXFP>TObJG-D~+tw=Wu0^UXn9-Uz%kP_s9g3ci42w=>3Vw3os-mFIJyR)#pk+_a;dDSeq=CjFZ>g zn;_#cp=27V`ibNenX*-qD!soXl!2e05J}0he7<&}e8ruFeFaRBfmX>0Q-CjLhQtIx zFe#aTqA=SY>G8KxQq$nXUivnB0P3a`H)UW7D43lcFMPcTHmKCd=Q_yqYa3MKY;&Xi|fo+BSKsw20yLeNj$d z(>oIr9x^7AlI3TXO|!yj$jSG6jmVdjAhRSUbds);)hClIr47NW^L+y{p@|&UK3~BJ zJF+B{!GX8WEPGRL)H-`DZ`cfbes9b!dqs~`X={chDNl(x*xh;GG>A`IQi6E&`0=7( zG$R+8m?=cXvapCA{X*3MS1mGmR|a1RQe-pv8rxrh=pBg(H~*2vzpXy+{qxuxG{>IF zHqM)8j(wmv7X`8fdYkXEm*^mCl$hy1%aNk8=1>JmAnW5r&o4)^EQf#0%Z4az^DdlY zkFbsR?v|HS3s&?ldp?^>UN?WgWHktU3s+KtEQfq7@i#|usw{gZRg9F&Qs;PnITBG|b&cE9Y99ujt`&wcbumUrlv z3Er@GeEpK~nf;=&TKz)S7w(rO@6aCc-u?2DPx{5s?eYA6S)tFN-~U%N5kqS75$c z2TINN^hto$$KH`2(jF7M2_OEevvTP{la6&!`m;IDCRM!j zkUT|wPNh9Oi)fEA-sD9T?n!5brMt7FKdZBF_dj;l5a}UdxcVGL;Yuu4Grsa-UuT6s zv$IrItFy@Z!kx8qv6|dJ%S%4#tOBY%(y=pjRc)YWS|6!ju(P~_K2|e+*2n+qmxAf; zmlm=OR5_B{t1>-*#y@*!swq7r)K#Ai=$A4}?3oJaOs`QX>Nqt_Xa21zRIFC1Oxv#T|JhQV@R;#nf z`eL2c(B?h7oX(o){bM-~<{Y+hw|*9HHgA>{_7>g+o9#x3IudNz)qgDZAAMRhy?uIA zR?*tdzL)xi=2{~PC=WSyNDs-o)aO2$ZN>__+d5S^gwf&sa)rHvE_Z{j{$sTN*y)O? za`#I|cgssz-OZI=u)7=CytP)^V?*`R&=&ki#nVvong`xl+w3iMS!;LoAGPVJT3q$M zCyg`3HL@&L?{AhxeEt-9da4$c&3QbrZE9lMONnhSC${~4Z(Qm`jC)v5+{@;4Oq%Ps}dp_={?)IkNzu3}C3CFIYgtsW#-nc^&l(6Xz@0vBf5C(ieEBD4N&|`41@LpeS56q~J3*-0+L+?MU?Jxhg&MlMf&Rt-2?$Q_TT+bT2 zJENM=aq}_?@3J+%qCM5CWuMurGkv`}_eFcP#9D@!oTPi>rb#fw;^Mt)*ZYQ8+RJu1 z-A>Q%-FRQ`PJOZ7W#Rj7tvxna-yx3Uxvr(~=2>Td<-he}c~!dfEY3roJTs1Z;b%t5 zIDZ{`;3V%?>+IQs)qG7DfV*45o9Zv>Q@t9kdNr-@d%DV^SZi}1S;7}to7tIrt+&7b z-{xqHZl~w=VsZ=BHu{FDy(--EOZ4;&741}VgRewsZ>tqliPG~OP)*q``az|ED&6x- z^z?&@x*g!Ox~%k&5TiaT@oj#F&+KpNhI^{lVpXrDwWBI0RwCQws2K_;?hF-g5Q`&PZQ*W@a?)t*0_Q)LZ(-{VUCg8is(rH@Jv$tTt4 z_q5v8&31RF{(|l-Myc3SQjR|Iy4U&cQ`4UORrNr8{+(5Vyr$LdT=Ipx-TT4kG_t;@ zK7=23;R~Pp8u_W2U+tNFzC)J5>hpcFXwP4Zp1zl6z3%x1xA=M@Z^4akBCmOrzKQ%& zdI!K7Szc=ZY*uA|eu2|k&h-FTAUz~6R-a2505!j~XDT>ZJ_IC4qh6wjuugeaD&-yc zrLUpW9t_oWWzsPim7X_M(ZX#d8T*PCVQ)A zY!STi#fuziZ4t`5HBj*Wq60;55%IE+DO1$vRP{NH&%FuKPV;*|-fGVps#g#hAr%vm z==6=In&}-)svOp6QswxcmXkH|ye4^r`rQ2Rv4ep3*cN-ZwWMqz!ndTXdHCEVrB=E} zk-V-oin#3mIEseI?noG}K1VT%I&EVV>2+otM&GmhkpDJ{YO7I{))u3@TcZf?FFK06 znYY_xgYG7GKMjc%(nE3^_1T`*yt17gMn4dA z!e~9Zr?hzf4pUcEAUzKT@|xCg;F2#q9K7>((8hZGXo8*6Zgy>uPKXQ z^>_nWvgfbYX>Kq*zG8#XOF}i=_?CpS>0A=(rMLgf%JN$MUrCky`2~LV22)UaNG_~C zi_-r!cG}&+ydKF0Qxcc#v0kDd0|?7Xu~8S~>uDi+`5 zkpDL08>s#-^z`9PN{B3q)&IHCUhgh@Vb4k5%e!g38+x^08ZU-kZA;3gAuXSJWAth@ zQnw9h^>jp`k0`lFOt>ds%4{0iQl*LuZjsb9Lu|{(DbjqkY?h5F@_p2V@3YUB4BBshyO&PNf7u|$s!aT!3}TE@{4WdYHxB~EMN}#E4mkfof@R~sLXba| zkMlczTL9si%4YB>e?uWq{>K1fr1$=QdpVE3z!VJn0@G0PhY6kJ1e46R@u(;DSurdQ2utc{7G=qiIM?6V+NEq=Jwm% zepO7WO{Wgnmjzfw-oop`y2!gx@~0O9#X*#AljDBdcPL%tRKM*8DqiKdjnYNt|E{#W z1fX=0bD?y)Vklj@$|e2AT7F|ozpaB`b(d;W@nd#}&7+&WNml(YA3}xv-x#&6r{6XK zwMDhcJE)yXeTmww)EN{%r%szaK=E_rs7Bd*v5BZx8Bc*C1yx1G-bKlN2o*Uz+0}2a zBTJyZR>l~V?))k!-I8@s@+TbvMMIQs$rgTFTa<3e&VE}zl>EVmKrtAlTT=c9jM~e1 zlx#^)sF>kT_`Y9#gqI8YxGN5#gyQ8+NbfZvT zdz74r)HR-p(lwU#C|%>-DBZ>1pj3rD z;v`bn_$*5PQbwTo5v6PVo8NXFrE7fGZ*%0-zqb)6GN5#gv!b+@oG4x6qW*NzepOj1 z>K`cT`Hijos=Z%z^{ZYeUE{&1uBygkQM$(GP`btsP`buhbNOnV7p1$nAWB!bST6o~ zll)PSKv4#xu5m0%+p3~;jqCbtEl~1TLIOowl&-P-zbkc)9w=So5&m=&{pu~hGX2W) zp!7?@!L*% zkh;d_{Knr<^2b*K#dVaf@m+uHLzJ#@=DfaidHkw?UzPN$N`6({uj*NfpVw%N)HQC4 z>Y-}f4W(=RHA>g`B1+fzE=t!}@DQVG9Ej32&Vu?>6+Z_`*Eql5=0@oX7ne5q^B#dB z7Ab!*CQwvG=^D%b^;5fPh|)Fg=ug+%uLkt`=h-mUE`&`gkpnVec@Mo{Yw7CnQ|z;_p4OD`WdBbd;`@>Rrmp_3jeM=^DR_(luUy(luU+lE1VQC|03#jX(3-zCh_3f9KMU z_zGt zpF`;y|ANvr{vD-j{Fh9p%KreRYiuvzv$;^Z#vy)New6%0p+MnA=^D%bFI9UfgQCJ7 zn!lDmVN<_q?N?p=s=r?i^{df-C4V_i*LW(bx2o|Rl&ku zezn=Jw)xc_zdDH0HU1XWN5~6bMClsWarY`MYVSQ>h7AJ0fsy%IcFT0>7EEkW?;xsa*mR7h9(P0 zPDPX~83EBYV*t6Rh=K_LQ2{Rolxsi~)OVk=tDfop>d*I&`>k(%y%yB3_u1z;wfj_8 zSBI&34x~=ruW-Z#O2qyb2Ow!8)&Vhb6Vcj%KGIz}gP6Ftv1sln0Nw6oxKZ>8;Dap zN3_sFAQP_;aWhDr+{2eSG4UH9bXBK36&A5A(Sqp&c4XXO@&&37`RgiI8rC>3u59oK}`H5h>7ol znD`$M6Z@+=iPd#|)#=gvMiCGbmlUlWh>5FkPNOLxbiM!iIzcE;7 zgwRx>`9e#C)CnNfAb1N4V&Wa3Q9AHpQ0BiCco0xC4lD+#RG& z<>oi~f|z)SXd^&OJW;ecAaxoz?C?PhyrLSO|17f>A`?F?#$!TZp;JO12z?^-h0t{n z6W<2mTn-rc4-lug2R>}mQyem;0-1OPh>6wdD4F;v5EJhOsWZ{}jl&=&J|WtRASQlO zwD&mCwLWN`lmR_Hf7rV&dx3 zS_{M}ZXmu;E5QyzeT0SyjS*5Oy5t};K}`GvXsk}W2E@d_fta{(qLa89h=G$q2(0#h z89*j(0P@7D_0Iw^acj{!fS9<4XhT5il& z&?%v_ASS*D8mALq12J*Knoi z&ha4-6Tb;!;&(wzd;!G7>RQt390NGw0wt>BzdXh*5pRQ-_^xQ)B%FaocZmftu{vKS z%M<}Iab@uZgw#1S*|(`sJE6za=`GpZTf_k%CLRfzpc798G4W*(6aN8X;{3@@;)g*@ zTpGm0l|hB|>OTVF6bBtGWMlxDxS=B&tw9BJ7j-sGChj4veL+k-PJA2&5wgAMy z%L91+)3^!ZL%Pd05EJi{E{8!(d{TVx3VkSaRp?uxpM-uFdH`bJkUxmi66(Z-KukOV z#5rCKV&Z)uCO!sY;ukl(UlHvVsAR0(|J?>M@m*=Y4`Sl@ z6m7&b6%{HiR6{6DNS)*prO~5_P&SB(JAx+bzh_xk8JCRtl{HG4VFg z6rK1Wh=KE_F)+UWr~zc+h9D+x0b=5IAkJ|&kUFKS-{=Ek;=!T~2Ql#k(Po3xiDCW5 z0uU3c%aOCn8c716?R}6sU#;J`2x8(Z()tyMQ~a~z3mJbq zXqXvJ=Ym2dg~|(67petf;!MyqowzB8iT8rIQJ)4e@nsMLUk6Q()BC^gfK2=|C|$4r zJrEQBBbu4%B+d(>ub9$wkJ2C}t|G0EfS9A1f>0(-0&$AdKnxtJ4^-y?_8Uz>Ox#Me_8`u2chLre)LDZ4 z#&8f5>npiyZ7MV-eo}mv&{m=SBz64voQN+Ay(RQ75EEYj&CrRzP_6oz)1Z!%xHpJ% zJORYSGeJx|AH>A!+V73^s;&Wrn0S+j>g=LSyic?fpa#0jiy$U`Q(Dh}nD{gC-4Oat z=yxG+U8i1LNU(rV5fBrX0nOBj)k#X3Se<8-b9@lQ#BYF@_$-KtKL9cDXCQUPWxw$S zh=Fg~8jiod12XY1V*CfBPRQ&x%txKXc|j~w2*kt{LG;xUN)>7()JCY2P)|kb^p<|3 zACQTMgJ$W(lR->;3B<&|gP1sPJty%)ASNyeV&Y05b((0uQ3J%p0nySy4BVg|p8qtq zf~d|N?Kj$kILFcpk2vRP<{(0-vKARRblya2>nVBk|ACazrH zN!$d)#N9!h;{hNh9tL9K@gQ|_Yrj5QDHG2YZ2^dhmy4#(VA>%zq`GVaGVwlXJ`7^w z*FfqV*?!|4p$~+v3f&U=QRuGFeGsQOrh#G1)`1H)KyoG?50P`c3dF>FK}`H6=#+lG zzXM|S4?)a+38c=$?KiH0nEe~kz6UY;uc8?Zc{Xo+{~7~i_Ix0gDGXxvN@7eBN)u`< zq)vLOP7jW+rG&C}VNgP45<=uF5|pZ^^O zGW%N~X8!`j?B9Tx{Wgf%e*=xwN$!J~-P_dBVnNJaK(vyeVY){-5U0I*(~#4p7DQ%m zD8^Po9fW!c4H6nIG+t;5h}q|Y=IiXsLCpR!NN@5X;};;a=gM-jR|GM8B8b_8AZD)% zQm3Z(8;wBBo-JA%5VLm?Z2(A}x883I1u^?r-HQBvV-k?r7m0DL&?cc>LWhKo3%w+C z62$ChK?`*Dk3q~{vYE5V*KUUAKeM-k$axZ+$59ZozbLJt*MQ7^9z^41p|6C#7y3o$4`Hx>;*szb@q}VW*-3J zu5Jzp(bfLX0y6t?5VOAoV)i#c%zhTc$6 z)MNG{KpM*mRTfGT$`q{~&LboTuqX1@bs_Ixd!>=i-w@BiupnY}rP^WGN3>|H@m>Lk5E%sxo8VIXE7 zFIotsuGQc-=7X4hnY6A3aoTsa#PgrVXQaz>LMMgJ2%Qu9Sm<*Qv)=$M*4giXm_5Cf zlf5&D^FAD;r#)mW1Ty<_5VNlXG5c1Kx|#%j{RLw71EM_xV)hqAI|Wi#o$woHLCk(Z zT0aFb`?uPs_kX`?R9*fQGFv-k@(L9eDj`%B#O&2UOLX=$5VLOpao(Q?G5dQUZu0+b zjpskJ-+{>NcR|el56IF0b&nb#W>1mUOc1lT6kn)|U@xJ^ zg(eD37n&!u2*m8GK~L)JPl1@-XzOGz4Py2b5VN-hA-dZCbpEB@ z&ih2srh%A!o@gsT>Y^X`@dk+5w@T|y5VJokzLTI3yPOvBg3wi=>q6fP-2pNCpP;2W zyT6^2eJF_Yz7WLhTR_Yn265U?hJeieHi+5Z2kp{HJ_0fOWzoI_G5fco{RY~ud;AGv zc3*p^N*svUi-YK^WE0;1)(|m6sEJSup$I$IUIH=ucjCJ%^gxr||K;lBlt~aOE>vEq z3W(X0K`V6jM?uWK4a9kW6~ycpLCpRmh}rLgxXJ(33D19KkLk>d+W3t;AZ9Nl+QT4b zFDu$3Aa%(bzmW`L_S(`~AH?kK#n)4)zffqj;B=umLW_l#gP45-Xr<1+8^rAX$DHgH zLCjto#O$3x%-$Qs>;plFu0H=834B>684qIiX`+Qd%)UspwIFrL9>1{>#OynzbuWn7 zUliYIp?8Ho1%+7Vx`^Kj{YU67h}n%UcsbVD<3Y?m3dDI|3S#!1AZC9R#O!Z_nEf1x z)BZ^a_=Zk$1;p&vMY{!J_Wy|X7w9$J!`s!#o(IG#1whPR4n$v~P*A9WP1ygn6tTTf zH=*7jW*-V#t+P)6G5aSVX8#q$?76!+*(-sVJrTt0DIjLA3p&H&`9?ry&sL&N*9OGw zT|^rII;C5Of;jJErF9aB*%yg#jnGD+r-hDp!}Fg7Ul8$iq0=B{KMz`?vtI@=`=i~R z>^(rtJ{H7zUkYOObs%Qn3}W`(pmQon$T$FG_G6A{JP%^_lcK!~dPisf0L1KWl10in@r*A%?;+pjSudIkwg%Ux`o(@{8vo{7Y`yLSI{Vfo)Uji}vuOMds3&iYZ zPbYg`kh&t3-zeM@&wpkwE@BxFvsV=@1*9%h^n}L|UtM~>A4HKFyG*>9J zNN}alIuNsO1Fh594}zFIZ!af%4G^<81TlM05VH>iG5c^3=Y2frk`6Kzgy`z;KW2-# z0L1LeMcV}WM0eQ+V)lK~dKkp)C&l-U&<8?Sg}xQ~38XLYV)iK@&ifh=vu_45`%VzE9{_!?gB%4h zd)U!J#w$Q(KkbOdhoD=!%O@aazb36WK+Jwue4hSJk657up|V1ig=%U-e!md}GW(;T zjXHZah}jQA2!_TJ(fCNxH9hR`CR(bfCk^&;*B{i?g{1u^?kX?+gF>~D+jg3xC| zH-+v9-4*&<$TtZ4KW5Jh+^n+~12Ow_5a)d(h}oY3G5b3pX1@Sp_DdjU{|clo=jS*6 z4Py2mMf(NBX@3wBF>Wv~@#i=4f|&gw5X+PRF?*u;GKA_0wG`?i)JtfP&@hmSj?e!l z0JrGuvq8-MHHg`bAx`#(K+K*DV)oh~W^Vvu_H2+(zpZTxV)n;G>j7f+flA~1-!VXS zu|mHw5yb4XRI}FRftY=r_;v{G6?#_aq|j-hb3zwDoc1e2@ciGZv)_Wq>@9{m*@uES z@3TP6z7fRiJ3-98AH?j(LF#IXe&YoYv!4|06o}c+Ia%<$Bzq{6Zy#st6?tr3%#sF?$oxQ+WPi;C4V}KMvx&e*j|kZ$QlM8Rlfq1!DFB zAZ9NLQWt~t8>KsVc>iw^}-XpU=C(SQ`nEgE(;rmSJ3!(3X?g~8+GDq-wntme}h}jE+w(IO= zK=$wd<^VbG+d$0z9EjOJ05SU|5VL;?V)k!AC3NIv!)(%4s_rh#Hq z*WILXI;ai?#&-Z9bve)k<6lA_Nb5ZigOnQWP&3eG-J=6&i>6OS`+9VOBMuqk7{`sV zu7B-4kzZYV@LOysIC+dZ--|Wky0@A&^SZa_|Kuz|fgm}t~x5aS| zv_ki~AlfC+I<0*n+D#BoOz@p({{is~0Cz?E3&g*X_j;VQ$OSsA>*WiHSOmmBv@R}M zIS~JbxUy)8pp&|DK(tH{|D3g+XiY)yYM(k2CF8dT@sAlFvo#ze^a6gWjs3;=IEa4{ zH%hdLApXtRG|}dO_{UibMOy~q-yN+MZ6k<(n)8%sdqDT`9L2VOK*VDpPps0O7wuIL z|Bm8K(awVSHv;dA_A#ii?)$lDUxA8g?Hkc_XAfQ@`Oy3Uk-vHVTZ}PY=l8t1 zLG%>_CF{-)iB<~4UyPO)ts3Z2?W-wTDyXs6YCBrUXb8;KVwNKstwH?hS_jd(f%q%1 z-l7cx@n=oLL>mj@uYo3sHWS2O)65lZF=!-zBeq<`b)fNjWj2Yn12k1@Pm6XK#J9J{ zMSBs%ud!bf?KFsA@4h42hai6K`H2^=k$hOMLgaUUUyJcu&{jS0kD~ns;`c{?istb- z->djRtd|$W?;8qRB)G@+15vPLqQNk?I7J&E`dx>bPKz!@DUbL+sz9ri!+I|q< zV;m9fIS`M%Ujl{raJ>QKvF+PpJO|=2-v!Ywfp{$Rg=jZHJVy9Vv{>wI`RZ6u=poQe zy^k&d;y$`___rJ0Pjkob(RvZ=E2qYVKl{ns)mKJId5i{-6y-Kv20g8{lZvdizj#aK zp{X!7g+12fU%WlMdHmsze(~0QIR0Q{#gch^bTNTIPx0tt%FS73TI5pmxW5t&3$)rjS2etgNqN zzW9B*cQL&Z)|8sQwVngvytRDAV)CdK7TISdr}#<*DV#8 zyQ9dOlY+sD`om{Zd>8ZL#Ax9yjeJK7#vg_Se}Bv9T|4>i`N}AX!zs#bsMoY3TFa}* z8r>B+XqtlQIc!;7@nBZVO()tpRAD z_B91Hj|*?><{MBrehY?^waPcr_gG9&Nn9&Mxs8rkm#4JW#U@;^9;>reYZDY%);O#w zJ7#0xE!N3#zLB2q!-?a4Z{?5Q2B!@2V6N{;knt*P|e ztvrh{2s^gLAlt0qVhr+gc*kO2VnX~*IAxH}xBBXNgG%BcigFuQko+=w<}tpsDYvl= z!_l`(k=1g$uZiamYvp#|3N?4-cKB9#J#Sdg^fQZv-`nM@6&I7H9!0C%9d8k<^~=7v zaH&JS)}Bap^ATTJ>*!}b)0%nASHL=d#20U!I_!HjCR2Kb;mPeOR##6*0jx|5JzZ*> zj4)k%#@FAICrO(gK~qC(>_}g+aJOT=_MR9m>(vOKI_~RL-1ZfPuMvGs&-u3J&y%UA zKNsXbDCfHB%k+i1>Z;8lbL+vEu10UI;VTJy>%k$f(NAj=LEL(#fre-eFZ)KiUhQW< ztfzJYtoJ&I_0E8}HLAy-^}fmnWWjGhL&E33^o0u7t1g=_iv-YCT5Fjg7HI=2r?rkC z*60dKj0-RQ)fZ>x;VB4{Ax&i97w-86c|FI%rSJO&lzMcSUio%t<`_LeT+sm_jxhzq z6`cv<7;`}*!><)J_xRL?F{q@u+~>I%{!bI zP)i-UJXV7%UK7LzCl$mMZvon#DXp85ut^_~W? z-ogAp7F7HEPI2LUwavC3&loFI*KBODPS zG_;k9jm-P`>jm}jB~XjQR{?PzR4@+T7{qyK4&vyoL1}T}ULDLYJ^#xh*0IOTR^c<9 z%tQa%N?}y0=f|8`|LJKa)vKtpsSnPWZ9j+)t$OU3?KFrF?K>c5I}fT77w*%`Y-@VX zgt5~}_BQACTp3OLWFZm6PZrd?*VRL*{X9Qe$P%q3h@UK|Eue0kRdt|Q(wiA)Weqed zmtnuNXyHc*AA-26_yqJPpEYg%5jWVrBn)9zfsM4W3su;>ORrT?fJ+WG|{Z?$+lKaG>coIsb-Az%tUj$+8Y_z z8|mABVX4ReFRlQ`|L?7UJ^p`f1>z&;+^Rpx%qa7X-ga7Hi@2^yy_|iiX)WlowSJP> zFmwahO^ZK(x@-Cs)I-w)P)|)J_Sd~MscS#<)}&6@+(%PMP+v_ILH#s60_v|R1vEfY zUC=;HO+bTU^m~_9z`>?~$#iU-Zoln?@jG?oO-)>IKRN7EyqxtdZy^EA~3&DYcfv_MlU&_Yd} zKu>7u30kCSAZW3s5uhcS)UoB0AbfT*1GrR+^FhlrEd?#tv=+2N(-zQ5O}jy>G#vu1 z)^q~2M$;>xwVF6mww(^&ZA=Bta>mcHKr@P%%wSK*ja$yyg@$P*Ap>ljWT*g-MYkC2dA2~y#wN`e@`{5dPm1u1*e&`E;{F zYawHm-8ataJIyR={XN%=x83T2g?r^RGr`(^+G`e2<9Cok zgX64v^UR`EACE4is*TW+iqKaYJ=RZi%@XnKuS%nTbm>-7dR&}!4yC;lX(?+=k%BCZ zyAh?mx^#Z_SEa`(yR~e-S=Jgf-z*ld-aFtG9W6xQS-EUr3#T9@?ZFMr@jsrJ5F75lz|4rxsMdGJC&rP28^%s~CFVaj$IM#aVc*9~zP{PQxqoDIlWrqD z`@_!tmCrVsS+&i=df^MJ%%h&T8*!KCWxR9qlC@-wIkZ4xqwNb1^}6Lf|Io4DUb;|y zVA#9XTxjVRAf^p{Q#`<|uDKNr+PN3^k0h>RXi@Q)ftzL@C>#WJD?7LTM7E1RuwWM=3L* z^o&x@Kp7gP6vRv01of>#&hR}T&5kndfwDA8`3cH~C?ykL^s2+1oI3NM9F0=WK~cv% zIi80{;1ru49GT@v{UE7BpB&{NlrN){-=L@ipd3$qOzpiWWib>JTUw6iB9sDAN-1nK zC86M}0ktiu+Ym@qqfE!3q(mwAp)`n6nqsSM6{W0z(ltuC1Z7~9QUOmR_30kI)o_L% z328=@DGX&%l;RnSgPtg*C6w(^$~q|OfGH=~H7GAcDb>c|t8}e|oZ-hq`XI{mDin3} zlv5~nJbvC5rL>2l4xw^9o1v%&G)K7!B|b{2H38qeQwiA*{!~a6qfBo>Ns3bP;`6b( zQA!sm&7+hZP&!2^-$UserKC>6v4X9Hu*59{Nge;?to2za^P`l)lW}AkrSyWbB}&-~ zWnYx?A1EiHlsec~zV0Y|L$?5ux|&DM@aLg?7Nr!!r%5-WlmSqRVC6T+HZ)p&ZWyJ^ znXZ4*6yaGjgT0>Bz4Z7y)aP%wQBw3AKCp_5QqJ0MJ>QqXGG{9%Hd>Ff4IQ4X?&G5u z@m!mYFF&Cqh|+P6a)?q5c+Qp@ifO=H?ZG8boYJM{Syz5H%V&H%j|FQLq?Vg$9Ohu*U-)B3Ysr1HWJ0Sau}?-zj%WFk)=T%z@(CZJrAbuFLrbkYs-@>ryl6zVY+q_s zeqeS@xQP~(Nxfy{h(9m0RzJYHtG^LaEni4W{*_jNzmTrXDr<&Xu3Tl^Qp=dtR;Rzw zBV#qws&ArM>+ovp0$RKk)>!raF^6TmvywO^zmR&bmZ>#0# zjn)ITT(!{(c(HtSqcs%EgikkOC2_lpf|w}WifpouDo52#);DU|a+6ikhvn!^RtL3Q zyUALlmbW%puc@VXv-PW5HrQ-cH?bVN+3Ks7vo>4n)iS)Z^LLNt>0#q%!_h9qh|l{YS*i8`K+=2m=Y!K+lG8DLw@VSTrhOo zPJe!vp#Upvw+-sWGkS=EtnjyOP(L<^HWXroraL%9A(x>rE9|lj>Z{S{3JI+6ooz^P z8H%t%^PL=`h|BPhu8?0SE<*`cNZ-vNO1KOqSs`Q_)PYL$I+S9CtF}S?tRvb`niVST;Si-=hBB-$ z&o-2C8OpN4ySAaM%TSILsy)pi%DD{XSz)YgP`@~dUdalqaNagla2YDH!ozzxL`9dO z5-Uu!4V7Gm%B=9JZK&)rRAGe@`#3}um!T>v46qIA2r)WEHCA}THmIM|L>sEJLazNB zqPojagB6C@2KC8*bcIJ);ThZTh|7@33V9E3h(wp6CM$Hd4K-bcTCDJ_ZBXAiM6W{< zE8MpYNiIV&D|9=^bx3v@0<5sZHUwOTAS?W18-gxF3M(`_#39tNdGt!AvcewQpnk>_ zZAfE<+qNOiWk_d*mWMe+y33Hk3TtdbhRcx23jeVUnJz(ZUA=EFdqF1sGD_FLn zj>}M&6|UKax-P?`tnlbF9O6-zp&lzNunqNGhWe~<-8R&B85*!cjiVf*fy>a46&BkD z_3N?dnD_!+y-Iy(8ydL`jai}AF%Hq#WoW_*lWjv2m!T;ud~6$V5co9Z{}`eLD?Dx+TDS}?S>cRrXz4PvVuk!C zID~pX8l9pwD~z-atzCvTtni#|XyY=pWrf1eafr4qLpxUJVH?`H4DDIrMcdHcW$3^P zp65A)`axlIijJ(%$2N3y89K4TUfa;gW$4TbF<}nT*=2Z)6jaba5HF zvcfO6p{vW#jTPFzz;#f+mW+vm!TIcY_$!& zT!!APaML!ZA96;oWFJ;&{1S)g<1+MRg(q!8UzedDD|~Ak`ne4KSt0pl4$*iOmZ0}vqGLXImBd_VG1jBv<*{ShN-M@%r;DQ8K$wqAGTqd%P^f4 zy1d18nC>#nV1;eAVTQ{vlNJ854KrPaS*+0X6o;7QGK5%Rmu(2S46|9`d)qMEWthVX z*{3Y?&u-Ii-!V1;?#UYls3{SGc6Sm<=mtiR@oVN{2T?Sl( zUVUCr^DKv0<}xg2g~_&Ixy!JE6+W>ID_n+^tWf414zbc@Sj7snY{M#-VKpn9u??$T zhBdlE`^xWfh&42f8`y6`KPqdL;_1&j_+qwJvh!IDe&J#FQXa2SGosfz>-$(dIQwkF zI+tO+RW2^3MEgANvG97A!GhxRw6e!N@IqXkoN*i5y_6?<+zr+;Rd%0k*x)j3)MXpk zWg9kWf&)lM`gX5WvXx!v7Y_@7)V`x9vHf(kowm|WD#@HiO`gH(~ zDk16HcDtAIVBClgt+sN0W8SB6tIO~dr|)&!@DvRZ6R{17&oj^-X>hSB9dpJlcb>BH zMCaXZJ(?SFy4!~BF2fF8wwPV^i|3ynoKyByyO;7rm)&XYN7)iT*oK`h!!GNZ8n@jC zEWFEQ*saH%V2@kUdlTPXUah#+?~ksZq|jz6%^*d7{TXY~5Gm7PAe9U4|o8a$Xo} z*@h!7!!vxu+SrC?T!y38R#a#|);1h<8ID2mdGcZveOyia4@uuv+r5-0dd-hpx$?!7 z$avN^9M=Zb=c=tJW|=!K<-rB3XTF%Co@cFz`C=+~PFNe&;yLS8EV?|8UOvy!BC0^- zE$$+|r|Z}(IW09akSr7s3JRqNr3$54>G@-7g#yX=-dPzK46K{8|zT%W}0B7`9h76J^gJepOOc^8786%XODT8FnAek~q zrVN7XS=g(P=?oG`as~+`IfDd}oIwIf&LDv#XN*9SGe#guj}gMW2a=pY0!hvwfg~9u zSq4d#L6T*VWEmt`21%AdlAR!dWEmq_#z@B1E|>}HV5bY%n=)1_AcF*Ckbn#lkU@f? z;es-Dy`T)7B7IY&HAPk?lp;A(C0(j?NtG`0+z6yfk2L8aTYo^d`G9Qc0ol9*vQY=@ zO*w>|vIPfZyA8`by@24r&#$VM2DO)nrDTtGInfNWa<*`fk!I|}J%eo!`_ zplmcj*;InEeFSBz2+Fn)lr11A^B$Dh4q}eE`azl4piE~lfUEsD&CZ+z1JVT-#j;z2 z&XfdYj)Otz5tJS&(nIDwDDxhac@H|%9ts3y-h(plL7DfU%zIGgJt*@Ylz9)zya#38 zgEH?ynfIXV!h(9*^Qrw`5c6KYexO0OhF0w&F_pskip2cVXU)LDO+6WF`VDUG$+T9D zkIA-Hj*n^KN!IKMa1rDpg^N@!(zr|cl~qz%C6!fDStXTKQduRHRZ>|cjaAZEC5=_mSS5{B z(pV*pRnk}`jaAZEC7o5$StXrS(pe=vCH(hMlvY>KIE{kSovbWE^8ecsRV zHfDp*N4vQ=#ko&|606Y0&k3=xrkObm;nimN%8M?j?y>)~hfUfUDZx^8>FYjl0n>CKmk(c+OXGQ49%lpu?BXs2D z{VY#2EB~gLI_lvpVz@m0S%F}k&4_D&=5HrsmM(M4Uw~v zir^H`5IGxZNKOF_k+YG8A#yg-kemVNR6i2Wa$AbBMK delta 35278 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 diff --git a/build/Debug/vc143.pdb b/build/Debug/vc143.pdb index 2142bf3d406960bdd6296563555ae42068caee81..790e13047085437d876aa3f2df0d0de956eae8a4 100644 GIT binary patch delta 129 zcmWl|$qj-)06@_UiZGz!jyt%6f?x%-Hiw_sh8=h@p$1P*Hy#CF^3>xk)IS1)22D&_ zSlCD$T-tQ#;?bkefFUEsOz@d9W6pvlE7k;rY}m46&w(Q+B4W;5NM5O}MRAuptzYX| ODRusPilUV2_We|?-YjbX delta 129 zcmWl|$qj-)06@_UiZGz!jyt%6f?xskHiw_sh8=h@p$1P*Hy#CF^3>xk)IS1)22D&_ zSlCD$T-tQ#;?bkefFUEsOz@d9W6pvlE7k;rY}m46&w(Q+B4W;5NM5O}MRAuptzYX| ODRusPilUV2_We|?nk;7k diff --git a/src/d2tweaks/ui/ui_manager.cpp b/src/d2tweaks/ui/ui_manager.cpp index f4c80b0..4414941 100644 --- a/src/d2tweaks/ui/ui_manager.cpp +++ b/src/d2tweaks/ui/ui_manager.cpp @@ -5,10 +5,8 @@ #include - #include - #include #include @@ -25,7 +23,6 @@ #include - #include #include #include @@ -41,7 +38,6 @@ #include #include - #include #include #include @@ -131,8 +127,6 @@ struct D2InventoryGridInfoStrc WORD pad0x16; //0x16 }; - - LRESULT d2_tweaks::ui::ui_manager::wnd_proc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { static auto& instance = singleton::instance(); @@ -171,7 +165,6 @@ LRESULT d2_tweaks::ui::ui_manager::wnd_proc(HWND hWnd, UINT msg, WPARAM wParam, (*reinterpret_cast(diablo2::d2_client::get_base() + 0x1158F4)) = nullptr; } - if (g_hoverItem != 0) { const auto record = diablo2::d2_common::get_item_record(g_hoverItem->data_record_index); char* normCode = record->string_code; @@ -246,9 +239,8 @@ LRESULT d2_tweaks::ui::ui_manager::wnd_proc(HWND hWnd, UINT msg, WPARAM wParam, strncmp(normCode, "r32", 3) == 0 || strncmp(normCode, "r33", 3) == 0 || strncmp(normCode, "ib2", 3) == 0 - - ) { + ) { char currentPage = diablo2::d2_common::get_item_page(g_hoverItem); // Create the packet @@ -314,7 +306,6 @@ LRESULT d2_tweaks::ui::ui_manager::wnd_proc(HWND hWnd, UINT msg, WPARAM wParam, stat++; - D2PropertyStrc itemProperty = {}; itemProperty.nProperty = 382 - 3; @@ -322,917 +313,206 @@ LRESULT d2_tweaks::ui::ui_manager::wnd_proc(HWND hWnd, UINT msg, WPARAM wParam, itemProperty.nMin = 1; itemProperty.nMax = 1; - //diablo2::d2_common::set_stat(gemBag, diablo2::unit_stats_t::UNIT_STAT_gembag_Amethyst, stat, 0); diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - - - int32_t stat1 = diablo2::d2_common::get_stat(gemBag, diablo2::unit_stats_t::UNIT_STAT_gembag_Amethyst, NULL); MessageBoxA(0, std::to_string(stat1).c_str(), "stat", 0); } - - - // check to see if gembag is actually right //const auto bagrecord = diablo2::d2_common::get_item_record(gemBag->data_record_index); //char* bagcode = bagrecord->string_code; //MessageBoxA(0, bagcode, "bag code", 0); - //if (normCode == "gcv") { // int stat = diablo2::d2_common::get_stat(gemBag, diablo2::unit_stats_t::UNIT_STAT_gembag_Amethyst, NULL); // diablo2::d2_common::set_stat(gemBag, diablo2::unit_stats_t::UNIT_STAT_gembag_Amethyst, stat + 1, 0); // MessageBoxA(0, normCode, "normCode", 0); //} - - - - } } - - switch (msg) { - case WM_LBUTTONDOWN: - { - block = instance.process_left_mouse(false); - break; - } + case WM_LBUTTONDOWN: + { + block = instance.process_left_mouse(false); + break; + } - case WM_LBUTTONUP: - { - block = instance.process_left_mouse(true); - break; - } + case WM_LBUTTONUP: + { + block = instance.process_left_mouse(true); + break; + } - case WM_RBUTTONDOWN: - { - int32_t gemBagGuid = 0; - const auto g_hoverItem = *reinterpret_cast(diablo2::d2_client::get_base() + 0x1158F4); - if (g_hoverItem != nullptr) { - const auto record = diablo2::d2_common::get_item_record(g_hoverItem->data_record_index); - char* normCode = record->string_code; + case WM_RBUTTONDOWN: + { + int32_t gemBagGuid = 0; + const auto g_hoverItem = *reinterpret_cast(diablo2::d2_client::get_base() + 0x1158F4); + if (g_hoverItem != nullptr) { + const auto record = diablo2::d2_common::get_item_record(g_hoverItem->data_record_index); + char* normCode = record->string_code; - const auto player = diablo2::d2_client::get_local_player(); - auto pInventory = player->inventory; + const auto player = diablo2::d2_client::get_local_player(); + auto pInventory = player->inventory; - std::vector items; - diablo2::structures::unit* gemBag{}; + std::vector items; + diablo2::structures::unit* gemBag{}; - // get the gembag item - for (auto item = player->inventory->first_item; item != nullptr; item = item->item_data->pt_next_item) { - const auto record = diablo2::d2_common::get_item_record(item->data_record_index); - if (record->type == 101) { - gemBag = item; - gemBagGuid = gemBag->guid; + // get the gembag item + for (auto item = player->inventory->first_item; item != nullptr; item = item->item_data->pt_next_item) { + const auto record = diablo2::d2_common::get_item_record(item->data_record_index); + if (record->type == 101) { + gemBag = item; + gemBagGuid = gemBag->guid; + } + } + + // Actual ID to use is 378 for Ruby, but actual row number is 381 + // 378 is ruby + // 379 is amathyst + // 380 is diamond + // 381 is emerald + // 382 is saphhire + // 383 is topaz + // 384 is skull + // So remember, it's properties.txt row number - 3 + + // Define the structure D2PropertyStrc + struct GemType { + int chippedCount; + int rowID; + }; + + std::unordered_map gemTypes = { + {"gcv", {1, 382}}, // Chipped Amethyst + {"gcw", {1, 383}}, // Chipped Diamond + {"gcg", {1, 384}}, // Chipped Emerald + {"gcr", {1, 381}}, // Chipped Ruby + {"gcb", {1, 385}}, // Chipped Sapphire + {"skc", {1, 387}}, // Chipped Skull + {"gcy", {1, 386}}, // Chipped Topaz + {"gfv", {3, 382}}, // Flawed Amethyst + {"gfw", {3, 383}}, // Flawed Diamond + {"gfg", {3, 384}}, // Flawed Emerald + {"gfr", {3, 381}}, // Flawed Ruby + {"gfb", {3, 385}}, // Flawed Sapphire + {"skf", {3, 387}}, // Flawed Skull + {"gfy", {3, 386}}, // Flawed Topaz + {"gsv", {9, 382}}, // Amethyst + {"gsw", {9, 383}}, // Diamond + {"gsg", {9, 384}}, // Emerald + {"gsr", {9, 381}}, // Ruby + {"gsb", {9, 385}}, // Sapphire + {"sku", {9, 387}}, // Skull + {"gsy", {9, 386}}, // Topaz + {"gzv", {27, 382}}, // Flawless Amethyst + {"glw", {27, 383}}, // Flawless Diamond + {"glg", {27, 384}}, // Flawless Emerald + {"glr", {27, 381}}, // Flawless Ruby + {"glb", {27, 385}}, // Flawless Sapphire + {"skl", {27, 387}}, // Flawless Skull + {"gly", {27, 386}}, // Flawless Topaz + {"gpv", {81, 382}}, // Perfect Amethyst + {"gpw", {81, 383}}, // Perfect Diamond + {"gpg", {81, 384}}, // Perfect Emerald + {"gpr", {81, 381}}, // Perfect Ruby + {"gpb", {81, 385}}, // Perfect Sapphire + {"skz", {81, 387}}, // Perfect Skull + {"gpy", {81, 386}}, // Perfect Topaz + {"r01", {1, 388}}, // El Rune + {"r02", {3, 388}}, // Eld Rune + {"r03", {9, 388}}, // Tir Rune + {"r04", {27, 388}}, // Nef Rune + {"r05", {81, 388}}, // Eth Rune + {"r06", {243, 388}}, // Ith Rune + {"r07", {1, 389}}, // Tal Rune + {"r08", {3, 389}}, // Ral Rune + {"r09", {9, 389}}, // Ort Rune + {"r10", {27, 389}}, // Thul Rune + {"r11", {81, 389}}, // Amn Rune + {"r12", {243, 389}}, // Sol Rune + {"r13", {1, 390}}, // Shael Rune + {"r14", {3, 390}}, // Dol Rune + {"r15", {9, 390}}, // Hel Rune + {"r16", {27, 390}}, // Io Rune + {"r17", {81, 390}}, // Lum Rune + {"r18", {243, 390}}, // Ko Rune + {"r19", {1, 391}}, // Fal Rune + {"r20", {3, 391}}, // Lem Rune + {"r21", {9, 391}}, // Pul Rune + {"r22", {27, 391}}, // Um Rune + {"r23", {81, 3901}}, // Mal Rune + {"r24", {243, 391}}, // Ist Rune + {"r25", {1, 392}}, // Gul Rune + {"r26", {3, 392}}, // Vex Rune + {"r27", {9, 392}}, // Ohm Rune + {"r28", {27, 392}}, // Lo Rune + {"r29", {81, 392}}, // Sur Rune + {"r30", {243, 392}}, // Ber Rune + {"r31", {1, 393}}, // Jah Rune + {"r32", {2, 393}}, // Cham Rune + {"r33", {4, 393}} // Zod Rune + }; + + auto currentPage = diablo2::d2_common::get_item_page(g_hoverItem); + + if (currentPage == 0 || currentPage == 3 || currentPage == 4) { + + for (const auto& gem : gemTypes) { + // Accessing key and value + const std::string& key = gem.first; + const GemType& value = gem.second; + if (strncmp(normCode, key.c_str(), 3) == 0) { + D2PropertyStrc itemProperty = {}; + itemProperty.nProperty = value.rowID - 3; + itemProperty.nLayer = 0; + itemProperty.nMin = value.chippedCount; + itemProperty.nMax = value.chippedCount; + diablo2::d2_common::add_property(gemBag, &itemProperty, 0); + diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); + + static d2_tweaks::common::item_move_cs packet; + packet.item_guid = g_hoverItem->guid; + packet.bag_guid = gemBagGuid; + packet.updateBag = 1; + packet.prop = itemProperty.nProperty; + packet.val = itemProperty.nMin; + packet.target_page = 99; + diablo2::d2_client::send_to_server(&packet, sizeof packet); } } - - // 378 is ruby - // 379 is amathyst - // 380 is diamond - // 381 is emerald - // 382 is saphhire - // 383 is topaz - // 384 is skull - - // 385 is El Runes - // 386 is Sol Runes - // 387 is Mal Runes - - // properties.txt row number - 3 - - if (strncmp(normCode, "gcv", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 382 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 1; - itemProperty.nMax = 1; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gcw", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 383 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 1; - itemProperty.nMax = 1; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gcg", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 384 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 1; - itemProperty.nMax = 1; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gcr", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 381 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 1; - itemProperty.nMax = 1; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gcb", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 1; - itemProperty.nMax = 1; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "skc", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 1; - itemProperty.nMax = 1; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gcy", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 1; - itemProperty.nMax = 1; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gfv", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 382 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 3; - itemProperty.nMax = 3; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gfw", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 383 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 3; - itemProperty.nMax = 3; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gfg", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 384 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 3; - itemProperty.nMax = 3; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gfr", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 381 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 3; - itemProperty.nMax = 3; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gfb", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 3; - itemProperty.nMax = 3; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "skf", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 3; - itemProperty.nMax = 3; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gfy", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 3; - itemProperty.nMax = 3; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gsv", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 382 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 9; - itemProperty.nMax = 9; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gsw", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 383 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 9; - itemProperty.nMax = 9; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gsg", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 384 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 9; - itemProperty.nMax = 9; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gsr", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 381 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 9; - itemProperty.nMax = 9; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gsb", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 9; - itemProperty.nMax = 9; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "sku", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 9; - itemProperty.nMax = 9; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gsy", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 9; - itemProperty.nMax = 9; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gzv", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 382 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 27; - itemProperty.nMax = 27; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "glw", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 383 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 27; - itemProperty.nMax = 27; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "glg", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 384 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 27; - itemProperty.nMax = 27; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "glr", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 381 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 27; - itemProperty.nMax = 27; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "glb", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 27; - itemProperty.nMax = 27; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "skl", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 27; - itemProperty.nMax = 27; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gly", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 27; - itemProperty.nMax = 27; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gpv", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 382 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 81; - itemProperty.nMax = 81; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gpw", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 383 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 81; - itemProperty.nMax = 81; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gpg", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 384 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 81; - itemProperty.nMax = 81; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gpr", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 381 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 81; - itemProperty.nMax = 81; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gpb", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 81; - itemProperty.nMax = 81; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "skz", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 81; - itemProperty.nMax = 81; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - if (strncmp(normCode, "gpy", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386 - 3; - itemProperty.nLayer = 0; - itemProperty.nMin = 81; - itemProperty.nMax = 81; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - } - - - // Runes - if (strncmp(normCode, "r01", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385; - itemProperty.nLayer = 0; - itemProperty.nMin = 1; - itemProperty.nMax = 1; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r02", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385; - itemProperty.nLayer = 0; - itemProperty.nMin = 3; - itemProperty.nMax = 3; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r03", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385; - itemProperty.nLayer = 0; - itemProperty.nMin = 9; - itemProperty.nMax = 9; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r04", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385; - itemProperty.nLayer = 0; - itemProperty.nMin = 27; - itemProperty.nMax = 27; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r05", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385; - itemProperty.nLayer = 0; - itemProperty.nMin = 81; - itemProperty.nMax = 81; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r06", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385; - itemProperty.nLayer = 0; - itemProperty.nMin = 243; - itemProperty.nMax = 243; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r07", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385; - itemProperty.nLayer = 0; - itemProperty.nMin = 729; - itemProperty.nMax = 729; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r08", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385; - itemProperty.nLayer = 0; - itemProperty.nMin = 2187; - itemProperty.nMax = 2187; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r09", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385; - itemProperty.nLayer = 0; - itemProperty.nMin = 6561; - itemProperty.nMax = 6561; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r10", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385; - itemProperty.nLayer = 0; - itemProperty.nMin = 19683; - itemProperty.nMax = 19683; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r11", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 385; - itemProperty.nLayer = 0; - itemProperty.nMin = 59049; - itemProperty.nMax = 59049; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r12", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386; - itemProperty.nLayer = 0; - itemProperty.nMin = 1; - itemProperty.nMax = 1; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r13", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386; - itemProperty.nLayer = 0; - itemProperty.nMin = 3; - itemProperty.nMax = 3; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r14", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386; - itemProperty.nLayer = 0; - itemProperty.nMin = 9; - itemProperty.nMax = 9; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r15", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386; - itemProperty.nLayer = 0; - itemProperty.nMin = 27; - itemProperty.nMax = 27; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r16", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386; - itemProperty.nLayer = 0; - itemProperty.nMin = 81; - itemProperty.nMax = 81; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r17", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386; - itemProperty.nLayer = 0; - itemProperty.nMin = 243; - itemProperty.nMax = 243; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r18", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386; - itemProperty.nLayer = 0; - itemProperty.nMin = 729; - itemProperty.nMax = 729; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r19", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386; - itemProperty.nLayer = 0; - itemProperty.nMin = 2187; - itemProperty.nMax = 2187; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r20", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386; - itemProperty.nLayer = 0; - itemProperty.nMin = 6561; - itemProperty.nMax = 6561; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r21", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386; - itemProperty.nLayer = 0; - itemProperty.nMin = 19683; - itemProperty.nMax = 19683; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r22", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 386; - itemProperty.nLayer = 0; - itemProperty.nMin = 59049; - itemProperty.nMax = 59049; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r23", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387; - itemProperty.nLayer = 0; - itemProperty.nMin = 1; - itemProperty.nMax = 1; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r24", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387; - itemProperty.nLayer = 0; - itemProperty.nMin = 4; - itemProperty.nMax = 4; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r25", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387; - itemProperty.nLayer = 0; - itemProperty.nMin = 8; - itemProperty.nMax = 8; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r26", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387; - itemProperty.nLayer = 0; - itemProperty.nMin = 16; - itemProperty.nMax = 16; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r27", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387; - itemProperty.nLayer = 0; - itemProperty.nMin = 32; - itemProperty.nMax = 32; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r28", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387; - itemProperty.nLayer = 0; - itemProperty.nMin = 64; - itemProperty.nMax = 64; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r29", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387; - itemProperty.nLayer = 0; - itemProperty.nMin = 128; - itemProperty.nMax = 128; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r30", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387; - itemProperty.nLayer = 0; - itemProperty.nMin = 256; - itemProperty.nMax = 256; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r31", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387; - itemProperty.nLayer = 0; - itemProperty.nMin = 512; - itemProperty.nMax = 512; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r32", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 387; - itemProperty.nLayer = 0; - itemProperty.nMin = 1024; - itemProperty.nMax = 1024; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - diablo2::d2_common::inv_remove_item(pInventory, g_hoverItem); - diablo2::d2_common::inv_update_item(player->inventory, g_hoverItem, false); - } - - if (strncmp(normCode, "r33", 3) == 0) { - D2PropertyStrc itemProperty = {}; - itemProperty.nProperty = 390; - itemProperty.nLayer = 0; - itemProperty.nMin = 4; - itemProperty.nMax = 4; - diablo2::d2_common::add_property(gemBag, &itemProperty, 0); - diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0); - - - static d2_tweaks::common::item_move_cs packet; - packet.item_guid = g_hoverItem->guid; - - - - packet.bag_guid = gemBagGuid; - packet.updateBag = 1; - packet.prop = itemProperty.nProperty; - packet.val = itemProperty.nMin; - packet.target_page = 99; - diablo2::d2_client::send_to_server(&packet, sizeof packet); - - - } - - - } - - block = instance.process_right_mouse(false); - break; } - case WM_RBUTTONUP: - { - block = instance.process_right_mouse(true); - break; - } + block = instance.process_right_mouse(false); + break; + } - case WM_SYSKEYDOWN: - case WM_KEYDOWN: - { - block = instance.process_key_event(wParam, false); - break; - } + case WM_RBUTTONUP: + { + block = instance.process_right_mouse(true); + break; + } - case WM_SYSKEYUP: - case WM_KEYUP: - { - block = instance.process_key_event(wParam, true); - break; - } + case WM_SYSKEYDOWN: + case WM_KEYDOWN: + { + block = instance.process_key_event(wParam, false); + break; + } - default: return g_wnd_proc_original(hWnd, msg, wParam, lParam); + case WM_SYSKEYUP: + case WM_KEYUP: + { + block = instance.process_key_event(wParam, true); + break; + } + + default: return g_wnd_proc_original(hWnd, msg, wParam, lParam); } if (block) @@ -1249,7 +529,8 @@ void d2_tweaks::ui::ui_manager::process_inputs() { process_left_mouse(false); } - } else if (m_was_down_before_left) { + } + else if (m_was_down_before_left) { m_was_down_before_left = false; m_mouse_state_left = false; @@ -1263,7 +544,8 @@ void d2_tweaks::ui::ui_manager::process_inputs() { process_right_mouse(false); } - } else if (m_was_down_before_right) { + } + else if (m_was_down_before_right) { m_was_down_before_right = false; m_mouse_state_right = false; @@ -1308,4 +590,4 @@ bool d2_tweaks::ui::ui_manager::process_key_event(uint32_t key, bool up) { } return block; -} +} \ No newline at end of file