From 0005119afe11c0770ad62acd5f72397190ed5f70 Mon Sep 17 00:00:00 2001 From: AndreFaramir Date: Tue, 26 Jun 2012 02:54:55 -0300 Subject: [PATCH] improving minimap --- modules/game_minimap/compass.png | Bin 0 -> 16462 bytes modules/game_minimap/minimap.lua | 57 ++++++++++++++++++++++++++++-- modules/game_minimap/minimap.otui | 51 +++++++++++++++++++++++++- 3 files changed, 104 insertions(+), 4 deletions(-) create mode 100644 modules/game_minimap/compass.png diff --git a/modules/game_minimap/compass.png b/modules/game_minimap/compass.png new file mode 100644 index 0000000000000000000000000000000000000000..8754c3a0e662849fa4df170643ccbdc2ed9ec335 GIT binary patch literal 16462 zcmXwg2RxVG`~KVBdy@zmq3pdPBP%PBy|eeoRvFo{cM{1K8QBy`Ms{QqviIhHzdzsK zzgN9_ujf4HIp-eNeO>o?t)Z?+fJ=*uKp+SnDm~CbAW*pAA0sv@yURY* z!G=Hn*p?CS9>+yV-yMFhjQoefCT;f#KBV!G*YnVJw)XHgbF)Htdwbutb+UK2FmtiG z>+EKexg|l1KrkX6KDe*rleIbRZK(5PMtWz!&^M9qU?$2mFDhb!Lhy)MWis*V{f2Wj zM@>zOD*4&z!n&0H|^1IVS z=6kn7vqbw5S|?jryr=PPOw?4gwEyrJqqhTz6NzxRUf7P^ym>PRA$z)o{onU# zlxmtuG)kr?R|U4s=zh`+lNMCPPS|GkfxRooxLGuQg> z-C4wJ_|E@-*FzQD8zG(ekpMj(##7DU{X4Lveyg3GR1ZC|3p0gCUQ_$|8V)Z=19KhT*hzj0jO>u%AB&H^qf#;#kB;kqpK#^m>)nguI&OUL_*9R7#oW1v+JW(i)k6 z>_`>10xU+_98sI?i-AP(P;_SG57SoNh^e`n@J4RP5!)fB#q(>K5pjZGj9Vr4Wrkbd zpT>?t{VgAEih$eT{6ocK4E272!cvJH@LRT;hbh!s)*1Qcn@n{D^B%E4o-nE2s}_NV z8|awZ*aySi*N^u~)`0fwLjjN~QViK|CBTS%whAjqVn9 zVr+7vo4CQMj*JJeDudxd`JARM=e~Opgn9fhxRd~QJ?Clg2Bz9-2s&jRkt3Q4!jzJZ z{+22la*Rn#_&`u!4a9!@$37CG$Thd>O(47K6MB*q$97&NpceKi;+&W(j=$Il9f zSAsC7T8{u08!mV;2BS<4)ddzjxcTc=jRFioNp=Ve@HzYxKRb$t1n%g_E7%O)Tb!IJcr2Z{0f1c>-vd&0PPydjdocuB>3eU>Q3IkF3=~KsgMQi!5(;A%8q9S&O-=C~b z2GG#Zh@-yk&CD3@YD8E)(a|yd;=a=Fno-zTb3H|ph=apLW@%$1d|OH?Fsh^7QZ+u^qwYwT*A%BjLCHsYgvhvRnG{Wv7FIfq^p&$sZ!KPv^0_yQ^30kgm{e zN2ZsOlH#)%BW&vESmtU%j*Id1=~K+F=C1NEk6)iYeKPv??c2DZ6pC4mlBt>&xjc@! zxjEmvckgoCU0jro4-Py&RaN~u_3ur+r|95N`rn9%N~>PV2l8uDYt1DkQBLqN@#_bQ zD$2@NkDosERa{9V!Hhv4W0BQN($~=$i7YBA;*O1tjq(o&2!+W+XPx)3<-UrGi-W=F z^rEQlb^U2@_uQOh-`w2vaCdjNm6Pk7femuL!^z1>Ey`;~3^PN85jvKZmS#`S&YTFa zv3K}{g>4QlP(u*TO}m&}TwDTT##3#PQBj?fpY1(2XX>9C7+8J&{MklXS$U@Q`Tk#y zE;>e$?u{ox?HoZt*F_T(6VeXTUp!-A9^3|-BI4rqH*~)|v$wZcZj#L#lw~KsOMr)G zus2~5Hx2VR_w({PiYpaRaCw2ALJ}Dn`IMTT{_<}a0o`A`P}!q5mJzUXB`eO3j-j%7 z!9v0)HD>nqoDtE{SvN^ZKP`UzkaK3Brq-wU;Zg2YMBy5WE-j0m9BOX_3kypr4gtY* zt=Hxx%t5?AN6W?A+ve~BHvO4{!>iO(s*+7TJv~MimalB=?5oXh-@X;*Vhw5*rT>Pfbltvet8btVH{R`t5ZO8g{pb&rF$^m^zTFBIoPt`>w2v zd)r=q%}umOWj8C1WK0iy^~Fc+53G%ijkEfn?MCZX26C@G6%`fl&0aDE-bd{XF4e1A zxaKzca_|_e-`d)bFL?7T`Hdb|*aM~zsp{SIg@6C-=KuXWE6vQD+5-c!adUH1-FGQFE~y&1La0L|D1Fs8$jIQciu_%wUwzZ>Vz;~Z z&6_urJJSr>il|X+ur`E5(ic0A9zJ}S``piOKZySQ3mL}X%uG6)O&VEx6^am<;L1v# zSy`yLK|VL%7ZjA~HF|B zD3jl&KT0+aa6mMTfzwQr{#Wl@RRS6_SBK>v$w6>SQHNDC3>QC9?2EmK*jxGRxW9h= z8vgq;-Camj^!csXOI|^iN)d3{-{3)UUEjVn&#$f)c^P@gwLNY(dUzTU%e!-Qk&6o-V(aSm zc6b&3Q}#$%cnE(Lm0lHqUTg5E)BeY{e0&+stQMb4+h1HKf|=BDXctmncxQs2XJ^x2 zTwE}c+@5D3!O=r#j6 z-@bUR^Y|TY%#TM!MrvqlzYGh*92pz?_n6IMO5>T)dv-e^wPC)NbN=-BHuJ%z=leHR zl$1_>_Vn~Hwq|Z@ZqBc)VBNcS?`wBA-9|(~ef>$uI0SoQGBPv-#OSs%gE|deUCfUo zJXpM78aQ;qPED$sI=E`XZZM`kjH%@7d)D>p)vJo^>}-O&r4EjcB($^;-`QvEv?tl` z-OJtCZ*OnMCL|2gb@X3V`>}{`O~| zYskuW5P~VcJU!N7Cx_jUwX|dbpApGMFW$B$Ehs3UrC-_Dh>niN2e&l*;(-I(h3VM< z=!+PFl>Oz|VK>5ZXF9hhctfS=1336dQc}{ee>tvL3Ty&Im-w6b(s4vXG`|TcaYcmX=U{Y@bTNm$Eix5RCHws+T;I?&6RRC23peN8Mamvp4g-)gW! zZjTAYqgr^)mLsF2gq=HWmh`2gk+rn6bZ1bGX#TfNt~`8vc78e?I0)7N*>d9?ijnjt zudfli*ZJMpWe`NmASHhGpG}U8j{f>1nbQn%h`sa#SVY%EgQ1~erR^{)M8$=XkJ`_i zoc?a|{p#)QEv~CO-l(x1Ms=S4GTN@f7EMiKW@`(%MFkfA>gS3z4)~E?wKai|!vqgU zC$6bbWfCm$&WQG-TX*i@^3eqCi^|E$W`P-&Ymk2na_##b-!>$xr*E%ud&^nng<`q@HAWtn=w7xNU`3PT zaB+YA_APto_}F_c-%&+H1>VgkDBcVKEXQCpNKKY%p!Ja)e9G#raPjTix96+6Z@x@S zBzu-&U6#F@mYxpNv+I3sRL#X5eoad3kvz^$iWXdvb%+32j3%4h{~M@LY8M5`HVo z%b{wSLIl!^Hp*%B+C{PH=`=!4e?Ya`($0yxa-)rZ~3Sx8avubIVmZ@$vD$OLWW52v!K_ZjtKQl^Qne)6eU>g|Z8KwRZ?nO_!cEf#BE|?qQbzC ztEx^XD9cjWbzd`yQ9!_>0-4)P8U)ms85t3fCa^2&{t!GgHom#y*wx)_u{KnYHC_X0 z7M#rTB4bz~1|O%?^=Gd1^}YG|`7FtGrqo^%a`IQ)2DQ{b_t?XNd&S0-s;a8KfB!yr zfE6ASLm(k3d3{e_bLqpVh?40?QzX)6VOe@&h^YuBU+Xk2_V2@4j-=n<%uK&NLt4ku z2;SW-@;mfW{?vzuhn+z=qVB9i!^5IR>4G96K0mTWIDIJzSnYsIx{nqFO`~=75!1W z!LKX(9lOu-=Z@;i$_rjp2F&+S?W1>gcHXwNwS_m>-Gdd`Um1APz@lnu%2?|>8w(j6 z>GeMQeZn!;oZf}tZ?Y_;Rc>3E!p;k@$|8XmB3GB&L5t1DGuqGp>@D|_+_>>mnL%gw z__z)mA77#krv3_jj2Z^I=pPWN9f zXi=@lc(~4;Z|VFt)RH#$@1xu`Zi<+jGliOE(K+axj*|PSz}9{`0Bz1E<$&6W@-NdO zK73f&0AK6V4SH{TD@3qk<9GEiz{|fbzfxovWgvZ7_h>yly#7O%lk!4jZndqSEQN-5l;c8$jjOaHFF6X!6yz zr;AG)c%q13>~LqN+}zyU4gp&X4GF0pGddPl(7&anuVy4H;OU!AM_U-)!qo!_(^|LL#E>X1`;dFiM{K-Ojq%z^IWC9f_-x#rnWY zvBc@WkDosm#l*xE5c4uMMLel6mRDCNTv%M>1yG?mOe*9&6TRJX?&O2gNu6W9Hw51=0q~9@0C?}+FcTU=X@F}Ne}yNd-5so~Lf^kY}i}Ts*u6OcLm1dooS>oR6fEn9; z2FQ;N59h(x>s=Qyt@|=U0XAUekOK+z+FUSRf^%Uey^6Bx3{9MF6F{P z7sCzZ0<9Y&E(k~$osjEY{*7>CPpu43bToq3E%&Cnu8(oU5-{@eYFbsbHa5~hFz#3z z{-D^rwY2npc-8JbU?0dLYo3H^07tYTJeyR_#FOxxwmq%3?wf6DZq{$zBqJscURttj z9^iLN!gxmcv~7-k@p}TZUW421v2vp*JgU2^(^Pk3@Jlx~9LOmsZV3uf;Naja&LlfH zIU(1_1tKw))Q5pp<(?lua6f+hSV}d=5&0rJdpZ)F(c5iH20<$7)M#<47Upjs`5rfbdl?TgmgWTNQF0QVcjhr5jA5)}o8-#(QN$!ZU zDm+o<<>iIK*mB8`Z1>=xhU?CqGwyW)8j(c8(u0G8Z(CbirL$W&L_{_oDIS1u(AKm4 z{QQv5V#oIG4h1D8-&k(d#0iRqzW(dNLe`|zRAwe7^9~Du#FciVcmCA7$}O)5J501a z`_5(DL=8n~boL_(0DyW=pI%{=#89Io5^@0pQ1`oK7`bb}a3~CXv`fN3NJ&Z2hNo1O z)!j}|68I9`*WcgONhBTp?j2KduD6@pkljo&D`a&NO3JQP(Z^MvKOfG5VV}$Mqgj6n zk=INLEhw-eo!WdA8d|kC3`M%u@`e{A#Tybn#K6>~?Ob+I>II+Sy#Jt{-C+?YDKzgS z4iH;MTy|JqSsAxbHNE5Hx#Hf@5#{&gz1FJ9h!FnYZOSStemw&NaiivqQBl1+`2wnR ze%&tbAuAz=9sUs4%9+lKIrboK6=`Av68rdf?%e5;4C|R3)zdCiH48|R*CdBY^XoZ& zZA*7Beg6EpWdD(H83b^&bxvN}CQXPG0)6c-v5+N9a_)*nFJC|mmELT?F}?BgWr~rJ z5!I8c7&>7liLBbD2tgMz#|F{ptv^I6K*t`k(>@qL=qpK@ybOjT(U4K@^ zrRiyk7NCuz?b!;xnrPQo1$I=~kEAcjkz5TeEiJ2mMRhg5eSS%TW2I|@=$pDaVKH&> z>wY_C%%3c1y+3~ZlZVuy+iDTu?=QmfRY6`}tzJv+*)w(+@LI;_6OEpO8kz00XEHF6 zo!mOeoDk{^@-eP%2A-JdDn3yLkXssS9RAmm+qw(|4W_s}H&+?jm**E0ByH3Cub9pX zGwT@Gj0q0&ZV@-8cRqYi)eSOvfvUwWYI3NFk_2A}0 z_6X9Y5N0mNThlmkV7T1?H^QEb3Utv@@|-XpR0JM! z`k%~)uWoIPtx6)1mZjSV(y3k!Fl(p`n|t7?e=MPL0za5iQnLOMuZaKIyW4TUd4AD% zCIHS1my25OGfRJyni_tu^@3FEqfY)J{f!$tM^nz#e@cEqG{*JzK01o0{$h~U^%M>B zr%0>a;oSQA`6uKWuXww-$N;>sUtxHpqeEU?QZm0Sy_<}zvRcl!#Qm=?k8d1C>jTe{ zChUAuOiZjxvaqg>3TO@B6uN->7?tYk#Dv`d09ox72rN$j(N6&uRw|@PDhq8{24t`u0q_&rkOkAcPXMgMJGKV!H#w7?Upb!=oW+%rT zbCQATW~$7vVMv;vzd9os6F;d3BLy4@k-1{CuVpGBpqBskEduI#C@&Qud;R$F1IEXB z{eW-l9Eq0$&X3H1#=CK(D-5u(-e;GIE$T1tEh(v+VCuljmS)X%cA^2)b4K+^M-KlG zV+^A38&otj{mkjDxjDq6M~`aNi4Z^=bpNil(KIxS23B;Q$a6ows~VEV#^h%_ByP0` zu=LeQNK1p#y5fTzE_H&I> zstwma-)Aj1Y7G1Ii4USxeoYO;Ukb9=43Dbk`_@p@N}R3cN9UyCRND-64M<;0G=;q4 zHLKReO|z!&eUIAP-hL~k?{kI6beaqo>M04goS&1ZX@I4?w`=_A&?0^zQ^(; z?wTiyLKV=g>%v!@{@PLVrw$HWzyyiT6QBm90sjRFcgFVm>hd33z8Wda71-EPwfH=C z<;`MzfLo!Vq2K%Z=v$Js$Fh9={C@w-=*kH^vqetv_>a54HwGB5thIIFuYM{t%gD9*)CXN(4I^f33Q*82`H+$Dbbmm4V6wJZU0od;=hW)e%-C2MAl>};?=3~r zUeFSvytkHGef=07}#4WXCK&n^TB16YpIA>C=v}F)vDc0&2#^>&U@D zs4*$)8yoqrjtl-H#(}SpdHi_Ph3B!3&NB(JsllebADplTS(5#HLvlotuP)DzA4OK8 zVzQAudHgu9p&>n)L8rF1HZMANBv>uB0+#?FeZjil^Iua_QU9Z8^2*8x%F4=s0+zF} z`EWlj!(%sd_5u^=eV@z2@y~%3<(?hLdJ{~T$YI#(Csepl?1hAcphP@i5)c%Gn>;^x z65#w6=-SGcxO8cWz?_n@osBjf*;6|0j|E-@@}Eo3rKLFx}wpy z_bBL$Y;h&<=(o-8=}K<(5q1z)=di2zP`TIjg1HT`o9ekji+neb?Aw% zuSCCWX5-$`{J-7=&@gx&YjU!k_;*nf0FBq73qh1 zYxnP_%5hQF)qnYtgK!~}nIBXnYn8MJ*TkZf*R)0yqA0a#@StGRoSAy!&}bh{&0bMX z)j8+xP^+P?k3KQ^CVjO_M5?=C+i`Ec0RK}X;_P%IsU@1VQYShiiJ=AY{fT6_anPmb z#pU+mJF@oG&Wh+Yw#(mc&!0mSQ* z+i9|JJB4lO>wW3nwGX+mzG{z6o3F3VeGW&TG;Gke#|lNaWO1Rp&>^Z-BBEdJw!LHj zfzvvYk(MpBr3{oDk zG+D$1@96yw5sAYQ?UR2c6^z8#VQ4Ch#B;s(TE7lIlJ4_9#ty7mOx@86(r?UQH zuVjyO`#M*|LHaW9Jw7|19iJJL0oK;mJpBA<@|sAtN9y{*U8z6|YT3LE+>c{=hB^m^hT4Fm1SyS zffo5Lto3>K`Qy{`grJ<&`dumMnH8OYoOkRH&`KmK_S}p6ZOqJ2fZ_qai#}^ED7ekV z%^f}~{AqgJB#0g;BNtE4Z)A@o+8MU8&JYNOR%9>0aS*?mgc!=7j#b7+4AYS}Y%fku zPRgJHEwRlw`nSF94OH=8cqTM*`Cq6ZGWRvfL3{7``BU}2=EzPiN94Qk79|S!!pz!Q zfiuY2$*EjIf%ib|tprwBY-fb~{pVXGj_lXb3Aqg0pGjs*alxY}fBuXX5*GddZej~* z^z7>Lyc%YjuMn81PX2&d8fz|OHqO5f&^Lrs7dN+sji9l3Pj7E#VPPuJTyXkxr7L!c zPzsH0_Wy)U{EaZNlA8_3T|S=wZUQXhO&`av$14*SynpqgMe6qa0+%Y72Y8P>qeTb4 zOG)ocrpnbqN_RpryVZqHytg0tk>kj zOL$WP`=d_e>HZ2c8(a8xIZ4<<)VHLq=-M=xAC#7c1j^j(ojpqgYfweR5ArO-+P{oV z{Gu*7za$CU1P(#(vmFH_o^auq%G%m47#FzPSYQWo{FHW-P~P6mS5&h?e6r0Lv(vv} zl#-fYvGe@BIl@n&X)B`r#pQS6OiVsrk0EitBd(jit9kQ>846o&78VvSA!Xm<<|e?v z!0`7>m{X?;#=Rg_wxZ^GKl|3!S7tVmzu~4XR^NYw1fAy7&@x7IiUxfg8Tm5BJxFwq9Ow80UB=96Tpf99S+c zU)Q}5=HS)|2963#K0Y(HWM_&6eu0PFw zshf96CllvWnd;p}Jh0jxXA}~css`u=(`DAT_8^xQW$XZq3GoBr<| zhqkFpS#d&sp&z1rP+WE+`F#f>{27Cce#wqW7srZ)f6Oo>(4bc7wz5M ziXV=nzL`gSThOdqfLd_=?_W$@0T~RrMZoRQ7)2_vCZ>-7z5RV&?=8dZ4%|V&{Na%z7+kq=b0kQ1pT=q*FmYIKE@6JRM70Ng7Yz#58tRuSe|gG*Oa#adx|a3g zK~@96d8lg8KI$z0yGi@Y+ky;)=cSbuB#ZaVjxURT9C(wsxB(aTP`HnT#0^l{LqNa& zaqQvc^=XU&icO#v9mZ&RWLU}c5R8dE#cf)q>6w}NpFRy0p_Not5`&`P8%m*_lt%$1 z?ccxF{Zrl^9uHhxc8WB${rx2h)iN>p`TKIn6O~w?Y_TbegQfNe47`&1Z%_)o=H_N$ zl&{sEfkLe!zrD_n9D&B~W$aMy>Fu@md4HSqwVrKfM+YiwBsKv7Jz>%J?@I3r3;#)e zTkeXXtE{XvE&4$854thpl~_v4qD>=I?^J#@-*x?{bCy&*ik`+u`g(9`N_7Jq1I zk;?zV1zkHb=H~AvZO{lp;EqnSEip9w*3lVzb6Z=nATj~b$_$nPT>)w0-giOU_1V~* zyDc=_SR4nYhEb(=fd(ZBdm=6uVs(9;6SXq9Z2!p<{uc2%h4)$&`yp39WmjF^YGSs|!g|6E#okJvbf^crVtW}VP z-wf}L891*QkuAK;&1Jahx51kw;))72x~88$bfSPtV&*)sIfiOpMU95GAsNn<*n{so zeW$iktC!ajSd3Y4;L4-q_gOP-w;_RNi+kJM&;??-vaT*XGjq2rgq&#da|QW#r_`&?I-Yx5Ze&B`t0v*VP|XxKf5eE-0>2dE*ZeG} zoQjbM3me-a^fEYj6SU1;V@+|Y*8tH(K}A(9Y|;^&ZfW{hS2u8CY^=+U4#v!HX_(mi zrO5D+-l(9kkT9-P0fbP?YWq@Z1Ji-NzHcBBjD}G@$uEV>RVl>}MD00W2>~@vB7P|- znhPLv>$Vodob_f!bnYZCoNu@0?xX>sun2_sov41;P@59_QcXd33BYqSG&E$GNWWOm zN0LvIlTUS5j9-5<7Z4K4SXyQ@eHVg(FfuZ-`JKha3w70ic>3_P16E*D+_X)^`F5fC6E=q6XdY6#QbptfZPa#%L zPFISxsrNpXl*lOZQm`~87rElUjuWlabDPSBeceRV+Z?2(+5^a|{+zP`RlGF(;YWL&7W!%s#gSYfJq zy51EHw0K=nhS)VtUC2o5bR9ziF_4F{ONGqQRmCb{OS$yv@ENZl>yN2KwWk4>#xlAfLI{m2+ z0TzXshlhB$Pz{Yo&qugWECrHe%k`BXlK$n?E!Chi1QrMSgt&obQE2WTVP6OJ&D2kw z0RiN?rH!>U?ey55D*tJlnCHKd(XlbzF&l!}MsFg}zni3Nhv878b5c z-$|fSjTKYR(_jSOgfSF6JOs3~wMWZ8iCT2wmz`TYgI1L&Nx!4HmE0gCDQae8bKJ%& zFE8%{#BMl)m9nbp1LGVgQJ1YhqUv5BLBoIskjv=9uxNCgQqYSf8DRA*XVfh$m;r7S zA9C+N8<>la2Qt5Rh7)x{UOw3ejhu}Q>-X>9X}lJgaQnQq$-^#PpIp#RaRV=Q6`>p< zjFUQBMRWg!Ok6<9zbh)j4tB~f1tdt06h>BF0}plh?d#X3?uQl%!5|XCoG%JmT5=NU zmF(>7T!0shiDMA`k^!nWA-xzn$PIMp3FWc8bRmn7F zaA;`H%!J`w*xZs2!h2O0nR0S|3FOi$(&%djx(%gI{x4dcxp+UrD4j~~S;c~iXg@kHgvuT3%DP44a>Xx4{ zQ?!5?Z@Ji00U2-(NlQY{0z|1Q&vjjFbkrCHeP{%(56aEV{tPO`{ow;Fr22pQ5uZ7s zjW!=-AVIa187o;^TMqCQ)~2SDolYV%&@Cb9y#sIx{s^mztg&daOP@LL&v-(++KU0H zbNq&e2A}2RC(xP@tH=;QzP!9l7W)YzxrU+P&ogpNaF4=RXczDnvHckl-$u*K$!V_$ zndR%wvk z7w4^Pk?OlYaG7`F%8H9+Aqmv8Qz2feIB1g}o;yy}_K4aJ!hN*zfOK>Z2$1xPvWgiT zAIGZFi-t}jEU9DQ*5)_sX1m79450oPu#;xB05gG(2Om%oT+a?{p_l4BL>?i}MADxl z+1umbRRCC~tD^PlEJ(!uzp>{bR$>5FvzajTcYdFeLRs_q^ZZ1WMZR&+T0v^1bsw$z z8AA0+Z0y0GKYw<*KatmQr_&%HZ?TR!1k3^Fp9k~ysHSB%N7ugu4&c(>omC` z=22AF&~R#Wx6ZYqs0gyq*!nJgK$`NrQ8oZ?KowcT2^0vO$Bz#&Ffs2g*Jv`!q1vMY zFxu9A@}y*TC+M*peK>ml;x`{ex23S#1+hKCFbx;=Sfn{JTxfeY; zIf)x8yL&EueLBF@PbUohJOV7_xKscIT(5}ls0|kt7bBn06-tY-DgJ^E5cE5N&vLyy z^Hg8a=lCTM1JXj~tp9!=R+g~SdnHrbRlo*ztDBnvA#wK{Oe@Ph!4tD2{ZdA~R10>X z+xx|Iqc`XSuM*`?bU3)VH$7Zk(>qlb6=1TJdBp0RO1J<{*wNE z`goEQLfC~-?gXX3v#mk7(~kM0@yZ4D?kj}qSt21&gYtRJ^yv6hfHloD`?98%g7XB(NkiNwx%;@r>8GTQwK6)R$%SxJ=ZBA(RF^8c-N!hv%S9F ziQFIv_=?~%%rlkwpMStDU?Tv!-cs4H`xU8AWjXAd&mu!eV!Nt<>t*BQUL*h zHmDCl{KLk@9Xh#$_IIwMSW&4^0!3N1&2QH+yf-IG=9y zTFNTu;ZMPQkt$SfOl)k9O+=oRnOO)lWkX?;54^#6g-JM+wST6kNvNoVZx}-sgf5{u z&jY5!9%Q5dxCd)2%ari8xjDP;>REAKUI^vu2iM`RDE5_1t4u)}+#fG9@OGN4v0aiBs(RF+r59M<-JV4xJ_Pf(E%K!u`XV!9doKvhIfSP1(DtvT*rnqpg^I$aVJ6ufss z%KyZ~|JaI;DdgK5G%UiO2GFOH2W|Z2wbj*&jpBA-6G|*^=0D<-%jZ>BCk{(N*Q{Zq zS0B5AW-%Do0XT4(r0>D1Ys)#Ge!}Z~E-{bQ!3@yYkEbRlqsujvh6S>+vpsz)%89JU z$Hr(K^^#Lly&*_{ORO}f!r@Ax7j;`Ygf8M0Xg0vNz|5xv`t5D+s>ZlVJ@{t!OgCFb zq3cS2_9RHXZy}FXwwk8DW)Arl^7H49;6k*NPFZXfhOUVT1N2yF zL*pa02Oy$P&(X1zOkJ0t9hM3p=sUm*nbEd)aGrz|Xt0Y+qiL7`Eg6Y)u}bKCsfY59 zZhG~%Ucx)^a3Cn{VJ$BTwAMm_Y_YUp?{cTm19dRIN5mxLDI18@m(b+wd_&x8qxEzv z>f^1DZ&iQ=0uj}^<%Xxw!*DHqdU8U&)r5tBez2?>3;fiV5F-G>kAkfjrR3%YrEXuP zF}Xebo(K=LDGWM!1N1c%+=}A@-P`j{lYP_xg^b`W$|wrpRn8$OQ9S5~lxC^)@qn`e zLjYVbXQ4I9K0)ch{xrkm`a4Z@d)OtgRv(~gyy_(uk(BCi&HXFsbZF_vM54Jzvn>IB z5B2raCy4R({yTQU^PME+0aJTlrf~J69Er8;^z@#M&V*O$N(8+!7YD34KLV4!z9d+2zc*}?ol$Bxd%=3XP(S08S13GCsO43E95UXHNF|^Q4&pui8)&hy^ zPfkw0WNl{FZV;3d>Rme~FZ`;vJvNpQ+=3F^*+~St?Qmul5FP5yl@sY)zGfVChxT)D&5AF{lI2jRFFGcwcM zMQ}p%%MCcQcBRNpUQURQUn9uBSSU20JKy~IGX>POrCA2az&g~_){Y4Z3%B}hOz?h6 z|Cn$q#L5zuPYmIZ$NqzhnR#&=Zu#i!^t7R}*&^=42R6=?<>J7{5L|$mon3=Ikxs~s zMD9cE?INUl3Xz4jqQT>crj&$)-AHH|po1De&|x#~yY75;-&ry=?m-3XY-6*6ldgKS z0C^{7Wz9|&s;tB|U=prz=5m4Ve0Y3(eBE4Dw&?)P64aR+Uk~0F3N$O( z>jx%Q*48cE&(P2-;B*&L>Rlr-qB#i!vh&vrx`<7FPfW1*`1u*|SJg@khk6&{Zb2tV zON%jx=T9K-1q}WEeR@0_cwV;aXrNXkk81x$3|a?`5q=zzq|o;rTu z=&#Wlt5VGza@6-OyTMKmk-mOkoS)C!3)?mTSCQ~e-tU-;Z_8MEmZ6I{xzV-)syKL4 z8Jv`wdS+vj3JvdDQ2g8GtralCWE^p~AgIIX5Nc}bRmd=$c8-pchMJnY1C8F>wEZ~; z=<7G658msfd28sze~+1M(89i1_Up`dGhYZHzn2^!B!K_L(Lcy-f?m6^5JkzX?&@M4 z>FDU_26+-PlPxznE(hzn9zGXj3qiV~5#Dgo^TXd3&UA)=830DlUNk zd6w-Xp3;cG@n%_jI3ZewKbo1QckfPIh&wTB7<`QvfEI(Z6sx!)&hnJB^Cy}LEd22GC4VRE152I4EHzmUPSL8LxiG^3l)5yj(|2+iqSEet% zh*74`tN(W_`jxq0?mdjb9(l!x9=NI<-SfW@{`Z}GT0L?GrsyyOXWIW}5RE(@Zq?Kw zjvN3MwLNJUcl-U^|9?H^!mjdz zGgR&Gt3n=Q!tAO4cl5hMyx|55wfuj_z&pg@x0<-$TRz-@b?q-}J?Rv;T;P^6C%DWldlFKQtJ<6aWAK literal 0 HcmV?d00001 diff --git a/modules/game_minimap/minimap.lua b/modules/game_minimap/minimap.lua index 63b4dad0..2c7964d7 100644 --- a/modules/game_minimap/minimap.lua +++ b/modules/game_minimap/minimap.lua @@ -22,7 +22,6 @@ function onMinimapMouseRelease(self, mousePosition, mouseButton) return false end - function onMinimapMouseWheel(self, mousePos, direction) if direction == MouseWheelUp then self:zoomIn() @@ -48,8 +47,8 @@ function Minimap.init() minimapWidget:setMultifloor(false) minimapWidget:setKeepAspectRatio(false) minimapWidget.onMouseRelease = onMinimapMouseRelease - minimapWidget.onMouseWheel = onMinimapMouseWheel - + minimapWidget.onMouseWheel = onMinimapMouseWheel + Minimap.reset() -- load only the first time (avoid load/save between reloads) @@ -103,3 +102,55 @@ function Minimap.reset() minimapWidget:setZoom(DEFAULT_ZOOM) end +function Minimap.isClickInRange(position, fromPosition, toPosition) + return (position.x >= fromPosition.x and position.y >= fromPosition.y and position.x <= toPosition.x and position.y <= toPosition.y) +end +-- hooked functions +local compassZones = {} +compassZones.west = {x = 0, y = 30, posx = -1, posy = 0} +compassZones.north = {x = 30, y = 0, posx = 0, posy = -1} +compassZones.south = {x = 30, y = 57, posx = 0, posy = 1} +compassZones.east = {x = 57, y = 30, posx = 1, posy = 0} +compassZones.center = {x = 30, y = 30, posx = 0, posy = 0, center = true} +function Minimap.compassClick(self, mousePos) + local compassPos = self:getRect() + local pos = {x = mousePos.x-compassPos.x, y = mousePos.y-compassPos.y} + local move = {x = 0, y = 0} + local center = false + for i,v in pairs(compassZones) do + local lowPos = {x = v.x-15, y = v.y-15} + local highPos = {x = v.x+15, y = v.y+15} + if Minimap.isClickInRange(pos, lowPos, highPos) then + move.x = move.x + v.posx * minimapWidget:getZoom()/10 + move.y = move.y + v.posy * minimapWidget:getZoom()/10 + if v.center then center = true end + break + end + end + + if center then + local player = g_game.getLocalPlayer() + if not player then return end + minimapWidget:followCreature(player) + else + local cameraPos = minimapWidget:getCameraPosition() + local pos = {x = cameraPos.x + move.x, y = cameraPos.y + move.y, z = cameraPos.z} + minimapWidget:setCameraPosition(pos) + end +end + +function Minimap.onButtonClick(id) + if id == "zoomIn" then + minimapWidget:setZoom(math.max(minimapWidget:getMaxZoomIn(), minimapWidget:getZoom()-15)) + elseif id == "zoomOut" then + minimapWidget:setZoom(math.min(minimapWidget:getMaxZoomOut(), minimapWidget:getZoom()+15)) + elseif id == "levelUp" then + local pos = minimapWidget:getCameraPosition() + pos.z = pos.z - 1 + minimapWidget:setCameraPosition(pos) + elseif id == "levelDown" then + local pos = minimapWidget:getCameraPosition() + pos.z = pos.z + 1 + minimapWidget:setCameraPosition(pos) + end +end \ No newline at end of file diff --git a/modules/game_minimap/minimap.otui b/modules/game_minimap/minimap.otui index 4260a11c..fea6e717 100644 --- a/modules/game_minimap/minimap.otui +++ b/modules/game_minimap/minimap.otui @@ -10,4 +10,53 @@ MiniWindow padding: 3 UIMap id: minimap - anchors.fill: parent + anchors.left: parent.left + anchors.top: parent.top + size: 110 110 + + UIButton + id: compass + image-source: /game_minimap/compass.png + anchors.left: minimap.right + anchors.top: minimap.top + size: 60 60 + margin-left: 5 + @onClick: function(...) Minimap.compassClick(...) end + + Button + id: zoomOut + text: - + size: 20 20 + anchors.left: minimap.right + anchors.top: compass.bottom + margin-top: 5 + margin-left: 15 + @onClick: Minimap.onButtonClick(self:getId()) + + Button + id: zoomIn + text: + + size: 20 20 + anchors.left: zoomOut.left + anchors.top: zoomOut.bottom + margin-top: 2 + @onClick: Minimap.onButtonClick(self:getId()) + + Button + id: levelUp + text: /\ + size: 20 20 + anchors.left: zoomOut.right + anchors.top: zoomOut.top + margin-left: 2 + @onClick: Minimap.onButtonClick(self:getId()) + + Button + id: levelDown + text: \/ + size: 20 20 + anchors.left: zoomIn.right + anchors.top: zoomIn.top + margin-left: 2 + @onClick: Minimap.onButtonClick(self:getId()) +