From 12330e38cb3c2a023bc1327cb89afd19efed0a43 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 08:57:51 +0200 Subject: [PATCH 1/8] Controller menu --- gamefiles/TEXT/american.gxt | Bin 423450 -> 423838 bytes gamefiles/TEXT/french.gxt | Bin 467876 -> 468076 bytes gamefiles/TEXT/german.gxt | Bin 459590 -> 459742 bytes gamefiles/TEXT/italian.gxt | Bin 456886 -> 457046 bytes gamefiles/TEXT/spanish.gxt | Bin 454562 -> 454854 bytes src/core/ControllerConfig.cpp | 50 +- src/core/Frontend.cpp | 819 ++++++++++++++++++++++++++++++++- src/core/Frontend.h | 29 +- src/core/MenuScreensCustom.cpp | 41 +- src/core/config.h | 3 + src/render/Font.cpp | 40 +- src/render/Font.h | 5 +- utils/gxt/american.txt | 31 +- utils/gxt/french.txt | 10 +- utils/gxt/german.txt | 10 +- utils/gxt/italian.txt | 10 +- utils/gxt/spanish.txt | 10 +- 17 files changed, 1002 insertions(+), 56 deletions(-) diff --git a/gamefiles/TEXT/american.gxt b/gamefiles/TEXT/american.gxt index 1721705d03c59c549e692d13d43d2b048c48505c..f4afab9eb0f61be5dc3a9315887d4bc531836844 100644 GIT binary patch delta 5253 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 delta 4855 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 diff --git a/gamefiles/TEXT/french.gxt b/gamefiles/TEXT/french.gxt index bd9c658b68eb908a2592a174374975bf139222db..79e594ecea315973963ef93d6ec0f04d30f30e70 100644 GIT binary patch delta 4406 zcmX|@eQ*@z9ml`7d4b{OCSsaE3YH0wp%_B$F1aLt412eGxl8u$mfgK1W+)dCF@_fd zMha9tsu3_kL>}NMVv06k1dK5UVlxg>N-bp&sl)g}o%r&HLm7tRjK!C+On-a(>}KXN zpZ)Fc{r5c2KK*~6dgJ`mT~kxiyc~$S9*KE?ZXahau(6u64=7m3xeAbE&egzdH3tDP z*4RL{Lk4HE9ZGU0+uU`W$+rJVleM@R3$J836_1g@iP!lH)8NmX$zaQ0I8(5Tmx&{d zvT6JCCl-?_`oFZ8Oi_4)INFjlbrya{92bp1;(ko{Zw`W@nw6_RnXH*&92%F(H6K(_ z^I+&M;arkTExRzZjEB<4#sWUw%KPxw@yy&)=I*rw3 z#9BPtl|3~UoBB$<#istbSUxl{DC@+>A0!T@!m<+aU`vPjpeiwHQRP~bO*Ie7*Ad5q zjb^Kr$1FCTp6|9e>vUH>bXlu6b!zQTR_ zIRODJA|-h{dn?z3Zs(nm5!iUS2H?GXXA6eM4D9Xf3GS7N)v9t=C| z#m5f&aKqs$2p!yyzZ#Pr_M_I}8fXsJ;)k7C{gmYM*P*bN8`o5#(qRw64tuf8VIL~@ z+WJ+H9InPvhyCbsxCT2MuEl`Eb$Ea8cAWrm@hPR9WzoFHy8lCq{@ zF!R-~-*ipc-!C8}i%FjphB55Qa+R*)CVTzf_hyAoT5m(q7?!?iaa8r8FJp56XW7p3 zVqtZL9VxGv_$7a#hg$G1`>K3_yXPfSHJB7>W`~ZkIdd!AeOwfvlVZbbY~|bv*EekM zTz$$=+R_cud9wR8n;UV1xhiJNx^a+8qB=f4Z>Abd1~ngUad$yY!ZjADSdcPawlt+c zJ+2<&tb`CdVzYu$?q7-O6QeM*~ra8Y8)r_S*jsb!#C_V^NQV_JoRuuL+cUt^t=jT`Ackg zUd4R@9y+2KxXjCmG=*{fu;nAt)P#OsT0gne>Dj^Yj{=iim z6-?i6GpX8<>7>5ST%H9@WxQrZtHq{>%>DkiX;H&vA-^z#+1hBR#9?NaN> z*5L#s-Y&I4#SUAaCiRo8qv+_c(w&o3^#C^722|!!hgB@)xvPePk66?bKd5VG$p= zM&okx5ot7{z;UawddPsr^>u3g^nX~R)}ua*ur*c1Q_8uOt_CrOFKbj*ug{M=-pG+nCp3~h(%a%iIM9`B>!DIzP*$75b z5~C={m`j3K4&f}fmGl@St|OD5rLS5(!*u9hxnSul^}ro2kCM&-i(8XX-9Slp4n{Ic zflu(jan(TUG0Ty;bGO(`7pM}>OUUV@>{rc5nwPuEY_Ev*AbwyU+&9Br&P&qCbN>*# zbDt(W@j^yhv{`Un&U~*EofBpr|eqi@5&NaZ&7dh7gox53wRO;?# zmWXaISidK8K=O_iN_sMvl(pki7k?`t8V@8rei4NmZ4O|+!$Dl!WXmP2-E6ars}6^t z{mz!t;O^0P{SZ~WixaDv?+IdrJ zsP0`32XNeBYGilTHkhpON!ai#cjTkO9S&i~R$E?=v)gPAW7OdY7H`j#CIc=3FR+zu z8-%Vm*=Sp@TcA5}JYj?kj|U|?Gn*fn<8ocf9A5s#7(r^!Z0(ria?c?ZO;+OcJw@lS z%;{Bwxr#A^-@Bi<;ckjm8l7oLL*;SI=S5^Q~*AuA#a5>012%N9r90JxZrbThaxH zh^dBpvh^CA$<}LfCfgMoIg{mqTY zK_*+MAJ|N$nE23UGDXWjiIXc#OJ~==iPNGH$*jbhTLp-UYF>WuYl}5Yj9cHxdaVyt z)B^B+i#V;)Csq7yi!&*MJY6p0OwpFjCC*UIBwtp}ndG;=$Cg&Ubs8sb+HC2x3%qAvi)S_)0EVk4F*t(H8 z9c{3ZIPj#+meZ1LHs_u0@I2=Ot1MCk4t-|fj+&piG;O}@|uuiOOm{IgSpBwZwdxfzbtY~tX z|2|rZXbH)TD%k#9PMh3SAe>s4`^bNKlCY^I*IyjDH{0JLfVP4Zs;t4N!{KsVbvXdv zV_YX3!~&N?SnhHK8eOi$dY8lKbh!%sE>}Z&A@4IQg~Byxu|K3xRXMh~96+zjK@7Vb z!nWN!p{fe(bGZ^jE{Ac}^e%8FG z%(H~;S)@<*cH6p9x=%jocenw|nWt>_+~vJolGO43Su5438P!6NUg2_0!ZMa9Tbe!0 zHKj-$$`078k`lvfha6V0iTjt*2EK6QO(IT?*q&v11x|3eoRYAGN1;0eS5G4!T~0OP ziy_;mtR>KE`(y=+X9}H%Sn1-@>F2pwOig3bURyP$YFNU4u(;Si#yb&@Xc#=io>^Qb z9P44ji_0F`%R?tL19SGFXKyFRHR%x0Ds2WwxqR~1pg zu0PrdD-ob^50^&*XmL4+jy2m_;F|0anSEFPk^zi{InG~LK z^fM|N9sMQ=kMy&b0;Th&@r06k9N*_nOX>>Nx}3!N{p?C0Hf1Lte@bb<9JVM}?3v2s z;OrS|`|OO;^*ZM8$mxa#e6gQB6D-Znd(~c6MG2?)XjM_iMZP0cF@s~gsj4htf{$E{ zX}H9*Q|rjq21$6umKnr}(DRS0ym$avI~@zad8O5}%Ag@19%yUNEFI9g_c5%&zt3FS4j< z#4;FlR%t#T@wOUtYxucmgEp+dXKv_8wD+>rl|?hQ@SYh>Y0T#n$k6UNxu11a7WqHn zlg_9jF7IK(m8CN#@e-OSr4jD1i3)6co!zV~6|M}h`@+M*$%E`n_?-Xtn^xcAW>Ssg z;+w3ms%VDxmMzkC5qI(@C2s15h`yujLe)88_WZls^IPoMmY;)RCMobF&S}-a;1S!Yb#gB`Ob@6w&JUB*=KL-(OzUyCjVGk(Q7G))hi3b? z@{)A&Jnc9MwEuz;8&ahmM6r3cqJ)gUvv`x;=`k8=aI${RGB3fLI;D*al%-ZbeNI31X zjIs_#9z(y&w7GxIX(!k7LbNhZDHq zay>5p(vde{%`*-wsDGSuH6`J41W&Ga*0`yV=hN9=5iEWKXG&<^tdeJj>|FJ)9&chVd_sEj$^ya2@Gs<XF)aK7ynSZsGeXq@4t_q5H>cy8m&-SL|u){?8TPUp)68f9LPMf|=d^ SSG?2q-t5xd4|X% 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 diff --git a/gamefiles/TEXT/italian.gxt b/gamefiles/TEXT/italian.gxt index 2c2bd3bcfec12e6abbb77d662804402d32df7af9..144356ec74442fcee446431ff7edf398cc9e3903 100644 GIT binary patch delta 4483 zcmZ9PeQXqE9>>2s-L4JNUiF|AM2-~fDd4vI((Mb-IJ-OB-F9|&n3>%c4jJGSD` zqP#BR@uG)VdAKeX1SDV#Iia#S;RphUgm{R>7>^KxLJSf^@S>b@oEme#*?DIEIFgdj z{GQ+Y^UQCaefPV2FWkJhZ%i&awgjT4B~m`1yN0tL=$pVf01ThRIS6zGIX3_|T1yZX zQyuMOJ3PXfY}ceXlWn)bnQV6~G+9lXu{LckaxR@BgN^-sfeiNU<4gvFZ*!(#4<92= zbVy{2;QJPnDK>p*F`4463&hDT!_@iy3*xk>hch#9@^T3xqEeKvylS#)iZSkoT=78> zRUa$_qopWH}9q=-trn_OC2|I!yygUPS~WY3ljkfpb=F+A*sSu{b&ILf zI0+9FHC^n=k-IE5^>6>iVpG5Vw;rfsMAC>iP9cuu;*y;3VQ<)cP~;S~s5@q|spi9k z1aUgjVJ4w>SZq4IILl(w>Bo7Z0dCHv)I%rJLrKfc2OkSnvX4x&>nm} z;Y;hGlg`1<-`Gs&;HJ$146?tKEEM9a3bpR#LWO6!V7{=DZbZpe8_@4?2nQT)#2JU1@TJ4ez`EhwQByr8tYg1C@a3p+W*mCYX&B(< z9^$NSNUBQh`|pDXU88O@0WnE50?{}=+uj!8 zBhxCWgmJ{?jD``fTOLwk9JBVY@qLv=#aMt0yKb@V+OEY%3jmka$icc5}T8||%e-DcCg)fE@GbwrJ#X#<<* zZSfCmvUH>2HuUy!mSZ^gXPag8aDUOXj*5OZJ z-CV9Fu$hgl8}B;Gn(M|-o5%HIN*Z6RvvgvL3YmwAb!u2JX!(hYVRZ4V<6#vS*lTrl zLi{Cmw$597nkSJ^X@tFOIZ9;XP;7ZNi+CR!TVFL=f7M!UPtSm#=h&V}qBYM_v^)7i0n%eJQv8?5A1bbezIgYV;&Ji8GFS0ZBHNGldgd7tg*s2{ey7>Oc z9Xby11Y{b?pR!TDDWfWRiLy!~(YB(hZm}nQ)wO5&zQ~yr+U?bhf|+*s&L|%3XZw9M zwUc@2NiB}4yd_CZhVF0@i(h6peX-h=JkylifmWO8_?GQ9k7mT6uK_~+Y_`8<^e|q3 zx?RI!o=m!<1Nvq*;IGL=d2mxb;jUz zn0n-}iUEgptmnO(o{_MUm!Z-qkL|J=rBc~4-wIWf;kB7g#TWay4we0Yl`gv@_+a@k zTStrGUu;^idQ`V9q0LmcTMg1;ItJL2v^vP!swFiXI%N6Ok~%iB*Mrs5YPWEG+A@`A zrDej{&G$;nQbRX#otX)ob~ue8_Fb^Le29+$J!(ouHjK~hc*D}yV;KzEtF%eScyDzY z59V27Go5-1LH*=QFPRB=|)GHN-iG{A@6 zG0Tz-jWX-oY6eOgF*S)4XE`0Ej2oIyjPBu*tQNt91Ey8dm_hfB-T_w8vbm!5HPd*y zp{Wvv4HWjbq+G&?9qh*`HU5>m%q7i;BojDOJQ5}=m|uL~h&2%liXRfqh>ALvZfB{f z$1_`tr-3d7bibNkteaR*;Ce9;lWFc0qv~Xq#QLHOVkw5Q;#ZDXOJV0WGdz6+$q=b0#Uozxvcy|%kX$<3%!x5Z*vMA3PzQ!oF zEVh+m*z0f`u03VT;~4C*Ie`gJ+uV+cOKk4IXAa9~n#JW!B0hCEj3tlQ@(32Mgw9FCy(QCla9H4aO-=x_{I9BxC|d|N+` zOb8~q~I&apX+;9Q#{ zxZp6|lIGcR2_HKgLzI`)=x@WAKX4r?JM1uhsvM3W+*{NM8;yY|ywBJM5_%ktVf9j5 z-iF1`+8oDA4kvK6&}>9puCr{_oM&Cf*$;DGDL=YWKsuwxbe|7b3a`$cN^IYinrmm>lf_wsN^nL#t*tJGIO&$a`P7wQR$!Wv;`w zmI>=KrHe2ZHoP{gkC&F)Pu+J-+km6nXfqD@oczpUZB4c`g0$?alW+cva2UA9rTHc-ObF+ z{PuaD=Xsxx_bVS?zWMmKH*cMnJNcsm@QRX1d4cJlF!ljO3mE%>!CJ-vV9L+95xB3l z0AW7W(N4C5Va8;8HOZK4r+XNaZP`kL<+L%EdyC1rbczhHgAI_uyaSBMpymz6G}-U| zK%D3h$QFkuEH+Ht?^{f!xbtU5=W=GAa!37WnrK!le}`IWyJEE{6%ypl6N zBwqGH`i?j)(HJoHKZ7$Vl|0qB+!oVp%YHzdp`1zHcQa#>tF??NiiRe}lt59$jaVYZ zivs!VG*}i?xdWwZ-Dne1f}G>MD0+r{@IDN_Y_lKBMr;n?-IF#qV)LXMaXw+hhJ~M7 zY*b?U9~K*xxbI)YX;l!3Yrb@BL%(LT9}T~@Ie>**3z1Cl$pjVq*a&fwoYUWmeT7JO z@}it*!`}Uckm3oE63C(S4eP_mVC^yDM0Yn&eDxG@S~e<;rn43sI#A>J&^f`pb+CO;z%wohzT#|g^dqMOi_uZ1%nMWFZRTV z(~%A%h_me$8&0LA78_3E4|<>oa+{&^?k|d$Gx3 z9}YY0$ArTHeBy8;E;$@TNjLK!457y1Cd_-vl;@)UU^AMmkElP?0M%hHRypj$dWZe^ z@)_nd6u^wbjVKwkDEK9TcfdL3S}b}CnZ1J(}mRDZcQWVI9$U>Y`8Q@2oF&KW|CG zbaDjrr|zuh#y0AscgmGpH&_D^I$u&dZ0^9OXZ6auDp#MrsIH*u?CdUO5!MV~VLn3P86vzAUwlJPe48Oti@9kcwz`7owf72;tTDScOcJ$L3g z{k{6S>V?c8A*<+Tc_cdHcz2uSG|}0KGcW45G?Z7K-D-*2(@WrEF}7!tIKD$q(eN=^ z8%CkUuon{!`|#1A{&YiC^(s~vF&sf9i$)B`v4a&_jHtM{Nq?uI%DaWdB*u6QY+_zJ zL`<>%h#e|MSpXs($)Y~jd)M4ewo{poMB9q8dRTwRTTvZm!Hby`ChXCSgb(fMvr&Au zT|eZls@~61PbzU7Vx(QSay?Rt-| zs&f4nE0J`&g7d5v>5dMZeL)}gRpm~y_#{4xN!DD6SKwxON_+;hSfeE&iicS(q?n98 zHnY?g#d3!;n6Y)*X^Yt`(qgc6LUc^D0X;qv%z;r0> zy;kV@b%EQ8*V{Tu3=imw0u^(oZ3#8=yz@bT zuYUX$V}>}Ly>Y}Cr|3N~{+cmETvOV393IgpL*?8j!}|Hqd)$Y+^`lKKiGK4i7qxa? z!WPC-TEqxrnGW#DH;uGJO`*t&%uScnVsaAinAb#76Vp+OxUuf|P|kD&^3$N-yQm^JZmu&`OOj-*%?hnTvrQzYS+=oR(vpf2a~-RiaR8K<9U!I` z*W@lMs>N-_qGmj zE_eQ`yH^(YS~@wOSb*q>> z6o%?>1PdQBE7%_7Er#<+=x zxYXt_E;t;4de3}&Ac}YHu~|S>kIga6%0IT`hwj|R%PmpR&*PS#+Z;x~;Rr4|9K}_K z1xWYV`Z07l+=g}c+wwRrJDk95)`+0L9WC^{qz2uh1*t>ZtPkQaW^AS^OZrcHl$@+t z?m|8u*BlPx@G@H-LF!(c>6PTLfH+Gpuu;s4>;+ zMOXf%dvABSR^x)vK$muk~MDw8XWc_ z<**NH9roj>!vRcY^@%>YWSlmd>4G-Vbf;eR=;Or~pEN|8FB^}dG=JdH6I{tbOQfiD zAWjbGy{qd=mRh20oG!)Tf&9VMGw$lZ5Ql6cr8U#89cCQu0%kK->ChT}Ri9YnqB0PjU1spr8B1_*CJXFI-(i9~|+VcC`$>Fy^UnogF$b r=J|`O`@~~!dY+s&)Vr3uX-Im@Q$6(jgr{|A_ybSbiJg<4Q?>sGufct& diff --git a/gamefiles/TEXT/spanish.gxt b/gamefiles/TEXT/spanish.gxt index 60012324f28785ce6f1505e2bb37f099eb606a7b..7ef6c0124b2336ea63b96e7ca56699b1aca1b780 100644 GIT binary patch delta 5096 zcmY+H4{#Lq7017~NluDzO$8GSh%v>qDxA5ya0!8?+1tI#-DU4?+17 zAwt+f*qw~$ z0&+tMB7C|nNxp;g8Ix~aD`WCKbvI-3ow~wgC1dt=V28!|Oqv{yJkA=(q2*b| z!psem-m}@vt?px+%}R7#B+h72iFm;mrAP=-L801}erQ0;LZSiWaqMOL!5qQpVd6w*Cr>=|7I8)~D~$!GZ8kMyAKPq> za>74trb^?hQZHmBV^w9S!e&$d$!#`U>tnVT3NJ)evTx;yg?v0JB?9P*n-8*-rV=e^ zGue~{P@N{u2yJE(eG6?igZ6jZYz95D)(bVNw3?djyKFW!eLu6=)O5e#g~oSKPeA?e zY!+w^p1bV>`=OoILC4=5rgiWShePPQXpEPv;_B8GYfGCs--RD?=8lbOx`5fMi@n}0 zrJhfX&nMpH>!y~7k`Q%4!m(9F|MkNq+~#EQsPC-_Tvc0fTVvHU{oIT069tLoCYcu~Zr-p0GJ3hcJu$ zOnXX>ApMlFcypQGG#so!o9==gYV(BU>*HvTy0+qK#jW=W~=?e|zw1to+I7Ee$_%-m#D z`J3{mm{g3k(q^^YL@9=YI~9^b{@lq9XcBAzzJrLrbX;z-O!nV124kr zKAO&<+^}Otl?1lhF^xa_Z{|jK7?=Gu$xoPDOwQo-jkYuymISP>9rsl?h-)OlUalbj-IkUYY)6ZPi9kC@Te`4cnMoyveT9# zKn)wF6bZoZG995Cjo!MN+A9w+w}^mi4>}x2wG&RzaP&cAysjqbWrdMqJSI5OHVNrX z%&kpB&gq$s{_tkQ7ihYvht*9|S|K`aRH>`Rl0aqcYpfPhHjQmgYgUHl^xrN*88n^= z)YJx92~%nuKV@Z3sS=)ZIfVmxqw9|>#9z%u85}I6A zu+3!+ud-4t%tn!8!kD91Rm?nMZ#*q4;E2;rdj=zHk!5L-O>&rO zu=pu!Jx+AA2qJct?^tiZVp%0t}d9# zi#pG%7-t+wNZ9qX8C=xqrHt)+jLvY=xnWh{6ccNTgmM-zC(|p2Wze2b@f@?aODX)- zc)vlft+rlbae8sZapiF{Xk1Uzjm3=>T-Rg9hQ^cJo?#<0uPJ|R zw<(tNBrjv4)wQI{841%ED_Iqn4wy3`=_(a-->9ii=|MU(r!p33rwv*oN$D{qg;8dY z(+#nkae@w)I;N569NuQz1zpOtV~B}TbPOC~BJ;XA%_?F_Ph}z)7&DVd>1n#-Ze#Xz zCXI=Ejpiml*SOc{X{wmq!Xl|c3||>fHf^l!V)1gSfEMQ05$Ql5i?@hMzhTJm&mZ>9 z{)suZg}SOlF=?oHa(>$5yYjSYQ#*AU*MecA_IowK^G{kPT}UNx*4n5lv5Xe$cq3NL zTAOuOb&=Q5`x+Dl9+s%h-rX?8|8 z8S<*J=0ww56&@oG8^g^N`5=>~sQHZ5zow^D4b|5A*Yu36Vb_oyLgusR88!3LbeS&B zIc8tj3hcHvt)^R-dTYqUw5bMuZ2KxyJ<;V14nA+inL-N-c!`ZhrO`~Eyj`bN_tj2fh0lS&5wHVk? z491pzE5CFR2U-w%Ak1UTNzV;6D3QAaL8n}m=*}&<(}g4t~)$j z`tjoBCE@G1reyJsm0pkUC~1_al%Z<^#)gW`t9F+*iwO>@CM$ZN4*f0%@Py0s9p`cg zU%On7nMvb@wTka5?KCR{?V_0pqj&8pUnljXYI?9eE@ID`;)S)ZalVI=jIEn$3cKFqW|YlFHTnwweYWJrLfs{9qNlp>YSWE5eumrvItES)mxEIUNgKqlY3)6cU){x>QtfJP{SX;R7R?jVklSjEp zm8RzZ^?uUJg%984rhK!S+#bL)*gzuF?UgsVIfe2$C8dSI3tUxUUB**aIQn2&_2H$* zxP!`$sZ&bmS4zLK!&9etxlCe!{!!JO2YoG%F|o delta 4872 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 { wchar wstr[16]; - // TODO: INI and/or menu setting for Xbox/PS switch + const char* (*Buttons)[MAX_CONTROLLERACTIONS]; + #ifdef BUTTON_ICONS - const char *(*Buttons)[MAX_CONTROLLERACTIONS] = CFont::ButtonsSlot != -1 ? XboxButtons : XboxButtons_noIcons; + #ifdef GAMEPAD_MENU + switch (FrontEndMenuManager.m_PrefsControllerType) + { + case CMenuManager::CONTROLLER_DUALSHOCK2: + case CMenuManager::CONTROLLER_DUALSHOCK3: + case CMenuManager::CONTROLLER_DUALSHOCK4: + Buttons = CFont::ButtonsSlot != -1 ? PlayStationButtons : PlayStationButtons_noIcons; + break; + default: + #endif + Buttons = CFont::ButtonsSlot != -1 ? XboxButtons : XboxButtons_noIcons; + #ifdef GAMEPAD_MENU + break; + } + #endif #else - const char *(*Buttons)[MAX_CONTROLLERACTIONS] = XboxButtons_noIcons; + switch (FrontEndMenuManager.m_PrefsControllerType) + { + case CMenuManager::CONTROLLER_DUALSHOCK2: + case CMenuManager::CONTROLLER_DUALSHOCK3: + case CMenuManager::CONTROLLER_DUALSHOCK4: + Buttons = PlayStationButtons_noIcons; + break; + default: + Buttons = XboxButtons_noIcons; + break; + } #endif assert(Buttons[CPad::GetPad(0)->Mode][action] != nil); // we cannot use these diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 4eae64b7..141f46f8 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -125,6 +125,10 @@ bool CMenuManager::m_PrefsMarketing = false; bool CMenuManager::m_PrefsDisableTutorials = false; #endif // !MASTER +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +uint32 TimeToStopPadShaking; +#endif + const char* FrontendFilenames[][2] = { {"background", ""}, {"vc_logo", "vc_logom"}, @@ -151,7 +155,14 @@ const char* FrontendFilenames[][2] = { {"downOff", "buttonA"}, {"downOn", "buttonA"}, {"upOff", "buttonA"}, - {"upOn", "buttonA"} + {"upOn", "buttonA"}, +#ifdef GAMEPAD_MENU + {"fe_controller", "" }, + {"fe_arrows1", "" }, + {"fe_arrows2", "" }, + {"fe_arrows3", "" }, + {"fe_arrows4", "" }, +#endif }; #define MENU_X_RIGHT_ALIGNED(x) SCALE_AND_CENTER_X(DEFAULT_SCREEN_WIDTH - (x)) @@ -526,6 +537,10 @@ CMenuManager::CMenuManager() #ifdef NO_ISLAND_LOADING m_PrefsIslandLoading = ISLAND_LOADING_LOW; #endif + +#ifdef GAMEPAD_MENU + m_PrefsControllerType = CONTROLLER_XBOXONE; +#endif } void @@ -1074,7 +1089,7 @@ CMenuManager::DrawStandardMenus(bool activeScreen) } switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) { -#ifdef LEGACY_MENU_OPTIONS +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) case MENUACTION_CTRLVIBRATION: if (m_PrefsUseVibration) rightText = TheText.Get("FEM_ON"); @@ -1539,6 +1554,11 @@ CMenuManager::DrawStandardMenus(bool activeScreen) #endif switch (m_nCurrScreen) { +#ifdef GAMEPAD_MENU + case MENUPAGE_CONTROLLER_SETTINGS: + PrintController(); + break; +#endif case MENUPAGE_STATS: case MENUPAGE_CONTROLLER_PC: case MENUPAGE_SOUND_SETTINGS: @@ -2280,6 +2300,9 @@ CMenuManager::DrawBackground(bool transitionCall) break; case MENUPAGE_SKIN_SELECT: case MENUPAGE_KEYBOARD_CONTROLS: +#ifdef GAMEPAD_MENU + case MENUPAGE_CONTROLLER_SETTINGS: +#endif menuBg.topLeft_x = 14.0f; menuBg.topLeft_y = 39.0f; menuBg.topRight_x = 636.0f; @@ -2948,12 +2971,19 @@ CMenuManager::LoadAllTextures() CTxdStore::AddRef(frontendTxdSlot2); CTxdStore::SetCurrentTxd(frontendTxdSlot2); +#ifdef GAMEPAD_MENU + for (int i = 3; i < MENUSPRITE_CONTROLLER; i++) { +#else for (int i = 3; i < NUM_MENU_SPRITES; i++) { +#endif m_aFrontEndSprites[i].SetTexture(FrontendFilenames[i][0], FrontendFilenames[i][1]); m_aFrontEndSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER); } CTxdStore::PopCurrentTxd(); +#ifdef GAMEPAD_MENU + LoadController(m_PrefsControllerType); +#endif CStreaming::IHaveUsedStreamingMemory(); } @@ -4896,6 +4926,16 @@ CMenuManager::ProcessUserInput(uint8 goDown, uint8 goUp, uint8 optionSelected, u if (changeAmount != 0) { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) + case MENUACTION_CTRLCONFIG: + CPad::GetPad(0)->Mode += changeAmount; + if (CPad::GetPad(0)->Mode > 3) + CPad::GetPad(0)->Mode = 0; + else if (CPad::GetPad(0)->Mode < 0) + CPad::GetPad(0)->Mode = 3; + SaveSettings(); + break; +#endif case MENUACTION_RADIO: ChangeRadioStation(changeAmount); break; @@ -5037,14 +5077,14 @@ void CMenuManager::ProcessOnOffMenuOptions() { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { -#ifdef LEGACY_MENU_OPTIONS +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) case MENUACTION_CTRLVIBRATION: m_PrefsUseVibration = !m_PrefsUseVibration; - break; - case MENUACTION_CTRLCONFIG: - CPad::GetPad(0)->Mode++; - if (CPad::GetPad(0)->Mode > 3) - CPad::GetPad(0)->Mode = 0; + if (m_PrefsUseVibration) { + CPad::GetPad(0)->StartShake(350, 150); + TimeToStopPadShaking = CTimer::GetTimeInMillisecondsPauseMode() + 500; + } + SaveSettings(); break; #endif case MENUACTION_INVERTPADY: @@ -5510,6 +5550,14 @@ CMenuManager::SwitchMenuOnAndOff() m_bStartUpFrontEndRequested = false; m_bShutDownFrontEndRequested = false; + +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) + // Reset pad shaking. + if (TimeToStopPadShaking && TimeToStopPadShaking < CTimer::GetTimeInMillisecondsPauseMode()) { + CPad::StopPadsShaking(); + TimeToStopPadShaking = 0; + } +#endif } void @@ -5534,6 +5582,13 @@ CMenuManager::UnloadTextures() m_aFrontEndSprites[i].Delete(); CTxdStore::RemoveTxd(frontend2); + +#ifdef GAMEPAD_MENU + // Unload controller txd + int frontend_controller = CTxdStore::FindTxdSlot("frontend_controller"); + if (frontend_controller != -1) + CTxdStore::RemoveTxd(frontend_controller); +#endif } m_bSpritesLoaded = false; @@ -5781,5 +5836,753 @@ uint8 CMenuManager::GetNumberOfMenuOptions() } #endif +#ifdef GAMEPAD_MENU +const char* controllerTypesPaths[] = { + "MODELS/FRONTEND_DS2.TXD", + "MODELS/FRONTEND_DS3.TXD", + "MODELS/FRONTEND_DS4.TXD", + "MODELS/FRONTEND_X360.TXD", + "MODELS/FRONTEND_XONE.TXD", +}; + +void +CMenuManager::PrintController(void) +{ + // Don't print anything if controller texture is missing + if (!m_aFrontEndSprites[MENUSPRITE_CONTROLLER].m_pTexture) return; + + const float scale = 0.9f; + const float CONTROLLER_SIZE_X = 235.2f; + const float CONTROLLER_SIZE_Y = 175.2f; + const float CONTROLLER_POS_X = (DEFAULT_SCREEN_WIDTH - CONTROLLER_SIZE_X) / 2.0f; + const float CONTROLLER_POS_Y = 220.0f; + + float centerX = CONTROLLER_POS_X + CONTROLLER_SIZE_X / 2; + float centerY = CONTROLLER_POS_Y + CONTROLLER_SIZE_Y / 2; + +#define X(f) ((f)*scale + centerX) +#define Y(f) ((f)*scale + centerY) + + m_aFrontEndSprites[MENUSPRITE_CONTROLLER].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + if (m_DisplayControllerOnFoot) { + if ((int)CTimer::GetTimeInMillisecondsPauseMode() & 0x400) + m_aFrontEndSprites[MENUSPRITE_ARROWS1].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + else + m_aFrontEndSprites[MENUSPRITE_ARROWS3].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + } + else { + if ((int)CTimer::GetTimeInMillisecondsPauseMode() & 0x400) + m_aFrontEndSprites[MENUSPRITE_ARROWS2].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + else + m_aFrontEndSprites[MENUSPRITE_ARROWS4].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255))); + } + + CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); + + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.9f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.9f)); // X + + CFont::SetDropColor(CRGBA(0, 0, 0, FadeIn(255))); + CFont::SetDropShadowPosition(0); + CFont::SetColor(CRGBA(0, 0, 0, FadeIn(255))); + CFont::SetWrapx(SCREEN_WIDTH); + + float TEXT_L2_X = 85.0f + CONTROLLER_POS_X - centerX, TEXT_L2_Y = -14.0f + CONTROLLER_POS_Y - centerY; + float TEXT_L1_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_L1_Y = 27.0f + CONTROLLER_POS_Y - centerY, TEXT_L1_Y_VEH = 3.0f + TEXT_L1_Y; + float TEXT_DPAD_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_DPAD_Y = 67.0f + CONTROLLER_POS_Y - centerY; + float TEXT_LSTICK_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_LSTICK_Y = 97.0f + CONTROLLER_POS_Y - centerY; + float TEXT_SELECT_X = 170.0f + CONTROLLER_POS_X - centerX, TEXT_SELECT_Y = 141.0f + CONTROLLER_POS_Y - centerY; + float TEXT_START_X = 130.0f + CONTROLLER_POS_X - centerX, TEXT_START_Y = 128.0f + CONTROLLER_POS_Y - centerY; + float TEXT_R2_X = 164.0f + CONTROLLER_POS_X - centerX, TEXT_R2_Y = -14.0f + CONTROLLER_POS_Y - centerY; + float TEXT_R1_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_R1_Y = 27.0f + CONTROLLER_POS_Y - centerY; + + float TEXT_SQUARE_X = 147.0f + CONTROLLER_POS_X - centerX, TEXT_SQUARE_Y = 30.0f + CONTROLLER_POS_Y - centerY; + float TEXT_TRIANGLE_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_TRIANGLE_Y = 55.0f + CONTROLLER_POS_Y - centerY; + float TEXT_CIRCLE_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_CIRCLE_Y = 67.0f + CONTROLLER_POS_Y - centerY; + float TEXT_CROSS_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_CROSS_Y = 80.0f + CONTROLLER_POS_Y - centerY; + float TEXT_RSTICK_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_RSTICK_Y = 97.0f + CONTROLLER_POS_Y - centerY; + float TEXT_R3_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_R3_Y = 110.0f + CONTROLLER_POS_Y - centerY; + float TEXT_L3_X = 94.0f + CONTROLLER_POS_X - centerX, TEXT_L3_Y = 162.0f + CONTROLLER_POS_Y - centerY; + float TEXT_L2R2_X = 120.0f + CONTROLLER_POS_X - centerX, TEXT_L2R2_Y = -4.0f + CONTROLLER_POS_Y - centerY; + + switch (m_PrefsControllerType) + { + case CONTROLLER_DUALSHOCK4: + TEXT_L1_Y += 7.0f; + TEXT_L1_Y_VEH = TEXT_L1_Y; + TEXT_R1_Y += 7.0f; + TEXT_TRIANGLE_Y -= 1.0f; + TEXT_CIRCLE_Y -= 1.0f; + TEXT_CROSS_Y -= 1.0f; + TEXT_RSTICK_Y -= 4.0f; + TEXT_R3_Y -= 4.0f; + TEXT_DPAD_Y -= 2.0f; + TEXT_LSTICK_Y -= 6.0f; + TEXT_L3_X -= 2.0f; + break; + case CONTROLLER_XBOXONE: + TEXT_L2_X -= 2.0f; + TEXT_R2_X += 2.0f; + TEXT_L1_Y += 15.0f; + TEXT_L1_Y_VEH = TEXT_L1_Y; + TEXT_R1_Y += 15.0f; + TEXT_TRIANGLE_Y += 4.0f; + TEXT_CIRCLE_Y += 4.0f; + TEXT_CROSS_Y += 4.0f; + TEXT_RSTICK_Y += 1.0f; + TEXT_R3_Y += 1.0f; + TEXT_DPAD_Y += 29.0f; + TEXT_LSTICK_Y -= 20.0f; + TEXT_L3_X -= 36.0f; + TEXT_L2R2_Y += 5.0f; + TEXT_SELECT_X += 4.0f; + break; + case CONTROLLER_XBOX360: + TEXT_L2_X += 8.0f; + TEXT_R2_X -= 8.0f; + TEXT_L1_Y += 15.0f; + TEXT_L1_Y_VEH = TEXT_L1_Y; + TEXT_R1_Y += 15.0f; + TEXT_TRIANGLE_Y += 4.0f; + TEXT_CIRCLE_Y += 4.0f; + TEXT_CROSS_Y += 4.0f; + TEXT_RSTICK_Y += 4.0f; + TEXT_R3_Y += 4.0f; + TEXT_DPAD_Y += 30.0f; + TEXT_LSTICK_Y -= 19.0f; + TEXT_L3_X -= 36.0f; + TEXT_L2R2_Y += 5.0f; + TEXT_SELECT_X += 3.0f; + break; + }; + + if (m_DisplayControllerOnFoot) { + switch (CPad::GetPad(0)->Mode) { + case 0: + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_L2_X -= 45.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85)); + break; + default: + CFont::SetRightJustifyWrap(0); + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); + CFont::SetRightJustifyWrap(0); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_R2_X += 30.0f; + CFont::SetJustifyOff(); + CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); + CFont::SetJustifyOn(); + CFont::SetWrapx(SCREEN_WIDTH); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::SetRightJustifyOn(); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); + break; + case 1: + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_L2_X -= 45.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85)); + break; + default: + CFont::SetRightJustifyWrap(0); + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); + CFont::SetRightJustifyWrap(0); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_CAM")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3")); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_NA")); + break; + default: + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X - 50)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_NA")); + break; + } + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_R2_X += 30.0f; + CFont::SetJustifyOff(); + CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); + CFont::SetJustifyOn(); + CFont::SetWrapx(SCREEN_WIDTH); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::SetRightJustifyOn(); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); + break; + case 2: + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_L2_X -= 45.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85)); + break; + default: + CFont::SetRightJustifyWrap(0); + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); + CFont::SetRightJustifyWrap(0); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_ENV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_R2_X += 30.0f; + CFont::SetJustifyOff(); + CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); + CFont::SetJustifyOn(); + CFont::SetWrapx(SCREEN_WIDTH); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::SetRightJustifyOn(); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RUN")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); + break; + case 3: + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_L2_X -= 45.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85)); + break; + default: + CFont::SetRightJustifyWrap(0); + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL")); + CFont::SetRightJustifyWrap(0); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_TAR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_NA")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + case LANGUAGE_SPANISH: + TEXT_R2_X += 30.0f; + CFont::SetJustifyOff(); + CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); + CFont::SetJustifyOn(); + CFont::SetWrapx(SCREEN_WIDTH); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::SetRightJustifyOn(); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RUN")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); + break; + default: + return; + } + } + else { + CFont::SetCentreOn(); + switch (m_PrefsLanguage) + { + case LANGUAGE_ITALIAN: + if (m_PrefsControllerType != CONTROLLER_XBOX360) + break; + case LANGUAGE_FRENCH: + case LANGUAGE_GERMAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + break; + default: + break; + } + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(0.0f)), MENU_Y(Y(TEXT_L2R2_Y)), TheText.Get("FEC_LB")); + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.9f), MENU_Y(SMALLESTTEXT_Y_SCALE* scale * 0.9f)); + switch (CPad::GetPad(0)->Mode) { + case 0: + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_RSC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_VES")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_HO3")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SELECT_X -= 5.0f; + break; + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80)); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HAB")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsControllerType) + { + case CONTROLLER_XBOXONE: + case CONTROLLER_XBOX360: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X += 3.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + case LANGUAGE_GERMAN: + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 18.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + } + break; + default: + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 5.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_GERMAN: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 10.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE* scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 15.0f; + case LANGUAGE_ITALIAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(100)); + break; + } + break; + } + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA")); + break; + case 1: + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_HOR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_CAM")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_NA")); + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 12.0f; + break; + default: + break; + } + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80)); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_RSC")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HAB")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsControllerType) + { + case CONTROLLER_XBOXONE: + case CONTROLLER_XBOX360: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X += 3.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + case LANGUAGE_GERMAN: + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 18.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + } + break; + default: + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 5.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_GERMAN: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 10.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 15.0f; + case LANGUAGE_ITALIAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(100)); + break; + } + break; + } + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA")); + break; + case 2: + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_EXV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_VES")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_RS3")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SELECT_X -= 5.0f; + break; + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80)); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HOR")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_HAB")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3")); + CFont::SetRightJustifyOn(); + switch (m_PrefsControllerType) + { + case CONTROLLER_XBOXONE: + case CONTROLLER_XBOX360: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X += 3.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + case LANGUAGE_GERMAN: + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 18.0f; + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90)); + break; + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + } + break; + default: + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 5.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_GERMAN: + TEXT_SQUARE_X -= 15.0f; + TEXT_SQUARE_Y += 10.0f; + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60)); + break; + case LANGUAGE_SPANISH: + TEXT_SQUARE_X += 15.0f; + case LANGUAGE_ITALIAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + default: + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(100)); + break; + } + break; + } + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA")); + break; + case 3: + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_HAB")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_TUC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES")); + CFont::SetRightJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_HO3")); + switch (m_PrefsLanguage) + { + case LANGUAGE_FRENCH: + TEXT_SELECT_X -= 5.0f; + break; + case LANGUAGE_GERMAN: + TEXT_SELECT_X += 20.0f; + break; + case LANGUAGE_SPANISH: + TEXT_SELECT_X += 15.0f; + break; + default: + break; + } + CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80)); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_CAW")); + CFont::SetJustifyOn(); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RSC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_NA")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_ACC")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_BRA")); + CFont::SetRightJustifyOn(); + CFont::SetRightJustifyWrap(0); + switch (m_PrefsControllerType) + { + case CONTROLLER_XBOXONE: + case CONTROLLER_XBOX360: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_SMT")); + break; + default: + switch (m_PrefsLanguage) + { + case LANGUAGE_GERMAN: + TEXT_SQUARE_X += 5.0f; + case LANGUAGE_FRENCH: + case LANGUAGE_ITALIAN: + CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f)); + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_SMT")); + break; + default: + CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X + 16.0f)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_SMT")); + break; + } + break; + } + break; + default: + return; + } + } + + CFont::SetDropShadowPosition(0); // X + +#undef X +#undef Y +} + + +void +CMenuManager::LoadController(int8 type) +{ + switch (type) + { + case CONTROLLER_DUALSHOCK2: + case CONTROLLER_DUALSHOCK3: + case CONTROLLER_DUALSHOCK4: + CFont::LoadButtons("MODELS/PS3BTNS.TXD"); + break; + default: + CFont::LoadButtons("MODELS/X360BTNS.TXD"); + break; + } + + // Unload current textures + for (int i = MENUSPRITE_CONTROLLER; i <= MENUSPRITE_ARROWS4; i++) + m_aFrontEndSprites[i].Delete(); + + // Unload txd + int frontend_controller = CTxdStore::FindTxdSlot("frontend_controller"); + if (frontend_controller != -1) + CTxdStore::RemoveTxd(frontend_controller); + + // Find the new txd to load + bool bTxdMissing = true; + if (controllerTypesPaths[type]) + if (int file = CFileMgr::OpenFile(controllerTypesPaths[type])) { + CFileMgr::CloseFile(file); + bTxdMissing = false; + } + + int txdSlot = -1; + + if (bTxdMissing) + // Not found, fall back to original textures + txdSlot = CTxdStore::FindTxdSlot("frontend2"); + else { + // Found, load txd + txdSlot = frontend_controller; + if (txdSlot == -1) + txdSlot = CTxdStore::AddTxdSlot("frontend_controller"); + CTxdStore::LoadTxd(txdSlot, controllerTypesPaths[type]); + CTxdStore::AddRef(txdSlot); + } + + assert(txdSlot != -1); + // Load new textures + CTxdStore::SetCurrentTxd(txdSlot); + for (int i = MENUSPRITE_CONTROLLER; i <= MENUSPRITE_ARROWS4; i++) { + m_aFrontEndSprites[i].SetTexture(FrontendFilenames[i][0], FrontendFilenames[i][1]); + m_aFrontEndSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER); + } +} +#endif // GAMEPAD_MENU + #undef GetBackJustUp #undef GetBackJustDown diff --git a/src/core/Frontend.h b/src/core/Frontend.h index c1c3983e..6457ce29 100644 --- a/src/core/Frontend.h +++ b/src/core/Frontend.h @@ -137,6 +137,13 @@ enum eMenuSprites MENUSPRITE_DOWNON, MENUSPRITE_UPOFF, MENUSPRITE_UPON, +#ifdef GAMEPAD_MENU + MENUSPRITE_CONTROLLER, + MENUSPRITE_ARROWS1, + MENUSPRITE_ARROWS2, + MENUSPRITE_ARROWS3, + MENUSPRITE_ARROWS4, +#endif NUM_MENU_SPRITES }; @@ -192,8 +199,10 @@ enum eMenuScreen MENUPAGE_MOUSE_CONTROLS = 31, MENUPAGE_PAUSE_MENU = 32, MENUPAGE_NONE = 33, // Then chooses main menu or pause menu -#ifdef LEGACY_MENU_OPTIONS +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) MENUPAGE_CONTROLLER_SETTINGS, +#endif +#ifdef LEGACY_MENU_OPTIONS MENUPAGE_DEBUG_MENU, MENUPAGE_CONTROLLER_PC_OLD1, MENUPAGE_CONTROLLER_PC_OLD2, @@ -275,7 +284,7 @@ enum eMenuAction MENUACTION_DRAWDIST, MENUACTION_MOUSESENS, MENUACTION_MP3VOLUMEBOOST, -#ifdef LEGACY_MENU_OPTIONS +#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) MENUACTION_CTRLVIBRATION, MENUACTION_CTRLCONFIG, #endif @@ -668,6 +677,18 @@ public: int8 m_nDisplayMSAALevel; #endif +#ifdef GAMEPAD_MENU + enum + { + CONTROLLER_DUALSHOCK2 = 0, + CONTROLLER_DUALSHOCK3, + CONTROLLER_DUALSHOCK4, + CONTROLLER_XBOX360, + CONTROLLER_XBOXONE, + }; + + int8 m_PrefsControllerType; +#endif enum LANGUAGE { LANGUAGE_AMERICAN, @@ -788,6 +809,10 @@ public: int8 GetPreviousPageOption(); // uint8 GetNumberOfMenuOptions(); +#ifdef GAMEPAD_MENU + void LoadController(int8 type); + void PrintController(void); +#endif }; #ifndef IMPROVED_VIDEOMODE diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index 770e8ec1..5b2f3d16 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -69,11 +69,17 @@ #endif #ifdef INVERT_LOOK_FOR_PAD - #define INVERT_PAD_SELECTOR MENUACTION_CFO_SELECT, "FEC_ILU", { new CCFOSelect((int8*)&CPad::bInvertLook4Pad, "Controller", "InvertPad", off_on, 2, false) }, 150, 0, MENUALIGN_LEFT, + #define INVERT_PAD_SELECTOR MENUACTION_CFO_SELECT, "FEC_ILU", { new CCFOSelect((int8*)&CPad::bInvertLook4Pad, "Controller", "InvertPad", off_on, 2, false) }, 0, 0, MENUALIGN_LEFT, #else #define INVERT_PAD_SELECTOR #endif +#ifdef GAMEPAD_MENU + #define SELECT_CONTROLLER_TYPE MENUACTION_CFO_SELECT, "FEC_TYP", { new CCFOSelect((int8*)&FrontEndMenuManager.m_PrefsControllerType, "Controller", "Type", controllerTypes, ARRAY_SIZE(controllerTypes), false, ControllerTypeAfterChange) }, 0, 0, MENUALIGN_LEFT, +#else + #define SELECT_CONTROLLER_TYPE +#endif + const char *filterNames[] = { "FEM_NON", "FEM_SIM", "FEM_NRM", "FEM_MOB" }; const char *off_on[] = { "FEM_OFF", "FEM_ON" }; @@ -332,6 +338,14 @@ void DetectJoystickGoBack() { } #endif +#ifdef GAMEPAD_MENU +const char* controllerTypes[] = { "FEC_DS2", "FEC_DS3", "FEC_DS4", "FEC_360", "FEC_ONE" }; +void ControllerTypeAfterChange(int8 before, int8 after) +{ + FrontEndMenuManager.LoadController(after); +} +#endif + CMenuScreenCustom aScreens[] = { // MENUPAGE_STATS = 0 { "FEH_STA", MENUPAGE_NONE, nil, nil, @@ -567,11 +581,13 @@ CMenuScreenCustom aScreens[] = { #else MENUACTION_KEYBOARDCTRLS,"FEC_RED", {nil, SAVESLOT_NONE, MENUPAGE_KEYBOARD_CONTROLS}, 320, 150, MENUALIGN_CENTER, #endif +#ifdef GAMEPAD_MENU + MENUACTION_CHANGEMENU, "FET_AGS", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, MENUALIGN_CENTER, +#endif #ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS MENUACTION_CHANGEMENU, "FEC_JOD", {nil, SAVESLOT_NONE, MENUPAGE_DETECT_JOYSTICK}, 0, 0, MENUALIGN_CENTER, #endif MENUACTION_CHANGEMENU, "FEC_MOU", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_CENTER, - INVERT_PAD_SELECTOR MENUACTION_RESTOREDEF, "FET_DEF", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC}, 320, 0, MENUALIGN_CENTER, MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 0, MENUALIGN_CENTER, }, @@ -611,8 +627,12 @@ CMenuScreenCustom aScreens[] = { { "FEC_MOU", MENUPAGE_CONTROLLER_PC, nil, nil, MENUACTION_MOUSESENS, "FEC_MSH", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 40, 170, MENUALIGN_LEFT, MENUACTION_INVVERT, "FEC_IVV", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_LEFT, +#ifndef GAMEPAD_MENU + INVERT_PAD_SELECTOR +#endif MENUACTION_MOUSESTEER, "FET_MST", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_LEFT, - MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 260, MENUALIGN_CENTER, + MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 0, MENUALIGN_CENTER, + //MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 260, MENUALIGN_CENTER, // original y }, // MENUPAGE_PAUSE_MENU = 32 @@ -629,15 +649,24 @@ CMenuScreenCustom aScreens[] = { // MENUPAGE_NONE = 33 { "", 0, nil, nil, }, - -#ifdef LEGACY_MENU_OPTIONS +#ifdef GAMEPAD_MENU + { "FET_AGS", MENUPAGE_CONTROLLER_PC, new CCustomScreenLayout({40, 78, 25, true}), nil, + MENUACTION_CTRLCONFIG, "FEC_CCF", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 40, 76, MENUALIGN_LEFT, + MENUACTION_CTRLDISPLAY, "FEC_CDP", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 0, 0, MENUALIGN_LEFT, + INVERT_PAD_SELECTOR + MENUACTION_CTRLVIBRATION, "FEC_VIB", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 0, 0, MENUALIGN_LEFT, + SELECT_CONTROLLER_TYPE + MENUACTION_GOBACK, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE }, 0, 0, MENUALIGN_LEFT, + }, +#elif defined(LEGACY_MENU_OPTIONS) // MENUPAGE_CONTROLLER_SETTINGS = 4 { "FET_CON", MENUPAGE_OPTIONS, nil, nil, MENUACTION_CTRLCONFIG, "FEC_CCF", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0, MENUACTION_CTRLVIBRATION, "FEC_VIB", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0, MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, 0, }, - +#endif +#ifdef LEGACY_MENU_OPTIONS // MENUPAGE_DEBUG_MENU = 18 { "FED_DBG", MENUPAGE_NONE, nil, nil, MENUACTION_RELOADIDE, "FED_RID", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, 0, diff --git a/src/core/config.h b/src/core/config.h index cc82f8d6..7adbdd63 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -320,6 +320,9 @@ enum Config { //# define PS2_MENU_USEALLPAGEICONS #else # define MAP_ENHANCEMENTS // Adding waypoint and better mouse support +# ifdef XINPUT +# define GAMEPAD_MENU // Add gamepad menu +# endif # define TRIANGLE_BACK_BUTTON //# define CIRCLE_BACK_BUTTON #define LEGACY_MENU_OPTIONS // i.e. frame sync(vsync) diff --git a/src/render/Font.cpp b/src/render/Font.cpp index 0f5930ee..35ed2e56 100644 --- a/src/render/Font.cpp +++ b/src/render/Font.cpp @@ -289,11 +289,26 @@ CFont::Initialise(void) SetDropShadowPosition(0); CTxdStore::PopCurrentTxd(); +#if !defined(GAMEPAD_MENU) && defined(BUTTON_ICONS) + // loaded in CMenuManager with GAMEPAD_MENU defined + LoadButtons("MODELS/X360BTNS.TXD"); +#endif +} + #ifdef BUTTON_ICONS - if (int file = CFileMgr::OpenFile("MODELS/X360BTNS.TXD")) { +void +CFont::LoadButtons(const char *txdPath) +{ + if (int file = CFileMgr::OpenFile(txdPath)) { CFileMgr::CloseFile(file); - ButtonsSlot = CTxdStore::AddTxdSlot("buttons"); - CTxdStore::LoadTxd(ButtonsSlot, "MODELS/X360BTNS.TXD"); + if (ButtonsSlot == -1) + ButtonsSlot = CTxdStore::AddTxdSlot("buttons"); + else { + for (int i = 0; i < MAX_BUTTON_ICONS; i++) + ButtonSprite[i].Delete(); + CTxdStore::RemoveTxd(ButtonsSlot); + } + CTxdStore::LoadTxd(ButtonsSlot, txdPath); CTxdStore::AddRef(ButtonsSlot); CTxdStore::PushCurrentTxd(); CTxdStore::SetCurrentTxd(ButtonsSlot); @@ -311,12 +326,22 @@ CFont::Initialise(void) ButtonSprite[BUTTON_R1].SetTexture("r1"); ButtonSprite[BUTTON_R2].SetTexture("r2"); ButtonSprite[BUTTON_R3].SetTexture("r3"); + ButtonSprite[BUTTON_RSTICK_UP].SetTexture("thumbryu"); + ButtonSprite[BUTTON_RSTICK_DOWN].SetTexture("thumbryd"); ButtonSprite[BUTTON_RSTICK_LEFT].SetTexture("thumbrxl"); ButtonSprite[BUTTON_RSTICK_RIGHT].SetTexture("thumbrxr"); CTxdStore::PopCurrentTxd(); } -#endif // BUTTON_ICONS + else { + if (ButtonsSlot != -1) { + for (int i = 0; i < MAX_BUTTON_ICONS; i++) + ButtonSprite[i].Delete(); + CTxdStore::RemoveTxdSlot(ButtonsSlot); + ButtonsSlot = -1; + } + } } +#endif // BUTTON_ICONS #ifdef MORE_LANGUAGES void @@ -369,6 +394,7 @@ CFont::Shutdown(void) for (int i = 0; i < MAX_BUTTON_ICONS; i++) ButtonSprite[i].Delete(); CTxdStore::RemoveTxdSlot(ButtonsSlot); + ButtonsSlot = -1; } #endif Sprite[0].Delete(); @@ -1437,6 +1463,8 @@ CFont::ParseToken(wchar* str, CRGBA &color, bool &flash, bool &bold) case 'J': PS2Symbol = BUTTON_R1; break; case 'V': PS2Symbol = BUTTON_R2; break; case 'C': PS2Symbol = BUTTON_R3; break; + case 'H': PS2Symbol = BUTTON_RSTICK_UP; break; + case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break; case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break; case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break; #endif @@ -1488,6 +1516,8 @@ CFont::ParseToken(wchar *s, bool japShit) case 'J': PS2Symbol = BUTTON_R1; break; case 'V': PS2Symbol = BUTTON_R2; break; case 'C': PS2Symbol = BUTTON_R3; break; + case 'H': PS2Symbol = BUTTON_RSTICK_UP; break; + case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break; case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break; case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break; #endif @@ -1612,6 +1642,8 @@ CFont::ParseToken(wchar *s) case 'J': PS2Symbol = BUTTON_R1; break; case 'V': PS2Symbol = BUTTON_R2; break; case 'C': PS2Symbol = BUTTON_R3; break; + case 'H': PS2Symbol = BUTTON_RSTICK_UP; break; + case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break; case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break; case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break; #endif diff --git a/src/render/Font.h b/src/render/Font.h index 57f1814d..b0cd0a27 100644 --- a/src/render/Font.h +++ b/src/render/Font.h @@ -111,6 +111,8 @@ enum BUTTON_R1, BUTTON_R2, BUTTON_R3, + BUTTON_RSTICK_UP, + BUTTON_RSTICK_DOWN, BUTTON_RSTICK_LEFT, BUTTON_RSTICK_RIGHT, MAX_BUTTON_ICONS @@ -137,7 +139,8 @@ public: static int32 ButtonsSlot; static CSprite2d ButtonSprite[MAX_BUTTON_ICONS]; static int PS2Symbol; - + + static void LoadButtons(const char *txdPath); static void DrawButton(float x, float y); #endif // BUTTON_ICONS diff --git a/utils/gxt/american.txt b/utils/gxt/american.txt index a91a3274..9bc1c96d 100644 --- a/utils/gxt/american.txt +++ b/utils/gxt/american.txt @@ -6484,8 +6484,9 @@ Press the ~h~~k~~PED_FIREWEAPON~~w~ button to ~h~fire~w~ the sniper rifle. [PLANE_H] Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn. -[PLANE_4] -Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn. +[PLANE_4] { reVC update } +{ Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn. } +Use the right analog stick to accelerate, pull back on the left analog stick to climb, push forwards to descend. Left and right to turn. [HELP55] Press the ~h~~k~~PED_FIREWEAPON~~w~ button to attack the chef. @@ -13980,8 +13981,9 @@ To ~h~pick up a bomb~w~, simply maneuver the RC helicopter next to it. The RC He [TEX3_37:SERG3] Pushing ~h~back on the analog stick ~w~decreases the rotor speed, causing the helicopter to~h~ descend. -[TEX3_38:SERG3] -Pressing the ~h~~k~~VEHICLE_ACCELERATE~ ~w~button increases the rotor speed, causing the helicopter to ~h~ascend. +[TEX3_38:SERG3] { reVC update } +{ Pressing the ~h~~k~~VEHICLE_ACCELERATE~ ~w~button increases the rotor speed, causing the helicopter to ~h~ascend. } +Pushing ~h~forward on the analog stick ~w~increases the rotor speed, causing the helicopter to ~h~ascend. [TEX3_39:SERG3] ~g~To drop a bomb press the ~h~~k~~VEHICLE_HANDBRAKE~ ~g~button. @@ -14400,6 +14402,27 @@ NONE [FEA_FMN] RADIO OFF +[FEC_DS2] +DUALSHOCK 2 + +[FEC_DS3] +DUALSHOCK 3 + +[FEC_DS4] +DUALSHOCK 4 + +[FEC_360] +XBOX 360 CONTROLLER + +[FEC_ONE] +XBOX ONE CONTROLLER + +[FEC_TYP] +GAMEPAD TYPE + +[FET_AGS] +GAMEPAD SETTINGS + { end of file } [DUMMY] THIS LABEL NEEDS TO BE HERE !!! diff --git a/utils/gxt/french.txt b/utils/gxt/french.txt index a817ff41..a1bd7baa 100644 --- a/utils/gxt/french.txt +++ b/utils/gxt/french.txt @@ -6688,8 +6688,9 @@ Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ ~w~pour ~h~tirer~w~ avec le fusil [PLANE_H] Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner. -[PLANE_4] -Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner. +[PLANE_4] { reVC update } +{Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner.} +Utilise le joystick analogique droit pour accélérer, appuie vers le bas sur le joystick analogique gauche pour monter et vers le haut pour descendre. Gauche et droite pour tourner. [HELP55] Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ pour attaquer le chef. @@ -14262,8 +14263,9 @@ Pour ~h~ramasser une bombe~w~, manoeuvre l'hélico radiocommandé à côté. Il [TEX3_37:SERG3] Pousse le ~h~joystick analogique droit vers le haut ~w~pour vitesse la vitesse du rotor et ainsi faire ~h~ monter l'hélicoptère. -[TEX3_38:SERG3] -Pousse le ~h~~k~~VEHICLE_ACCELERATE~ ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère. +[TEX3_38:SERG3] { reVC update } +{Pousse le ~h~~k~~VEHICLE_ACCELERATE~ ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère.} +Pousse le ~h~joystick analogique droit vers la bas ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère. [TEX3_39:SERG3] ~g~Appuie sur la touche ~h~~k~~VEHICLE_HANDBRAKE~ ~g~pour larguer une bombe. diff --git a/utils/gxt/german.txt b/utils/gxt/german.txt index a2c86414..449e4993 100644 --- a/utils/gxt/german.txt +++ b/utils/gxt/german.txt @@ -6640,8 +6640,9 @@ Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um das Prãzisionsgewehr ~h~abzufeu [PLANE_H] Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel. -[PLANE_4] -Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel. +[PLANE_4] { reVC update } +{Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel.} +Benutze den rechten Analog-Stick, um zu beschleunigen. Ziehe den linken Analog-Stick, um zu steigen oder drücke ihn nach vorn, um zu sinken. Links bzw. Rechts für Richtungswechsel. [HELP55] Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um den Küchenchef anzugreifen. @@ -14262,8 +14263,9 @@ Um ~h~eine Bombe aufzunehmen~w~, steuere den Helikopter direkt über sie. Der He [TEX3_37:SERG3] Zieh den ~h~ Rechten Analog-Stick zurück~w~, um die Rotorgeschwindigkeit zu erhöhen, der Helikopter ~h~ gewinnt dann an Höhe. -[TEX3_38:SERG3] -Drück den ~h~ ~k~~VEHICLE_ACCELERATE~~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe. +[TEX3_38:SERG3] { reVC update } +{Drück den ~h~ ~k~~VEHICLE_ACCELERATE~~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe.} +Drück den ~h~ Rechten Analog-Stick nach vorn~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe. [TEX3_39:SERG3] Um eine Bombe abzuwerfen, drücke die ~h~~k~~VEHICLE_HANDBRAKE~~g~-Taste. diff --git a/utils/gxt/italian.txt b/utils/gxt/italian.txt index 84804cb3..5d8f65f4 100644 --- a/utils/gxt/italian.txt +++ b/utils/gxt/italian.txt @@ -6694,8 +6694,9 @@ Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~ col fucile di precisi [PLANE_H] Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare. -[PLANE_4] -Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare. +[PLANE_4] { reVC update } +{Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare.} +Usa la levetta analogica destra per accelerare, premi la levetta analogica sinistra in basso per salire, in alto per scendere e a sinistra e a destra per curvare. [HELP55] Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per attaccare lo chef. @@ -14271,8 +14272,9 @@ Per raccogliere una bomba, avvicinaci l'elicottero radiocomandato. L'elicottero [TEX3_37:SERG3] Sposta ~h~in basso la levetta analogica destra~w~ per aumentare la velocità del rotore e ~h~far salire~w~ l'elicottero. -[TEX3_38:SERG3] -Sposta ~h~~k~~VEHICLE_ACCELERATE~~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero. +[TEX3_38:SERG3] { reVC update } +{Sposta ~h~~k~~VEHICLE_ACCELERATE~~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero.} +Sposta ~h~in alto la levetta analogica destra~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero. [TEX3_39:SERG3] ~g~Per sganciare una bomba, premi il tasto ~h~~k~~VEHICLE_HANDBRAKE~~g~. diff --git a/utils/gxt/spanish.txt b/utils/gxt/spanish.txt index 836d062a..5deb3f89 100644 --- a/utils/gxt/spanish.txt +++ b/utils/gxt/spanish.txt @@ -6485,8 +6485,9 @@ Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para ~h~disparar~w~ el rifle de francotirador. [PLANE_H] Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar. -[PLANE_4] -Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar. +[PLANE_4] { reVC update } +{Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar.} +Utiliza el joystick analógico derecho para acelerar, tira hacia atrás el joystick analógico izquierdo para ascender, empújalo hacia adelante para descender. Para girar muévelo a izquierda o derecha. [HELP55] Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para atacar al chef. @@ -13952,8 +13953,9 @@ Para ~h~recoger una bomba~w~, simplemente dirige el helicóptero RC hasta ella. [TEX3_37:SERG3] Si empujas ~h~el joystick analógico derecho hacia atrás~w~, aumentarás la velocidad del rotor y así ~h~ascenderá~w~. -[TEX3_38:SERG3] -Pulsa ~h~~k~~VEHICLE_ACCELERATE~~w~ para aumentar la velocidad del rotor y así ~h~ascender~w~. +[TEX3_38:SERG3] { reVC update } +{Pulsa ~h~~k~~VEHICLE_ACCELERATE~~w~ para aumentar la velocidad del rotor y así ~h~ascender~w~.} +Si empujas ~h~el joystick analógico derecho hacia adelante~w~disminuye la velocidad del rotor aumenta haciendo que el helicóptero ~h~descienda. [TEX3_39:SERG3] ~g~Para soltar una bomba pulsa ~h~~k~~VEHICLE_HANDBRAKE~~w~. From bf8687590eba833a0d24eae13108019b0105909f Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 09:03:13 +0200 Subject: [PATCH 2/8] Add textures --- gamefiles/models/frontend_ds2.txd | Bin 0 -> 329976 bytes gamefiles/models/frontend_ds3.txd | Bin 0 -> 328360 bytes gamefiles/models/frontend_ds4.txd | Bin 0 -> 328360 bytes gamefiles/models/frontend_x360.txd | Bin 0 -> 328360 bytes gamefiles/models/frontend_xone.txd | Bin 0 -> 328360 bytes gamefiles/models/ps3btns.txd | Bin 0 -> 126760 bytes gamefiles/models/x360btns.txd | Bin 126760 -> 126760 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 gamefiles/models/frontend_ds2.txd create mode 100644 gamefiles/models/frontend_ds3.txd create mode 100644 gamefiles/models/frontend_ds4.txd create mode 100644 gamefiles/models/frontend_x360.txd create mode 100644 gamefiles/models/frontend_xone.txd create mode 100644 gamefiles/models/ps3btns.txd diff --git a/gamefiles/models/frontend_ds2.txd b/gamefiles/models/frontend_ds2.txd new file mode 100644 index 0000000000000000000000000000000000000000..7cf6c41f3891ac3cf1dd41def0f2b4630cb75688 GIT binary patch literal 329976 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 literal 0 HcmV?d00001 diff --git a/gamefiles/models/frontend_ds3.txd b/gamefiles/models/frontend_ds3.txd new file mode 100644 index 0000000000000000000000000000000000000000..dfd11e263fb8d6935671bf5b3c5f94d66bab16b5 GIT binary patch literal 328360 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 JCNg~g{{iT7WC{QP literal 0 HcmV?d00001 diff --git a/gamefiles/models/frontend_ds4.txd b/gamefiles/models/frontend_ds4.txd new file mode 100644 index 0000000000000000000000000000000000000000..88f317f18ea0f70b1bcfc7989041ddde0bc7972a GIT binary patch literal 328360 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

#rME| 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 literal 0 HcmV?d00001 diff --git a/gamefiles/models/frontend_x360.txd b/gamefiles/models/frontend_x360.txd new file mode 100644 index 0000000000000000000000000000000000000000..f09ce09056a1ad1c33b170ad794d31ea0ed4cb92 GIT binary patch literal 328360 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 literal 0 HcmV?d00001 diff --git a/gamefiles/models/frontend_xone.txd b/gamefiles/models/frontend_xone.txd new file mode 100644 index 0000000000000000000000000000000000000000..a9c297aedb6d161e41ce14c7394b4a269d5864da GIT binary patch literal 328360 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

I&<@%yv*XL{g8@7sH;kJEk{?)b1rQ#^<+ z84p5Z`h9=;hWa}_qTfeoSk+Zy^}lx1Zw!3oj~$7a{@OYnmFF3`zR&f1BQM`4?_a<5 z64lot<6Am@uceg5_#^vG3_p$Cr7Vh>@i%U&_Cq7g=>LlezhnQ&@rC}k+=nQ% z|B0Kr{7=pPzu54n(_eax&!PBX#14`d?>P5e za`o2*doKOg=>|UHkqoeE5s$Jt+JgHh@q+Du%9_82qEl;*;aPL>F48)1p0g+Gt<1({ua# zcKY34Fm@6@@jaD?AMOiN{hyr4=@8A|&`-=`BaL)FJ8-m` z-(QSG&hdDYr)0dzPv>`E+lXHui5#H!E#>WIXJ@@l@iB~eY7yM$4KMsWE8~sT=UcqL zUXlKl0uQ}F&zUDo^Q>>{p7zPJ)jc&IWhzK zfQ-+VUpzRmpPuOYZ2E`Xqr}i2>Yv*WpgkJ&ON6YX_C?xusK}3@EJ`VOk{v(d3-um@ z3yUHDEx`MO*@uqL;NK_B`1ccS?*;o_F-CvdXDgHnH z2){M{{RL~kv41VPe#B#3jz97jCVg0AJG$!eC*+}2_;-n_Vfv+9%&k%4<(ES?>e`Wi8F-`DOf1`V) zKlZNCw_d_Js|tM7zlaAT<-rl}6v3a%-e7;earCe5K|T{{U)wdh_$whxfAjfoTpIIl zHhbiG>VLcZP8r(8pU3*YH;}RaLHsIx|5JkaRrc|CzG+Q;Xa(~BG+;l69bJL7 zA4q$W&FCq4<$>AB*^*d<*N5JznG#q<>(vm&c=lyV79q zb#lKa@M0>-(1)o1Ph$QM&j~-RzZ(14Zl9atbn2Nx;tLdHf4GjgHi2Jm`-9{^)iR#G zs>`R}znbgky=6KbBK@^DaDR|D($I&u!G}%KdOS)l{=EDVwtL~0-m*3Hg7N-_&+D%X zx;JpIsXvPRoO*pX!9arg@F%{{mnM0$-v1KwPp#8T;h!$; z56BOIcf@{a($-&`=TciJzfnv@eft8}_15?vAj(pYkrIcgEv~6Mo=*X0>k? zAC~kz_`iRyPmc#T)MW05Ck
yzcYKLpI_$ne3=;}u&uKU&-Ay#J>Gq~x^oL*N(w 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 O>-Qx7R{MkX-~T@;E0YTV literal 0 HcmV?d00001 diff --git a/gamefiles/models/x360btns.txd b/gamefiles/models/x360btns.txd index 27837c2fd71f7f86ab653b5b42358598b3285178..8d8460af656449496660ff297adc49354da1675b 100644 GIT binary patch delta 3663 zcmdUyU2NM_6vyvL*3{Gb;V~5=7CJ{tD;FN`VzhKg&9xIZg(jY} zy-+Jwe02Z!`1pMMEMH7lUrbjsPa}kU8X#SFlYp-`;nTQo#QzQW93b=ou+zuALU5>lBpi*ai-pt_x+xu2kn2Wcfi!27-@78OSBOAX-Ba{3z2{2OkIfl zGG$wF=Gr4VV$Ob@QEk_y5-1v~PtUDU9KP~>DhE{T~vp1~B&ee{c*+6o_gS(V^E7!(A{Z68l?SzXr? zk^9ekY-Uns2yl?XFQw?hu1YiYnRG-8R+Ip|Bh$6!xxP*e+;6rGKj}5Yk9zEC{97d@ zo5y0uMVNnr#J8A{`=If=Ef{?0VcJiO*VnuC8zGlr8>JTX?2<&?n{P84cDA9(Dle-( zbLF`j@yDXw$F~P(FroA9ZtG!|LFQO*a*ffV+_-2L8MlT)c zI4Fz-{E5APTp-$p@o-JnR_!hd?wk{*DABUF|DeTkIAqH{J4bUvT?hAL2h!d@FSIRA z(_F)Bu{nMC1{n3L-Wf)xY?ffM)<7p9aq2VO`3u zBzF821G~;nzHBD=shSNMKf`Z~1_{;JR6$7|0$YSD%rO}8l;?N*DLZ~=Rx0Fo6h_y< zfK@TSr?@Q^zl}+Zp9qSlfu`R+MxmB_lWX1tA)bIz_>MxGJlX^8&Hu%RuO!3ASAZw- z1Q!JPrnx%|?PYnQWWr!eawQpiR3c|9BRI~LL0uh7k`SNxyA;IlPH$fW zai4m0UrC5hEk6;&m0J_=4Z%Dn!R1?<;PDYIPgOw)hJT(i8LoWc0b7VG%p_c|*_fdx nr~mhTaTx63&7?5A9elAJj~L%2%5oYgvd&GqjZwgd@xAyD@5V1z delta 3913 zcmds4Ur1A76u)OSoiyzlSW>wr&6tIhb_)xmv4?VdX^EG@rpz`iNlccKOs5hfhWHR$ z`t=YbfhkH*IlUkVN)$eb7_sn4deetuOZp?Gt?#?r+%$K+!yeL)d%54?{JwL~Ip6O) z=ia{Aq`uiCW*#$eqUi@rB3nsXjVfW?eS#P!^5YV|)_~K=QNrR?S!5P$kPk}XBw#0<| z6;PnI`zY#s3M5CgWxkPt{{D!p)@tzJZDF)p3wT7dWxjzCjGm+wZX?VTkQcIS=jkv-?7rb4QpF>3f3c=5S|)h51idVS z34XOSJ3=tKPluTqSS8%wa*p1J8R$}Faqr8a7s4l%>_8)-4w=*vLb!qxGnx2pQQO-K z4}f7irP&b|u}f=QUN7SsaMf6XPUgZ9^x-D-Z1=vS7c$J!zU>ZvjKhBFN#k zbu3ZfgmIpx%`)jd4m4j9#dUU^F1JiY$J?PosTf-u9p|)wOVEF&15`;tCdBwGnGa_- zs#eAP(3lB>#cajQR`UJ?ra+c}4%w=@e%I#nW1Am0agkU!-=$#sFb From d6068c421d436c05a8aa562bb46b3242e5d0a78a Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 09:08:02 +0200 Subject: [PATCH 3/8] Add undef --- src/core/config.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/core/config.h b/src/core/config.h index 84e8e603..152ba336 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -479,6 +479,7 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually #undef RADIO_OFF_TEXT #undef MAP_ENHANCEMENTS +#undef GAMEPAD_MENU #undef MUCH_SHORTER_OUTRO_SCREEN #undef CUSTOM_FRONTEND_OPTIONS From 5f3e68ec45cd7cd30e94719a9ff9625bb7545e5a Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 09:16:04 +0200 Subject: [PATCH 4/8] Save vibration setting --- src/core/re3.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/re3.cpp b/src/core/re3.cpp index 3388b56a..779a7d13 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -409,6 +409,7 @@ bool LoadINISettings() ReadIniIfExists("Controller", "HorizantalMouseSens", &TheCamera.m_fMouseAccelHorzntl); ReadIniIfExists("Controller", "InvertMouseVertically", &MousePointerStateHelper.bInvertVertically); ReadIniIfExists("Controller", "DisableMouseSteering", &CVehicle::m_bDisableMouseSteering); + ReadIniIfExists("Controller", "Vibration", &FrontEndMenuManager.m_PrefsUseVibration); ReadIniIfExists("Audio", "SfxVolume", &FrontEndMenuManager.m_PrefsSfxVolume); ReadIniIfExists("Audio", "MusicVolume", &FrontEndMenuManager.m_PrefsMusicVolume); ReadIniIfExists("Audio", "MP3BoostVolume", &FrontEndMenuManager.m_PrefsMP3BoostVolume); @@ -501,6 +502,7 @@ void SaveINISettings() StoreIni("Controller", "HorizantalMouseSens", TheCamera.m_fMouseAccelHorzntl); StoreIni("Controller", "InvertMouseVertically", MousePointerStateHelper.bInvertVertically); StoreIni("Controller", "DisableMouseSteering", CVehicle::m_bDisableMouseSteering); + StoreIni("Controller", "Vibration", FrontEndMenuManager.m_PrefsUseVibration); StoreIni("Audio", "SfxVolume", FrontEndMenuManager.m_PrefsSfxVolume); StoreIni("Audio", "MusicVolume", FrontEndMenuManager.m_PrefsMusicVolume); StoreIni("Audio", "MP3BoostVolume", FrontEndMenuManager.m_PrefsMP3BoostVolume); From 3c7a7bc8a7ca5a9bfff709fc53d3036597cc2248 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Wed, 10 Feb 2021 13:29:02 +0200 Subject: [PATCH 5/8] Fixes --- src/core/Frontend.cpp | 13 +++++-------- src/core/Frontend.h | 4 ++-- src/core/MenuScreens.cpp | 7 ------- src/core/MenuScreensCustom.cpp | 9 +-------- 4 files changed, 8 insertions(+), 25 deletions(-) diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 141f46f8..31580e0e 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -125,7 +125,7 @@ bool CMenuManager::m_PrefsMarketing = false; bool CMenuManager::m_PrefsDisableTutorials = false; #endif // !MASTER -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU uint32 TimeToStopPadShaking; #endif @@ -1089,7 +1089,7 @@ CMenuManager::DrawStandardMenus(bool activeScreen) } switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) { -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU case MENUACTION_CTRLVIBRATION: if (m_PrefsUseVibration) rightText = TheText.Get("FEM_ON"); @@ -2300,9 +2300,6 @@ CMenuManager::DrawBackground(bool transitionCall) break; case MENUPAGE_SKIN_SELECT: case MENUPAGE_KEYBOARD_CONTROLS: -#ifdef GAMEPAD_MENU - case MENUPAGE_CONTROLLER_SETTINGS: -#endif menuBg.topLeft_x = 14.0f; menuBg.topLeft_y = 39.0f; menuBg.topRight_x = 636.0f; @@ -4926,7 +4923,7 @@ CMenuManager::ProcessUserInput(uint8 goDown, uint8 goUp, uint8 optionSelected, u if (changeAmount != 0) { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU case MENUACTION_CTRLCONFIG: CPad::GetPad(0)->Mode += changeAmount; if (CPad::GetPad(0)->Mode > 3) @@ -5077,7 +5074,7 @@ void CMenuManager::ProcessOnOffMenuOptions() { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU case MENUACTION_CTRLVIBRATION: m_PrefsUseVibration = !m_PrefsUseVibration; if (m_PrefsUseVibration) { @@ -5551,7 +5548,7 @@ CMenuManager::SwitchMenuOnAndOff() m_bStartUpFrontEndRequested = false; m_bShutDownFrontEndRequested = false; -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU // Reset pad shaking. if (TimeToStopPadShaking && TimeToStopPadShaking < CTimer::GetTimeInMillisecondsPauseMode()) { CPad::StopPadsShaking(); diff --git a/src/core/Frontend.h b/src/core/Frontend.h index fc09f2dc..112ea7ad 100644 --- a/src/core/Frontend.h +++ b/src/core/Frontend.h @@ -199,7 +199,7 @@ enum eMenuScreen MENUPAGE_MOUSE_CONTROLS = 31, MENUPAGE_PAUSE_MENU = 32, MENUPAGE_NONE = 33, // Then chooses main menu or pause menu -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU MENUPAGE_CONTROLLER_SETTINGS, #endif #ifdef LEGACY_MENU_OPTIONS @@ -284,7 +284,7 @@ enum eMenuAction MENUACTION_DRAWDIST, MENUACTION_MOUSESENS, MENUACTION_MP3VOLUMEBOOST, -#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU) +#ifdef GAMEPAD_MENU MENUACTION_CTRLVIBRATION, MENUACTION_CTRLCONFIG, #endif diff --git a/src/core/MenuScreens.cpp b/src/core/MenuScreens.cpp index 72e19c49..20484389 100644 --- a/src/core/MenuScreens.cpp +++ b/src/core/MenuScreens.cpp @@ -277,13 +277,6 @@ CMenuScreen aScreens[] = { { "", 0, 0, }, #ifdef LEGACY_MENU_OPTIONS - // MENUPAGE_CONTROLLER_SETTINGS - { "FET_CON", MENUPAGE_OPTIONS, 0, - MENUACTION_CTRLCONFIG, "FEC_CCF", SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS, 0, 0, 0, - MENUACTION_CTRLVIBRATION, "FEC_VIB", SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS, 0, 0, 0, - MENUACTION_GOBACK, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE, 0, 0, 0, - }, - // MENUPAGE_DEBUG_MENU { "FED_DBG", MENUPAGE_NONE, 0, MENUACTION_RELOADIDE, "FED_RID", SAVESLOT_NONE, MENUPAGE_NONE, 0, 0, 0, diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index 69af9acf..c4a415c2 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -629,7 +629,7 @@ CMenuScreenCustom aScreens[] = { #ifdef GAMEPAD_MENU MENUACTION_CHANGEMENU, "FET_AGS", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, MENUALIGN_CENTER, #endif -#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS +#ifdef DETECT_JOYSTICK_MENU MENUACTION_CHANGEMENU, "FEC_JOD", {nil, SAVESLOT_NONE, MENUPAGE_DETECT_JOYSTICK}, 0, 0, MENUALIGN_CENTER, #endif MENUACTION_CHANGEMENU, "FEC_MOU", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_CENTER, @@ -703,13 +703,6 @@ CMenuScreenCustom aScreens[] = { SELECT_CONTROLLER_TYPE MENUACTION_GOBACK, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE }, 0, 0, MENUALIGN_LEFT, }, -#elif defined(LEGACY_MENU_OPTIONS) - // MENUPAGE_CONTROLLER_SETTINGS = 4 - { "FET_CON", MENUPAGE_OPTIONS, nil, nil, - MENUACTION_CTRLCONFIG, "FEC_CCF", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0, - MENUACTION_CTRLVIBRATION, "FEC_VIB", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0, - MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, 0, - }, #endif #ifdef LEGACY_MENU_OPTIONS // MENUPAGE_DEBUG_MENU = 18 From 7c485560c555723aac12027723ae046b4da44561 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Thu, 11 Feb 2021 04:28:21 +0200 Subject: [PATCH 6/8] Translated string fix --- gamefiles/TEXT/spanish.gxt | Bin 454854 -> 454838 bytes utils/gxt/spanish.txt | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/gamefiles/TEXT/spanish.gxt b/gamefiles/TEXT/spanish.gxt index 7ef6c0124b2336ea63b96e7ca56699b1aca1b780..454e773465ffa298b8f261a0260ae3486341ab49 100644 GIT binary patch delta 159 zcmX^1P Date: Thu, 11 Feb 2021 04:36:00 +0200 Subject: [PATCH 7/8] Fix borders --- src/core/MenuScreensCustom.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/MenuScreensCustom.cpp b/src/core/MenuScreensCustom.cpp index c4a415c2..7d6f5d13 100644 --- a/src/core/MenuScreensCustom.cpp +++ b/src/core/MenuScreensCustom.cpp @@ -695,7 +695,7 @@ CMenuScreenCustom aScreens[] = { { "", 0, nil, nil, }, #ifdef GAMEPAD_MENU - { "FET_AGS", MENUPAGE_CONTROLLER_PC, new CCustomScreenLayout({40, 78, 25, true}), nil, + { "FET_AGS", MENUPAGE_CONTROLLER_PC, new CCustomScreenLayout({40, 78, 25, true, true}), nil, MENUACTION_CTRLCONFIG, "FEC_CCF", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 40, 76, MENUALIGN_LEFT, MENUACTION_CTRLDISPLAY, "FEC_CDP", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 0, 0, MENUALIGN_LEFT, INVERT_PAD_SELECTOR From 4f27a28762d3700946c064a315cd9ed0f104f321 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Thu, 11 Feb 2021 05:03:41 +0200 Subject: [PATCH 8/8] More fixes --- gamefiles/TEXT/american.gxt | Bin 423838 -> 423830 bytes gamefiles/TEXT/french.gxt | Bin 468076 -> 468068 bytes gamefiles/TEXT/german.gxt | Bin 459742 -> 459734 bytes gamefiles/TEXT/italian.gxt | Bin 457046 -> 457038 bytes gamefiles/TEXT/spanish.gxt | Bin 454838 -> 454830 bytes src/core/ControllerConfig.cpp | 4 ++-- src/core/Frontend.cpp | 8 ++++---- utils/gxt/american.txt | 8 ++++---- utils/gxt/french.txt | 8 ++++---- utils/gxt/german.txt | 8 ++++---- utils/gxt/italian.txt | 8 ++++---- utils/gxt/spanish.txt | 8 ++++---- 12 files changed, 26 insertions(+), 26 deletions(-) diff --git a/gamefiles/TEXT/american.gxt b/gamefiles/TEXT/american.gxt index f4afab9eb0f61be5dc3a9315887d4bc531836844..1039deb887ddb84d2070b215cee239b9d7f859c5 100644 GIT binary patch delta 12714 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 XzdEJSUj_a3p})$PzdF@-&9eUkMFL=K delta 12719 zcmZA8dz2LQl?U)|4Fe*fS=5nX2qH4fEGRHtkA49|rmG**J<~6{dmc=XMl#_jj!4wt zEQ_?FAxexviXcH`k@Z1XLI^`pSwu7}3y3Z;gdjmfP+4LKB2f-e)V)>p``tg5bLN~+ z-TJ-iS5>#FtBO@0*R1=vX8Fi+@Q)P;7YfOY3QYZzum<#;64rs+&IlX8q4UB%py`VW znBh!o3)SuXTA1oq4(jK|sqTr9!c^B7XFH#@``Q|HT+U{w!mgB9K@}>$Eld?A%oe83 z_TNQLw#KL~aGz_ciriw?R26FldDv<~$ z?Xh8f*|j|r$A0A6o{8-%$=PBoMXp*~iDV=e$T*Ri@z+JIN@k90DePSRv|hRJDa zoc_HO>5puCIF(N}NoBWLH<1TzM-wo402g$L@4(m)Tx+ zZExk?M_toQqx0X$`K&W5sb9Kw%I|XR93Q{wk9;^1D^U5wQF5f5h^3M$awqJCTq;9T zbml$Vb}<#J|4hzCTJ1r2KX7d~y67|4cB4IC_eUX?Z??;40DK zh3gU>f?Gb9E}(a%Fts|>5~fzSSg#GL_8gJ5a=>xx!$GymGV983)Yd$*o=WDErhTqn z3{YOkC!?iE3Jd#U-?&0ij#%lz)isYis@UgY$v#4RuW(Ic#H7Ca2mia`nM9+DBx3pe z^c?jzaY(Hav~C{qkg})m_e1_z(P$2=pc6FZE2#l2V+XN=9l`}^&5LPQit?I@CDz}r zdcVBj8R{S(^?KDXREv|z!E2r5eDt;;B5nRoVqMjYYCUV){_dy!<)UBcd z?Y|=1#2j`6i`Y@DV#lzP9mgSdGdh3ewi(jGn8!9@Y!mTdxQto6V4{~Dfw|o&q^dM4 z8>MOMNA7gvI&E=+ZDIjCf_>~LF0x}7^PjSA9C^p(sHz*y=;aj&>}Mx2X_u%#GxV4= z?Xu(2!7v8CBFY3!JTGj}p!cv%oM1=rIXjAB<=t*&!yALaj-!R$jN8}=EM+ILiQR&O z>{gs+r*Pw|qJ5gV-E0%NJ#M^g(7vhogR`Kiv^B%oCXOF-<64Nyyd!Pm^dDXOsL@N( z)XuI8PFy!=*DU+HurG|IU)qj^?Q3AClUHJP!ojv@l(M~o7BrmW6*>lQa4JyTKt0=s zCbl29u>)Ab4&v?_N^wq`A*_*c)r%c$6>qc4)G;sU=yb9e4M;UGkL|-Uwja;41K7n5 z;%X;}*>yvhAx$~AmrXZUYz?2@qsa30^SJ!}j4}wjXQR0StAro?SVJAUlM-wBf~Ewu%*OnrXI< zp+9$aaXIQW3`}qr$Uel`w2#>V^s<9k!46@gw9ktzY!wID8a`m_xXd;%Y?G7!X={8w zOmcFvZ9lfN131MFVziTz?J^;(lJ7mJWCkbgl)|Xh205Tf+jjj#X>}+t@xFCR6^mEBkSlR|GJ~xscfLAjYvn zXps(j(aokCVz!3I**Z3}4Vcb_huRGKu$b*H<2Ww_Q14tk>_S0�~+@#e?D@FUGJ{ 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 F{~w=rUS9wJ diff --git a/gamefiles/TEXT/french.gxt b/gamefiles/TEXT/french.gxt index 79e594ecea315973963ef93d6ec0f04d30f30e70..4dbb44f4ebe9b8ab5f99f2f264aaf0df6a6bce3a 100644 GIT binary patch delta 5902 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 delta 5912 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 diff --git a/gamefiles/TEXT/german.gxt b/gamefiles/TEXT/german.gxt index c51d56e20ff7ee1df5f52c5089b391aaa6225fea..27ee143cf4016a10398b752d6d29de7ab4155aed 100644 GIT binary patch delta 5770 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 delta 5790 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 ItIluyf9giPSpWb4 diff --git a/gamefiles/TEXT/italian.gxt b/gamefiles/TEXT/italian.gxt index 144356ec74442fcee446431ff7edf398cc9e3903..a67d957dcc8070b430b06c07195eb125e49fa783 100644 GIT binary patch delta 6760 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 Bq9*_V delta 6785 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 delta 7045 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 diff --git a/src/core/ControllerConfig.cpp b/src/core/ControllerConfig.cpp index d95abd24..2c79b6aa 100644 --- a/src/core/ControllerConfig.cpp +++ b/src/core/ControllerConfig.cpp @@ -2532,7 +2532,7 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act O, /* PED_SPRINT */ \ R3, /* PED_LOOKBEHIND */ \ L3, /* PED_DUCK */ \ - L1, /* PED_ANSWER_PHONE */ \ + T, /* PED_ANSWER_PHONE */ \ VFB(O) /* VEHICLE_FIREWEAPON */ \ X, /* VEHICLE_ACCELERATE */ \ Q, /* VEHICLE_BRAKE */ \ @@ -2579,7 +2579,7 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act X, /* PED_SPRINT */ \ R3, /* PED_LOOKBEHIND */ \ L3, /* PED_DUCK */ \ - L1, /* PED_ANSWER_PHONE */ \ + O, /* PED_ANSWER_PHONE */ \ VFB(R1) /* VEHICLE_FIREWEAPON */ \ RSU, /* VEHICLE_ACCELERATE */ \ RSD, /* VEHICLE_BRAKE */ \ diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 31580e0e..97525388 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -6175,13 +6175,13 @@ CMenuManager::PrintController(void) CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR")); CFont::SetJustifyOn(); CFont::SetWrapx(SCREEN_WIDTH); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_ATT")); CFont::SetRightJustifyOn(); CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM")); CFont::SetJustifyOn(); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_LOF")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RUN")); - CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ATT")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_LOF")); + CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN")); CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC")); CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3")); CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3")); diff --git a/utils/gxt/american.txt b/utils/gxt/american.txt index 9bc1c96d..99da103b 100644 --- a/utils/gxt/american.txt +++ b/utils/gxt/american.txt @@ -4456,11 +4456,11 @@ Press the ~h~~k~~TOGGLE_SUBMISSIONS~ button~w~ to toggle Paramedic missions on o [GUN_H1] ~w~Press the~h~ ~k~~PED_SPRINT~ ~w~button to buy. Press the~h~ ~k~~VEHICLE_ENTER_EXIT~ ~w~button to exit. -[PU_CF3] -Press the ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~button to replace current weapon in this slot. +[PU_CF3] { reVC update } +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to replace current weapon in this slot. -[PU_CF4] -Press the ~h~~k~~VEHICLE_ENTER_EXIT~ ~w~button to replace current weapon in this slot. +[PU_CF4] { reVC update } +Press the ~h~~k~~PED_ANSWER_PHONE~ ~w~button to replace current weapon in this slot. [HELP9_B] Press the~h~ ~k~~PED_FIREWEAPON~ button ~w~to ~h~fire~w~ the sniper rifle. diff --git a/utils/gxt/french.txt b/utils/gxt/french.txt index a1bd7baa..4eea0ef4 100644 --- a/utils/gxt/french.txt +++ b/utils/gxt/french.txt @@ -6214,11 +6214,11 @@ Appuie sur la ~h~~k~~TOGGLE_SUBMISSIONS~~w~ pour activer ou désactiver les miss [GUN_H1] ~w~Appuie sur la~h~ ~k~~PED_SPRINT~~w~ pour acheter. ~w~Appuie sur la~h~ ~k~~VEHICLE_ENTER_EXIT~~w~ pour quitter. -[PU_CF3] -Appuie sur la ~h~~k~~VEHICLE_ENTER_EXIT~~w~ pour remplacer l'arme actuelle dans cet emplacement. +[PU_CF3] { reVC update } +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~~w~ pour remplacer l'arme actuelle dans cet emplacement. -[PU_CF4] -Appuie sur la ~h~~k~~VEHICLE_ENTER_EXIT~~w~ pour remplacer l'arme actuelle dans cet emplacement. +[PU_CF4] { reVC update } +Appuie sur la ~h~~k~~PED_ANSWER_PHONE~~w~ pour remplacer l'arme actuelle dans cet emplacement. [HELP9_B] Appuie sur la~h~ ~k~~PED_FIREWEAPON~ ~w~pour ~h~tirer~w~ avec le fusil à lunette. diff --git a/utils/gxt/german.txt b/utils/gxt/german.txt index 449e4993..589ba084 100644 --- a/utils/gxt/german.txt +++ b/utils/gxt/german.txt @@ -6175,11 +6175,11 @@ Drücke die ~h~~k~~TOGGLE_SUBMISSIONS~~w~, um Krankenwagen-Missionen an- oder ab [GUN_H1] ~w~Drück die~h~ ~k~~PED_SPRINT~~w~, um zu kaufen. ~w~Drück die~h~ ~k~~VEHICLE_ENTER_EXIT~~w~, um zu gehen. -[PU_CF3] -Drück die ~h~~k~~VEHICLE_ENTER_EXIT~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. +[PU_CF3] { reVC update } +Drück die ~h~~k~~PED_ANSWER_PHONE~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. -[PU_CF4] -Drück die ~h~~k~~VEHICLE_ENTER_EXIT~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. +[PU_CF4] { reVC update } +Drück die ~h~~k~~PED_ANSWER_PHONE~~w~, um die augenblickliche Waffe in diesem Slot auszutauschen. [HELP9_B] Drücke die~h~ ~k~~PED_FIREWEAPON~~w~, um das Prãzisionsgewehr ~h~abzufeuern~w~. diff --git a/utils/gxt/italian.txt b/utils/gxt/italian.txt index 5d8f65f4..e1edd771 100644 --- a/utils/gxt/italian.txt +++ b/utils/gxt/italian.txt @@ -6007,11 +6007,11 @@ Premi il ~h~~k~~TOGGLE_SUBMISSIONS~~w~ per attivare o disattivare le missioni In [GUN_H1] ~w~Premi il ~h~~k~~PED_SPRINT~~w~ per comprare. ~w~Premi il ~h~~k~~VEHICLE_ENTER_EXIT~~w~ per uscire. -[PU_CF3] -Premi il ~h~~k~~VEHICLE_ENTER_EXIT~~w~ per sostituire l'arma attuale con quella presente in questo slot. +[PU_CF3] { reVC update } +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per sostituire l'arma attuale con quella presente in questo slot. -[PU_CF4] -Premi il ~h~~k~~VEHICLE_ENTER_EXIT~~w~ per sostituire l'arma attuale con quella presente in questo slot. +[PU_CF4] { reVC update } +Premi il ~h~~k~~PED_ANSWER_PHONE~~w~ per sostituire l'arma attuale con quella presente in questo slot. [HELP9_B] Premi il ~h~~k~~PED_FIREWEAPON~~w~ per sparare con il fucile di precisione. diff --git a/utils/gxt/spanish.txt b/utils/gxt/spanish.txt index 93524500..6163a1fe 100644 --- a/utils/gxt/spanish.txt +++ b/utils/gxt/spanish.txt @@ -5834,11 +5834,11 @@ Pulsa ~h~~k~~TOGGLE_SUBMISSIONS~~w~ para comenzar o cancelar las misiones de ATS [GUN_H1] ~w~Pulsa ~h~~k~~PED_SPRINT~~w~ para comprar. ~w~Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~~w~ para salir. -[PU_CF3] -Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~~w~ para reemplazar tu arma actual en esta ranura. +[PU_CF3] { reVC update } +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para reemplazar tu arma actual en esta ranura. -[PU_CF4] -Pulsa ~h~~k~~VEHICLE_ENTER_EXIT~~w~ para reemplazar tu arma actual en esta ranura. +[PU_CF4] { reVC update } +Pulsa ~h~~k~~PED_ANSWER_PHONE~~w~ para reemplazar tu arma actual en esta ranura. [HELP9_B] Pulsa ~h~~k~~PED_FIREWEAPON~ ~w~para ~h~disparar~w~ el rifle de francotirador.