From 55bdaef897c268155eb6d9502b256ad9b15aa8a2 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Fri, 27 Jul 2018 03:51:15 +0900 Subject: [PATCH] colour code is now ARGB instead of RGBA --- .idea/workspace.xml | 51 ++++--- FontTestGDX/demotext.txt | 4 +- FontTestGDX/lib/TerrarumSansBitmap.jar | Bin 57445 -> 57453 bytes FontTestGDX/src/FontTestGDX.kt | 124 +++++++++--------- .../terrarumsansbitmap/gdx/GameFontBase.kt | 14 +- 5 files changed, 94 insertions(+), 99 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e32a325..711d939 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -8,13 +8,8 @@ - - - - - @@ -693,27 +688,27 @@ - - - - - - - - - - - + - - + + + + + + + + + + + + diff --git a/FontTestGDX/demotext.txt b/FontTestGDX/demotext.txt index dc9ef10..daeb713 100644 --- a/FontTestGDX/demotext.txt +++ b/FontTestGDX/demotext.txt @@ -63,9 +63,9 @@ Multilingual brackets; these are the most basic things, right? Fixed-width numbers, because number-crunching matters - 􏀏ᚱ􏄏ᛂ􏈏ᚴ􏌏ᛋ􏐏ᛂ􏔏ᛋ􏘏ᛏ􏜏ᛋ􏠏ᚮ􏤏ᚾ􏨏ᛔ􏬏ᚢ􏰏ᛏ􏴏ᛚ􏸏ᚮ􏼏ᛋ􎼏᛬􍼏ᚱ􌼏ᛂ􋼏ᚴ􊼏ᛋ􉼏ᛋ􈼏ᚢ􇼏ᚼ􆼏ᚾ􅼏ᚢ􄼏ᛘ􃼏ᚢ􂼏ᛚ􁼏ᚾ􀼏ᛏ􀼟ᚮ􀼯᛬􀼿ᛏ􀽏ᚮ􀽟ᛋ􀽯ᛁ􀽿ᚮ􀾏ᚵ􀾟ᛂ􀾯ᚢ􀾿ᛏ􀿏ᚮ􀿟ᚱ􀿯ᛘ􀿿ᛔ􀻿ᚱ􀷿ᛂ􀳿ᚴ􀯿ᛋ􀫿ᛏ􀧿᛭􀣿ᛋ􀟿ᚢ􀛿ᚼ􀗿ᚾ􀓿ᚢ􀏿ᛋ􀋿ᛘ􀇿ᚮ􀃿ᛁ􁃿ᚵ􂃿ᚾ􃃿ᛁ􄃿ᛂ􅃿ᛏ􆃿ᚮ􇃿ᛑ􈃿᛭􉃿ᚵ􊃿ᛂ􋃿ᚢ􌃿ᛏ􍃿ᚮ􎃿ᚱ􀀀 + 􏼀ᚱ􏼐ᛂ􏼠ᚴ􏼰ᛋ􏽀ᛂ􏽐ᛋ􏽠ᛏ􏽰ᛋ􏾀ᚮ􏾐ᚾ􏾠ᛔ􏾰ᚢ􏿀ᛏ􏿐ᛚ􏿠ᚮ􏿰ᛋ􏻰᛬􏷰ᚱ􏳰ᛂ􏯰ᚴ􏫰ᛋ􏧰ᛋ􏣰ᚢ􏟰ᚼ􏛰ᚾ􏗰ᚢ􏓰ᛘ􏏰ᚢ􏋰ᛚ􏇰ᚾ􏃰ᛏ􏃱ᚮ􏃲᛬􏃳ᛏ􏃴ᚮ􏃵ᛋ􏃶ᛁ􏃷ᚮ􏃸ᚵ􏃹ᛂ􏃺ᚢ􏃻ᛏ􏃼ᚮ􏃽ᚱ􏃾ᛘ􏃿ᛔ􏃯ᚱ􏃟ᛂ􏃏ᚴ􏂿ᛋ􏂯ᛏ􏂟᛭􏂏ᛋ􏁿ᚢ􏁯ᚼ􏁟ᚾ􏁏ᚢ􏀿ᛋ􏀯ᛘ􏀟ᚮ􏀏ᛁ􏄏ᚵ􏈏ᚾ􏌏ᛁ􏐏ᛂ􏔏ᛏ􏘏ᚮ􏜏ᛑ􏠏᛭􏤏ᚵ􏨏ᛂ􏬏ᚢ􏰏ᛏ􏴏ᚮ􏸏ᚱ􀀀 -Colour-code that supports 65535 opaque or semi-transparent colours via 4 bit RGBA +Colour-code that supports 65535 opaque or semi-transparent colours via 4 bit ARGB 󿿹Гномът Доцьо приключи спящ в шейна за жаби󿿸 (Bulgarian) 󿿺Љубазни фењерџија чађавог лица хоће да ми покаже штос󿿸 (Serbian) diff --git a/FontTestGDX/lib/TerrarumSansBitmap.jar b/FontTestGDX/lib/TerrarumSansBitmap.jar index c9ba60eaf08f429938c54cdfa214a156915b1083..8fafe34142f2e6decd22041aed88eb0ffd33e3d4 100644 GIT binary patch delta 17006 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

0H9gQO?}+nnVwmz;ABDhs^P*WcM&r;{uR= zf^iI?P!dkV;dtrs*P}a#f+ih*P{c3A17w9Sq3KttyGH+Sbiu^iO6Meh05AQ<2;+;( zpYnWefaY+7A|Psyv~Qg=VKDe`F!=mv2sCMS(EfdvWv}zDOqz*PRziDwH09O?s;(nj zgqzSb9tH&ym~eZPe9}R6Lk<-_V z4RxdDXJpKgJ17ddJMOqcfjb)s4Oe}O>~JPBk4%p4_&tfX2NFAiT>NH*epfac8lL>Q z-Ejv4m!I=fYo*$uY4}!q_*hES+eiNm0yhzyOc`09&*$5wl*?zn>(M}zkz}45-vR>9dsQtX~fag zjkweO2-c9$&Sa@kMW149NOHbnA@D;}=*ouRl*)PB-|h0 zKzt#vs2z`;+J1;>VgB`CoD_AchmwAaf@cGwxhVD2u#x~}XRR+7OW%g%+Fzd|#!_i4 zr`AX2CX*|X9QU@HQEA+|fs<7kqSl{?;uOKm!EGneXWU~#$xGBzPfE5ZQ z1t+pi^^g5wu2}PwCJ!efm=ss%%(lobTGXDIc91dlD;e8}mUT_^&cdx}zMQkw3#6Cg ze_KM`UhUnVz2w^Vf$$16a>jnfzwr<1;)Yr?ZoA)~mSbfqUG0V^pz{>7oh1xlKibE6 z*e5@RH&3(dVr?NAe22zabatnp~*MwVKMZeXW}!%I(kplX9f2*fLY5%2uAel9y|C9ZkrQ zk#0v@Bn%*-ICp0+*#cl}(lzcM{u-$9!CuS?7XH;x^FmoRV5!LS==DQmpJ#Sk_6Q_h z%?pIw(vmt|J2~u#DR+H@TxdBg92)qCa^ceU>^Z!t1^u^rTfC z0MXj6R1s*iBBP9~C(=0bZ^c$fU#eY_FvfxZUb=$HqubEpBvkEgNE81ql)VeZi9wf zo`LC<$51(-M`)G4?$#PpOA#k_XIi^fc4A*Rw$HHD?dkB--}cGfy2_vTypns^Yzy?w zty1mS1ILg?0TnmxxBu*-x>3~JiCh52?ta7I**3h&oGW6gEj~hcUw`(p6RinPw}cb) zbZJH(nngJrT>qB%hB0YNKc6_wa1Z1zh3s2>m+3Rm48M#1Ojh|CY1&lwV8ajT9ka*} z3cfD`CnO;)1@me%d2*I=#v~JLw1n`Ee?H{<(_<*IK$OUD41J<2jJt+HEJNHI>iPE`fbc_1Ac}7K(uOme$qJUs8`Ak8|Jq2*idb4=#45c9vmZ+;^SF%g%1HmyU1c`KM}{D2QDdP3$aYn$`z##NR#wIj^G zD0+itupJWLLbNHxRgrG?1Ng&JeP*O=N zjZjk&>GpX)IV_Xgn~2&DoFdZU*bY$r)4UbCF*FaICdwBY!13mSGIAMn;%y9J~GTxXuAzDN7-B_oG z&(5?)5Om&{HD@dHVO;%|-KevJ*A19n{jL5iD{n||gaL+!<%9Y6mfoS}h68&0gtCub zy%2(9T?>(~`+)IwETlIv*5N;H#Mga)e-P}W;Epsw{6FY}0qb$O>%ZdnOV>l!jzDF7 zP>6@b-sF6HqvDs&WN2^I-cX4Kl@4?=|cHr&DCmqvJyARIZiPpZ~CrIzy z-U#x$)En|hBry%yy;&)NkcQ<^Uy9oO-lXfNJnR8>lwylwx96uU4}PB}dV?AmtmScy68aFjIae(wz10Ge(lbgAn2%vKGou2O0=cP z+3yK^&q(oC_0UN6>Ex+5XwhJ($$?Kh?%FcV?t=#3ly5w2GjR05UTU3rtA4|I>vjWX zYs$Xl8neiViSh4VZnw-F5m%!rU;h57LI`W(=0uQHJhp z!E)X|N8%4%@N4nzjz0{Z|Hv0xx8(9TEet5@FTn_6P(2}J!0b8YYnY@xk=aSH>thqg z6J-5sz>3X{t_Jc(cz1}*oRRk=)xg`4Y#hsdl&`JU!_D2Uhrla^O3v{I+1Qk88#y?R z7VrizbP`zsvj?bom$F8QrGyK!@BB&Y-EX6!?;$z!+pwkhDZ!$|Xji%~~RWw}y5^UbVjq%fgL z6m7x)L>ki?rE4+GX}a@(FTc4MrcLgQLKX6na|6E{8+ATG!vXp+=oa~N z$#x`x{O+~MCk_VfoASfvmyBR#L0%ePT8hSYURpQkP}#ifIl1%!M}pX`ia$*ZU|D)f zDE0O6(bN~l}g=d_|Q0H<`!!Juh%OR zNr>G@|2KV&s7KM82U6&9Gp1*cu;CCTP{j}A`)HuP>(1|xt>&3I5QQs+S2kA=y7t#1 zG7J7a0d&UW1Y??F31yL*zoHQwPcT$HVG{Xmk%ZR5l=CLapqWATOF(Lyrq(3N28r&#C zvWj$!>wvZmDYcB9X`#M&`o2y0$<&Y6wb|5gQ*mvBzR?v1f+K*6!SnP#kDpx7V#=S@2va zg*O~O9eyDjI>rXeMxwEYLNF~CCd!6Af;lr6)gHGTT6x--J?+1?7yJxLV+E|>57aba zjT$8)YT(qgIV_t-GDZ}E5mb9v#e$Q5_BM>E4b~cSI%nAG5hz_EdsDVMf6pxTX1w{p zf=VTB_nrN4jExD!$loc`C;d#q-F;!`zfC~6eMi94cYk~;;G3+mJ0w`Tb@fqB&0u^> zh4`G_b-MWfGIiU>v!F6RwjwruYy;Ps3K9six*XAKk(yr#3d2nT1T_}vC=AHXTayea z&)<^_NzO-->QbLnW$M%1gG-c>-K7^jk_^dg`bx6N4Vca~WuVCk6WxnT_{a%Uo_LaW zsm~wDcj(Wf$#+Q4Wo7b7rZ6{};~f+`n8b!uml0ArlC%A+b3jhZHC}ji6W4~MSA~m3 zL88`uGluad2(pX;O87zlHc;9PN$p9|h9r(5U92#uRWOoOxY{d(^})@3`?8@>da(2+ z&yFaEpv!g3j!=hRxi#Q77FL5qo>=^Yvthwk1l-eYgL505cY1AzhQ?NC=r6RAaHiFFZW7FRIA_dFDpKR~kV*i{?h;8|f%r`VDIt zSHv6hH$U5fRyjH@mRKdwfAe*G--Dqr^H-*6nviv;Bd=tN+| zdO56T=|rG*6JMl2`Z|5pMBs#=@RjI*VFUVA7l}qfG}Z@eZ9)rHl4#fvlO z_!E62R=M9XXu=*^-ik|%rzt_ll7_c?bNgdB?o_b#dK` zI5yyQX}vuh;Z6LK zfXSC>tL`sw65L4ilEJTS8oy*m%%?BP;I0km=#kDM$z4IV8eE;DWvKx=hfloSvwR0X z*Hq?50+&Ye9L61<*BI7IB0}*>NW68Sw{`}lH8sCdOG_qky6;0nqmWE z?YM^F+)G9mn;C|)O}%E)H@$ndNx1G zgPOBbQqk%BWCnmfr7!bW4sUKyxvaqH(=?eg3u1Oy6)WeUA8 z=edHE6PkZZcL(f8uGEG1F!kACik;1WSg*_o4mOn}+dfpG%>^baR@orAsP%lqqV=Mu z=J({!_;ZUCcif7rY(4#bhy{kaM_^jtW1mhce*qRswdHQ$>4EsHKpQxn>!Q64sE%B2?b zfS|b-c(<*2%`FZfXzuE8a1u2b-r*sA_FD_xywr1Xyk|S0yf|0)z6W|pGzv}=#L%W-^K zV$dk|mW6k=raW^)%r+fGMZ9^{6#6@$PIZ-F|Jv?9LHs}_POzu(-*5b7ojC`sM>)&u zY05=0+bGX}ydKF$bB{j1{v6dY?ET7uNPwk!$Uik4Pmug2hAnI~&h~RTl|AvznthXV zb!coM<5Z2`zuS9@zgs!R1=?FBa5k`;PsmG1FzHt9B>_*AMG3m-S}(*9WdralqVr%lrEcq%J1@xxZxRL4vi!!J*y zGy&XJ`8YSjwenaAFGcpIL>=s#q8z3+Ve9Tkem6L)g>x)wNglr^*ReRXq+lr2XyelY zT1}>N*^}Ve_V~FMkZ~*6e@plL#@{>5_*F2sG(wCO z9}vFomb@WJ4iKf@-%-uX2)3_Zxp_4fzW0J2;@j-Dz-CDzojT&=<XwZYHi9ydu_~G1$l7UL4obdw%1pp&-0V{pNW@6TZQ6GgxP!h&L zy=8ycizHlUf57u2kYok7Jr|0|RF@Aj_?#2$+VB27$W;*C2ZjCH`SmrJWY0=ydXL&8 z1?eHuK#vL_xCK(aQ$_4Q()!5SoaCTCpx&W~N0nZV6yA@u1AY(@pH5u>bpu$N@z54O zQz!e6fOmG|C1XZMwudqOL(2kxg*l;Np(4lE`@k=mUeOz;K*8I?{F^h~FTw7MAK(5$ z#2J0@-%_eN;sIopBrLDkHUnk+;OOt|pL}=Jeg#p$9Pm^A#8Z2w%jU1=79WY0h(9c= zL;8V!C=J1ORDSEY#WqN3#!ek|i~n*8f16e#fSOup-b97brL9WKsXGx}YLHcuS5O*B zOD*v^ACV3W8EWLbv6MV`ZJf!%-RG!ld?#kVAc@d0y2y-v37%(ERqVI)A&TA66cGfe zE)J8X^o>TRx>JbJw-Ia=AvK!eGoiqfh)m>*nIxeJMGRWhyvblls2+wZ+dr62(s#fC zP>IMI^6;aG4Iycxa|57ng#1WM{Y(e1cl--|;X?gWcT%oR-w?!ua(B3&xV^#Y3sCjO zyxmd32OI=Q^=6>mzbNjob6}kg!Mx$^_K`aXb_XsG47wqAhYaoncj1ZmgYUTfA->{- zf|2i;Kf&{V#ozh7;e11U53e1d`$G!?Bgh9vZ%l7ofspwNMMrLy;Y`|i{u5CBfHtT9 zNZ3G^J-PqT=wQ1&um6~0=&cS&pfTb6Or5Z?*N-Mf^DCX>D+TrSGwUN7>oc+W0ji=m zCRx=tn?HvR8Iw#Rse3Ut{!C?$`9oZvxXW+R+zEYQf?ry_F@00%YIIgKnHjafu}Pe2 zj998oM!EVvb176fT_FE2L9-OBX)VXG#z`W2Wuj4+Nj7dnA0qfvA>+gcRz+pOL7B-{ z?h#J3@cR82R_-NF#{@zK3nc!(8_&qn}$Z$AdZKc*6L#w+WR zU5qg2Hf^=XXWOyUm{iX9sqbcg>?p-IhcQKBA1t!7j^x>Cw=e2W?f4f!$EMZp6w}uy z&cPUqaptP#m|gcRBIw=_X?3{LOv&uRoM=4E5N?pMr;N%^!FgiXrmq|Ki%%8yzCwB- z=x=evaV0o>Vnufs`??>0ESG=hKQhV%zr77ZkJFuBI4qMjr3Zq)e2sijxeTQT$+&o+ zHhc-$Mm;Urb%UrETDJkbhAFbKO2e+$w02Ix9Xl^+)37y0t?t=?$pTdge?L;ZhLiZ2 ziDw$YEzptl20yXrTsQLC5^fE=q7<5iA%)LKeLwKe6O^-7Z(*C;;|d?XfzlIq(X7)8 zbI7dC3AmA9${R&a3AuCgq1G5hPwn&LIcsp<1G~e=vzBQ^%__is5J8WMz6{i-vKU>H zm(L_t@>eTfC>}c;r;0BODszi%WiASdF}IZ5WyoX8lVV52&qCE>^o8x*c@kl4>paD_ zaYP~arWvBr3iSF1>XF<}AtDP=s_)SZQQp+0Slkk|dwg{1^2LUDG6nWF#Zr~!@Wx^n z{FtJ`ZFoFl>0sc)c>GWhXR_Itd@hWIAA0mrKg&975JM0_u}q{rW;NaIom#tJYN>?{ zD(%i+TTyOAgWY}Y-etajOe_IgGz0tBY_th{KFHZ!q_bc?MEc!?GY`|R>UWHeUrM3b z?=lU^O2K|_?(0KV{eppT1jo($G=@lh2h9h_-J*{)YGy!}B9CzfD#Mb#pD6`%dOf*M zQmT1Ys(EE7IbB0ijwOYTHHA-8>M;b}#JOgYS`E3CwhU5x690(oLqqDZJiN?TOsaXN zMnIqg1R!5`I(LkV{1~56Gi8uY}25u zYi#N<7#%Rts+j~|OO9VdPFG8wT|>i(zJWIlz)&^&n6kfiSz+SxDb8k%}cN;i?JnUq~iZpT1=PfItUq51Eh zkY>_ zm@AN`a(ZS5VZ!DH+4<&hW_^~MDAoueBTh+pGABUo7WCvGj0GD@echQ*c49x45DrL{&U|0DU~g51~WJXSiBT~@Vf!bj40;6Y+c9y_@tva3vIh- zNt!xuD{Nq+IaqywO33P7DscwM%e3H$mjJhdgLcm36FPwX`9_$ zI8e)-nctA&O*_9bBm61})(QvZMLD(3jbDC;F`!xS`8}(iTYm0e5f|+KbdgcreCy7s zV3q&pN{#TV_DGJ`zsxL79T1e0%Kx!1M)*}Y1kRf>wI9sur(WeHZB>7Mg-GbQdVodf zxN^Wr_+58|LMZj;EiaDh&s$rFuUxpDdxv89rALQI_?Ab9SU9o!n_>7r-tO|D4_^06 z<0X+LlO!Z{txVnykBo{TY+lEud$3%><&7?0Kclfq-t6KbF5d0pA;6K4Xw@Vi$?8IQ zy4s^+k=rkUAD z0rGzqFi+?FpBpEe0!)mkSty$oo{qXS)KKqfw`IE$bVrDj!HtmKzqr>(X6OU%O_wSR z$OO%=?guseNo?Lf)|^w8jRK^ZL5PF&P0n7$YzAk86v)y4YF3l5OD&h-qPkO)SMcXE;L#ld{TwdM@t#UO*}Q^}-tan~9QYW&7fxIB ziX%+?=ZmUt6y}?`xl1!tnwHz3unY(4BTs1Z0&k)nA_7lRBqBuS|)AxdGS1;cf z=g+PowU~s59qOU1kRSdc!V#dO4{+axy+w%nsT?d}dtL^w4w9-9ExLb5JHZGJ($WzX zlCZ{)X5Ae%O@@ytmk?#kh(9dLoM+1tB2iKY&LD|KB|D#I!*WQQP)B;H3h@(S7oH&u zW~s!xdz(_Dj-b8;M-}KMlccdv*w_~zEUBx1UM4p*#^lr~rrIbFP7Z6i9(B_^gU@&*uiv(%awA*A-?N*Wog$uc z9B)hhR=YNJH%tIsc8e3jg}d(VoNNt-kG>#R7E@%&-9 z&5lR4Zx7G?5%Rxa`()DzLVfa0M(*F={Rbx=n_HI_)XOq31aAJnLsSuzK*VmjfT);T z1|X{MmIa79amyP-iQe|-aFP4%13K+sa?b5k(7^_mZ)fm=#Nf$rvd5hgrq2PBKi*cI zoDd>7**8#Na>qTM$pUxfn8ZV%!s3&2?rJgF#{s#DlXu<~1(|-~t_;(4h{%Q%4xIpR zMkWyk*clDKeHI#vKEB7oz%ZMWfx(#p8OX$gjoFYQGP&ZOjDjoBH4L&g3PxrO3>x(e z43@}h8M0HLilrvMzsCcz_wPL!3zpdo48E=*j=G+HZu-bJI|B`a2T~IQgAs~h+LHtC c$1`$G-grNSY1Tfd!J?CW9|*At+ybct00nWyd;kCd delta 16992 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 NAJjSOY#g^h`T$yuz+V6W diff --git a/FontTestGDX/src/FontTestGDX.kt b/FontTestGDX/src/FontTestGDX.kt index cf3de8b..a0a3771 100644 --- a/FontTestGDX/src/FontTestGDX.kt +++ b/FontTestGDX/src/FontTestGDX.kt @@ -33,7 +33,67 @@ class FontTestGDX : Game() { println("START") - val l = intArrayOf(0xF00F, + val l = intArrayOf(0xFF00, + 0xFF10, + 0xFF20, + 0xFF30, + 0xFF40, + 0xFF50, + 0xFF60, + 0xFF70, + 0xFF80, + 0xFF90, + 0xFFA0, + 0xFFB0, + 0xFFC0, + 0xFFD0, + 0xFFE0, + 0xFFF0, + 0xFEF0, + 0xFDF0, + 0xFCF0, + 0xFBF0, + 0xFAF0, + 0xF9F0, + 0xF8F0, + 0xF7F0, + 0xF6F0, + 0xF5F0, + 0xF4F0, + 0xF3F0, + 0xF2F0, + 0xF1F0, + 0xF0F0, + 0xF0F1, + 0xF0F2, + 0xF0F3, + 0xF0F4, + 0xF0F5, + 0xF0F6, + 0xF0F7, + 0xF0F8, + 0xF0F9, + 0xF0FA, + 0xF0FB, + 0xF0FC, + 0xF0FD, + 0xF0FE, + 0xF0FF, + 0xF0EF, + 0xF0DF, + 0xF0CF, + 0xF0BF, + 0xF0AF, + 0xF09F, + 0xF08F, + 0xF07F, + 0xF06F, + 0xF05F, + 0xF04F, + 0xF03F, + 0xF02F, + 0xF01F, + 0xF00F, 0xF10F, 0xF20F, 0xF30F, @@ -48,67 +108,7 @@ class FontTestGDX : Game() { 0xFC0F, 0xFD0F, 0xFE0F, - 0xFF0F, - 0xEF0F, - 0xDF0F, - 0xCF0F, - 0xBF0F, - 0xAF0F, - 0x9F0F, - 0x8F0F, - 0x7F0F, - 0x6F0F, - 0x5F0F, - 0x4F0F, - 0x3F0F, - 0x2F0F, - 0x1F0F, - 0x0F0F, - 0x0F1F, - 0x0F2F, - 0x0F3F, - 0x0F4F, - 0x0F5F, - 0x0F6F, - 0x0F7F, - 0x0F8F, - 0x0F9F, - 0x0FAF, - 0x0FBF, - 0x0FCF, - 0x0FDF, - 0x0FEF, - 0x0FFF, - 0x0EFF, - 0x0DFF, - 0x0CFF, - 0x0BFF, - 0x0AFF, - 0x09FF, - 0x08FF, - 0x07FF, - 0x06FF, - 0x05FF, - 0x04FF, - 0x03FF, - 0x02FF, - 0x01FF, - 0x00FF, - 0x10FF, - 0x20FF, - 0x30FF, - 0x40FF, - 0x50FF, - 0x60FF, - 0x70FF, - 0x80FF, - 0x90FF, - 0xA0FF, - 0xB0FF, - 0xC0FF, - 0xD0FF, - 0xE0FF, - 0xF0FF) + 0xFF0F) val s = "ᚱᛂᚴᛋᛂᛋᛏᛋᚮᚾᛔᚢᛏᛚᚮᛋ᛬ᚱᛂᚴᛋᛋᚢᚼᚾᚢᛘᚢᛚᚾᛏᚮ᛬ᛏᚮᛋᛁᚮᚵᛂᚢᛏᚮᚱᛘᛔᚱᛂᚴᛋᛏ᛭ᛋᚢᚼᚾᚢᛋᛘᚮᛁᚵᚾᛁᛂᛏᚮᛑ᛭ᚵᛂᚢᛏᚮᚱ" var lc = 0 var sc = 0 diff --git a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt index 3c19150..8308dde 100644 --- a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt @@ -190,10 +190,10 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo if (colourBuffer.containsKey(codePoint)) return colourBuffer[codePoint]!! - val r = codePoint.and(0xF000).ushr(12) - val g = codePoint.and(0x0F00).ushr(8) - val b = codePoint.and(0x00F0).ushr(4) - val a = codePoint.and(0x000F) + val a = codePoint.and(0xF000).ushr(12) + val r = codePoint.and(0x0F00).ushr(8) + val g = codePoint.and(0x00F0).ushr(4) + val b = codePoint.and(0x000F) val col = Color(r.shl(28) or r.shl(24) or g.shl(20) or g.shl(16) or b.shl(12) or b.shl(8) or a.shl(4) or a) @@ -778,7 +778,7 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo } fun toColorCode(rgba4444: Int): String = GameFontBase.toColorCode(rgba4444) - fun toColorCode(r: Int, g: Int, b: Int, a: Int = 0x0F): String = toColorCode(r.shl(12) or g.shl(8) or b.shl(4) or a) + fun toColorCode(r: Int, g: Int, b: Int, a: Int = 0x0F): String = GameFontBase.toColorCode(r, g, b, a) val noColorCode = toColorCode(0x0000) val charsetOverrideNormal = Character.toChars(CHARSET_OVERRIDE_NULL) @@ -834,8 +834,8 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo val charsetOverrideNormal = Character.toChars(CHARSET_OVERRIDE_NULL) val charsetOverrideBulgarian = Character.toChars(CHARSET_OVERRIDE_BG_BG) val charsetOverrideSerbian = Character.toChars(CHARSET_OVERRIDE_SR_SR) - fun toColorCode(rgba4444: Int): String = Character.toChars(0x100000 + rgba4444).toColCode() - fun toColorCode(r: Int, g: Int, b: Int, a: Int = 0x0F): String = toColorCode(r.shl(12) or g.shl(8) or b.shl(4) or a) + fun toColorCode(argb4444: Int): String = Character.toChars(0x100000 + argb4444).toColCode() + fun toColorCode(r: Int, g: Int, b: Int, a: Int = 0x0F): String = toColorCode(a.shl(12) or r.shl(8) or g.shl(4) or b) private fun CharArray.toColCode(): String = "${this[0]}${this[1]}" val noColorCode = toColorCode(0x0000)