From 88f77b709f8f0dff1ecb91c06fb80da058143b06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Madar=C3=A1sz?= Date: Sun, 16 May 2021 16:58:08 +0200 Subject: [PATCH] small tweaks --- art/demo.ecotex | Bin 177 -> 185 bytes art/gen/demo.h | 1642 ++++++++++----------- art/gen/demo.png | Bin 6153 -> 4316 bytes code/game/source/editors/texed.c | 2 + code/game/source/editors/texed_ops.c | 25 +- code/game/source/editors/texed_ops_list.c | 8 +- code/game/source/editors/texed_widgets.c | 1 + 7 files changed, 852 insertions(+), 826 deletions(-) diff --git a/art/demo.ecotex b/art/demo.ecotex index f7c40e46a16116a71e9c853bcc12d0e4fe768b11..9ddc3e6cea054285080fda187dc72adfdd608e3f 100644 GIT binary patch delta 58 zcmdnUxRa5InPnoA7vqeHzAEYq4Hg=(A38L3g@K;Afw`Hb5rScEvzA6)ED6+60Iy8A=r8EF#vu4FhEd1P}E%%U=Si_(1x2`v~#%m~!PlGk*3u@uN;JeAX~Cehnw8 z8p*cj`ys=qpf?Wx`74(Jodo2-!>Tv=yhYUzjJIc}_%1FN(5NTeE%cJ(q z12@<@*bR%-_)gUS?yX(J@qb%LnoLN7cem8~C3KoLOcbgx?=R5>0#7l3@+&DR7mYN3bgdgz#)0;S5 z$hTny%iL^e6-?A*meh`*oi1&8KhaM-sC;XOrEBBUPIkTAcM1uE& z9A=sc0s;=Rj*|CS?+7Q2IVjgZv~=XoY9TF9UeqlBmRvbP0SB$KVNo_5_e#4E3IMEiIq zn1$(&Oaz@p{UcmlR0+GU!_%AW&T+w*EG*4PMP9e}@f{bJ9Jmn86Qs zMo;!xCw#Mh5)J8t=oqP@ZNqg%IZ_|^JfwqQf+KDsbP1Hy3H6_MY1dMfyR4D=3Uar_ zYWb!op#JJ$0RN>_b$`B83r8f<-vQG0N)$5Io2ynpqX!->euczNM?5o)Ym3sx&b+$GutOr)Hfh#axR(V4VT0kOe5lo@9mbZ6f~uCk+b#z}e7@D}eM~zGe8U3CD&IM-7OsQZJxt7 zCc4G`==H-6sCJU6hhGVI{RWcK8~0iIFjYT3EB7aE&S4PD9$4U})^w1Yz^oGf^#M-;}88P?iqhF=T6bY@d_s~Nky2l6Kk ztAv6m_LCCYbX}zVg+;go=E@O7Q>%+$SydiU^D`Ev(wk@)@x!u{Hk6=| zj??&L5|Y&BnYz@sR&wU3;-y_P;?A#WQG$_#M=sqB@a}_3;*rcL&8jUr)^_4l*u#n3esk1c8xnCWuk4RJte64wg@K~AIietPwwL;R;fE{`ckDnWsKJS31(ZcQI{^az1zNqRp5QjZ*PCQ(`T zuNM=GC&ONX>?FHD=M<0CJhCVet$b+>c&eZ7@MDDGd2t&Kqtf zuublhdV{*GM6$%&k*jI-u3A7U^bM8`;)`q^e38pvIkC=kC|a}I)EQ{=h9B!J7Zp2p zay1-N2`AoHbBnCO!oz;usRrHU;|_arqSO%&p_8bS$f>pZuQ%M}q%X7mqb$a2P5x0K zUyn5fsBX;z305DEV$)ecRg5v^eWAe}y2)!p*&>ci^RR%|sUCm+MxA4Jq&p4s)37`> z+9He>?u7{f^BcKl2y7H3U3++6rtPv`C7Tu@YgL z;!Tw`uzhOP5Dx=&pIG;nk=w9oDrbQqfV+^lkdr4|-3?cNMx2J?pGvf;mW$*a@;-2c z;1P98p~(-XX=JopGRwe+bW(H`hYK_mvHC7|s>^ck3R>u^ix3KohUXI5WL#nqkbSgP z=V!1S8-cWJBvB%BV0hUDvq16wJTdnjF^gEjKZwbf;3tVh)1Mgik*mBEf7%C26%J1v zVwRGv-UoTNaCk_pcXZE#1`$GH7^C&qNiEU&Kp>>{Adh91(iXxpqPU#|b9uH8S+P*M zgrY}9ZEDz6;gi>o;I|m7%^CBsyR2Pf*~1k~VKPS*WRIvRkqU3Ls57Agb(%UJscSC^ zFD3%S&hq1ty~K~(-X3;q$c%kJT(k5pAnqWI}6jXdJEloLzhghz1mFS}63<1UY z5&e5IGHdYpe6#_Y=#pdX4a(WVk@aQ}D~%_hk6v4{jKY3o<58>%EqE5e#Hp)F!`Bza zoVHF~iAUI6gn=BTaVMW;io$(}2Th6BL(&cdCSqx~;~&e|Gw-kSJ`Y>Hw{H?7c{-q@ z|5*6bzICRQahj7>PeDJVc@#6Ye}lcB7Rf%cZ@DgdrKx)l|GT89(zWhKND1}#hTztJ zy*n0CGvENQ&eQW(;`QRJq(rxK9(`Xy#B{gikA)$9T(H{V;*3l&E(}Aa-t(Rj!vbkjpMZ9S6adAXnqr0WU=b#%_ySBPwc$u2Vo<*hO>7 zP2+j zD?n(L!)tb9N%otvKO~$*;EX>Gy}a%6^5`V$hFCbX*dC2bgs&QjE1Tf16}0*-?;>7S zq#Xun1IPgetI9QX;trGU`$pgWL!r9t<4DpJCWVb?^q{g;QmdP=E)Xkm)oi94rf4?b z#R4;sb;FZKk<@1=eCGwnQ2FcZo7gv7FS&_FN$lFcONAlF|I8eGA$)k&<8}<=-qZIx z;SqqWbag@~o20a;OYbkGg5J1g(OimFDtw~twzo*y2qBh#+i|N7dFdtvql>&Kw|GbG?2Z$98l5)2Y_YhrHf;%$=@D zeP+((+5UMbl>Ky}C!UI?n-u@gk71frGR$FRQy;Ep-`5w3!yX7!3$2|$z9Bw6)G7k) zpSe50-dO)r{LOdU?{Ri}_}Dw_Xi!1*zH$3N^7oJJso%+{8fC=aqJGGBAIS^d_Gm3- z#X8P$Qhvhc7d3f0S5eyLJ2UVR3+z_KBO%&z&@5aFJ&Td*ODqqDi8awhm$w{uoRA2Q z#!;1~Ok7BmAi9L}sC-*}^!B-9T*6SYhm+^x*l9SdRT6pZvLWwQY4`a+tNbj)q8+@% z`|B+)XQ4ij?$(trbhd|y5znXC^1M%{w(BY+0ly5P6=#%M6oz0Vul65?JWu%jj z?mOoy)75X2Xu7P~*loA5%-}?AO^ig5VpCD9?w*))cL~rBE;F;9_I1Cr3)T7`EVpE| zIgVd;1IK*x%ZX5a;_HR>%I*B>b-xb#KN;Wm24*KQGbr}co?Aud{MWjrEPC;cxJiyo z=ci(I`4_@$LOz;35xGa<=nu`?I5!Q`C2fJkKXkO@v972;N^_cCxSy+=xC%*%$u({) zJ(a`#{u?^r*r2xk2iC?-Ddbf6jz_a$!vXQ`Be860b87y*WuGI-2O2FEo4^$*mBRlT zXCk4$f-YFD&7~a^%OSDmjp`23jEFq?Pke>qu}84ApKHCqmDnv#10$@kFQw@*FRw<_vgMm79 zJ{wCl&tGAW5&u~BO~?TdO4JIa}RT80z@=}Wg&MYm zhHlBR^RCVrnWI5Y_x8UtlgxxuTb3CAC{$QUpk~{TacUq?zmv% z3g}uGqX<{jf!@PR50=3NT*FQg{SDTD<03$3|9q`*3{+3%T;n zfT&S~G1lZ~qIM+l*n9}fvrU^Ai?`ay_hVJi)j`3kv9S})XNc{3b-XNgy!mo2DXe4M ze24*Yn!YIrj{X>69*&aicCrsH9VACk)@fQToSz63qNj={K>rLwWO|?{Oyh{Jp6b|a z-<1a-P`jUkUW&$4Ex?z6w27)cbGZz%FN>Dx9|@o9VG<~P&{-cvu|>@DB04yUTuQ&r z+pt(Ry!21Dl5{t(6SnE26s>alB^%khot2c&9}Hv?1eji7=yz9q%u-|{2Oth_9Bu;Q zc_^wm;k6&>RH{C$Bk!?~tR%)H`Wi7qmkAw*^1A%!K5MxNhFYIx;gev4FSREY+)IK} z3!L1%Kc~C9OCg16W5oX%(Ga2~B)(qv%_lP?~ zEj6qq>t%7!3?{{i?QxM$1kXQ{eLq6u7@;@PbT^CZLpo8BJ|)RU3Dqjf(k^g&SbNh> zccoMfoe^T{nQ92pZ&787H3e#BXMo6*pfH=ba^yFt%z^r(Zzf#AZ=ONik)b)g8E23t z{NNd@Pw}vq_cT_D>4Wx&cN^Q+W4$B{vvAw_v`(j18#+^;BD5C~(Nuw9vawuubpjHm z>EVwv8=+iV(_SI}t?3Rp4ry02OCVGPPE#Jj2hx-xU4EAx;s+i`#bJh@DR#qX*-WY5 z@Rb~dCCK8&x12z>K#tsv-&n`Os9%C6F`JT*K-FNq_*xN<^U#({o@7>03R4N82S7R~ z1wY6TrH^42?`X$|qgu$`o?%V?MxBkftn+O!7p9b7A=^$*MuTZR3kDzROs zK7sb&WyKCD#*2p$m(5(0xaJteb_jD-Y7x>#?vMl_;f$f1`5qa8mL7dV`P*QPgp`X! zN6Ck6(}#>2P%{LED2q=!g@w&zU_G7zjMR8gE31?w&Uk`sV&gu|uxRwN*7{i#4op7& z-iB_{#Zlp0F@BXaxEQ`t(wudiJeVE`s5*NYbh}keb=+p3&sBQC=j5$-ex_G-M4G_y z^Xq`5-jja|GKMjoL7x(tU{FqOEX8gvqydwt-#M7dg_#SDQBr#)N1_i9v4HmfNtlS_ zcwV@L?k?EOIy44m2Tv}o-$IoRD`Q!kW@9gqs_cktz4R$EyMfz7m?mgvE*8`N z%8}Q+!qKwJUI#f5m=S!r(Smke9ict?Nv?N`_NM)F3fQ;8^^v~KlS)&m)%Dep zV@fYEt>2-KdS&V29yD{3P9D}l&b4muT}Ikfw4Yq0xow2prkzq`DsaV4XIu7UfcDGa zhSvKtxU^3A?Qu{3{51@vH}|`mLQ711`R~}(EJfHA)@`}a`qgZ1?>NPIbsvUpb+gPD zqKmjINw_P^Y9+W_^Gf_i!aw}O_!@2W5-dVu-$`G4GEM3rEfR)+17E0{&SigYhtKH} zK7^LPpbli=wY=aMgjb~FPub)GLvpxjSV=)i1d4{wL9<)fKhW4MM(E((2B5=n&aDr7 zd98?Ca9A-K3U*a@D}f}8%ioxLSfOIxt(m~(kK}HIE0(J-r-51NNz9P|CZ7@xQ=Ve0 zG5X3^WL48xRP!Vq#oI&addyq{VXaDGsoQwh7H+({8ifdS_Po0FO3PUqgZhR7vYg$4pK93g%7N%9kdUu?Uh8R_E&In5dGsv!lklQq7co) zxhoM$QP=>Cw906=);OB&_1r&=IxTLLY#Fs!a|2sapH%AW%=Z`2kqvGiWCtM9ryt61 zaSAEVUJpr-2^}&&t6NW8SlqgrJ|%MmoCrQAq7FF;{NUe^))!9X#yP}O{&faDBumqw zk*Lqe(b{y~JI~5GsL@v_6=(vwOaZaUVwZc#aQk2qsUM^e+e!V5LjsYd>zHVS;#(rH z#JyJ*%NbOHSTn&wzGRPLpyHK4ctzn2*9Q?}vnh9LTjr^E; zm!J^}Mg8yCe26dp4z_xCHAlZh~dA ze#i2Qk*0r;*TOuvCeDs|Xf^8PZ%ijKqX@qE!pX9W3;H+U;!*82cQ3huIVZ&|ABo*h z|NrrC;laq$&drvPqaUetdDe-@AFqiC7d&NeLfKlNYNxD=Lr1dD>)0Mi$i?K5SZfN+ zHzd>ta9^_2lvWgIMMaAozY-s{{^tVd4NT8q{i3iOU4tVYhP23ykT^?hN@U~zCF2~3 zn5gd>v?i*P%lKerKFVc?AOCAy9U5zA-odLnr7rsm=pU%nY%`aM)^5gPvmxOCBpt*P zze*!BZt>vmeqyZ_x(#)Enji*n zn+oae1}wu?*;@x&@tc-tPVg{NY2BJlFM$qzf-)w=I_K;bPgAwLl_q|~ss<*;+L&QW zEN-?TCKEzVu0KtkhHGX}+fv|9uPLb0wPwycGZ`@ z1+BL>M{{>&=3rv7(O%dYsRB=i^@>_wp5miA#(tCZT*i#^9X29F>0VzwxBOd9geDsh zD#Sc`=py|iB&=g$pWY2n#k;YHvhcDNgo_n9MRnv52lX2p#qDG1G~MmR&|a)F^2B5` zNIG8zJ97r4ZJc4TCIh*tPk_t|=^KZ3Tm~0%-#B{%awNV7CPP%KOtpyeK55e>$&fiM znIs6gjo9|U%V=FhR3_hQ7LJ}XY(OYohOE^P{YKOwhh(l&1=$s%QH7KTwyK0Ygyi*L zA#yUa^{?3m7rHSWd*~a#5cGZ3r4d#6ItPX*s*hVrXR=?=65KH54=bV{Zq1=jN$vf( zhk~Zszd)Q4{4*GY8>3#?A?Cg_hWn}$2iU#RAkXmU)Os(cSl_C1f*LFBO?jD^eDzwg zGln{}LD1-lJ~COtB$Q$5C3eBL4zyjFaNqy5LU&a+>n0K_hH!H@NqjvIuhLD)odDc# z!SmNtXz%hJu;yVBG$wxnn{eGq>zg~8{%bfId;LN^-|pvwg6#>n<`=tRBI< zPSPF$xt-)YQ?cO%62L*hJ~E?Bnepc_(85H z_DVyO>~0PD{C`en^7eS{zwhS+tK)^$b=}g&Gye$py%MF;DROojOoImRSsJ&iB{y6|gv`US#weIEKSztlk^U?IE zO!-Hv?D#e*aw0*n*Gjxfj;^|}E-+GX42^vze9yu$4$fB~$;p{}ar{0xtJ>0m?M`i} z#T1q(j=>@h+PyrMMeHIggf%tPap-o$e&yXnCI)CU0sEu677Isj@D4Ul@c^h zF@Qa?T&8a=`Nv_{yT?y};{@-y%9-_xQYSTjmEi|Ile?1boaW0t z>!4%B-8{Jk%NYW2@EWr=q%*7gbZ0vWy@0rMRV!8y_r#^LTVi9BV68$P4-v}_pP!&@ zIRo<0);xNh5Z!!xG>Sr8^b>Hj&4b?N{IcUIr_@~!7^VCk^m6O^ifpv^K9@j$`D}2Q z&Gm_E=8+-BY`YGvRvxriy9RG6YPU!9JDm|k>0ojxJj^WCq4PA%YB9L+ggP!P%P41$ z=}q#o8BC@J?JwwhBGb0?$-T!5OTm7XkK1Z|UQj+>@Z<@Nlyeo5cpL7Jt@+LlzM(`` zKH)PsV{)SPz&wauRgp2wLz^Hztp{jABav&is$f$Bc2+Jx<$52>-wE>!waEM`D1gRsTh%T(^M^VUz7#B?&RpV!EQ+k8l4c6F;(;P00(MP!5zXFZzr7Dp4`|;#j zvi%J6ND#lbhzqzI2Tl6U`>cZGd`H{i6Unvb6s!5L0B0! zoyEBu+aO;&jrn%?3#;4KqGOCMHrU1q#`abBcpSR<)b}=9K9X(!hc4gZ_w1nmmdj`rzG}+69eg(qB zkCJ(p``E_M3j-s+u0+CabqMDVXIu)Sw8N=guH^P0W~ZWx|8kYl{5TxlI~kfBQMIO5 za3YUPEzRLi_z0T%u_Y5-tJ;JomM1|m$r@(rWO&K1=#a|zY-6WON&>j%L23$kOLj(@ z&+XIPrlI`zLF%QCP!v^y(Xjj3XNqtBAlrg6w&I;D33~hqcWLK{Dmn63oPh!Bt(FvT zlxg}`00bnSS3=WaXMxLb@ROhA!gF8laSGpr?zBTuSZT3l4!}WV$riv|3o~zBPWE%9 z*xZu02>rdvV$-Zc;+`P03!m{3(`;XMyf5VUiCQySk3B2W{sK#B{Vln6_m`(mn(N@_ zeJu-C(W?4=Cy7uF-YsnmK}YN^vRoNc z9sU#6!KC%88dV2xaC&|#%H%3(b2gO|+@|!WSkbe=PDxCm! zg;hmYLS^aDYiO(QI^^PHe96FAx&p%iJ&6^+cQvmYh#6YG7cZ%jxi!RossDI{Z-|jP z3VAttJWsmPvVtxG<~h)Hx2iYQk^}Dyg8Tnwu?2K=I}|eeJ$DJS2i#;E4vukETD=*7 zdbcy1<}!9$XD|l^mJ7u8pvre9D8w%Dcf{l{ze+UppE0|0!y@Pw-LVHP{}LCz>$|Y% z0P`L=cD01+$j=WP|M9wxQpZ0C6CPJX@qUlUqfZJK8BYp-X)j;5v3`t4vv8j^Ug^R; zx8lqH0U@&URq(Yz;!h9kydU`sdN0>mi6b?VdYLem23@G16!+*!N+5Xe%`mdbkbRFA^7DiWyc? zmoNE=y8e-y{MiAGoi+uJ(>qQbVyZhXQ9+SL{29_7PWR@#aP>Z)EO9GmPu~^ba+(qa zJBDOST;`UHp`Awu8U)!Gz?$6XNhH#6e!KbL2rtXs4FXsFJ4rf@xtGjfi&Bk?%E5fU zZ$TnbOFNsf^MezqAD~#@&f-@|+<(^4{+11fErR?f=Qs4Z2V6ja{l?3<^6%LjYOJGE z1kL}RJ-I=%>GFWbmH&}w1bPE|HN|reJZ2@iEJwSa|72%0q{($(z*c z3B6BB)EvZvg@H(Bsu9#wIK~3C68YZ7huaIM;Feh*a6F)5IrLM4rKf&uWfPLy?upI^ zxqx5E&;D88!$qM@-ixCZxfgInCs%E|XF56Vo3j;vXZTqLJk1|DbIGqh?D`F1Y6H17 zj0RwoxWk|q>>S8en{hM-x-1Ea;sVf&)=Y*+Y*=MBJ&Y4J+ai5|h zkk=t&Z^zL%>rzY<68NTY!&(h1W;V8DD=lvHwB3?BTZj6WlHJ3rHq_V5p(f+mA@8z3 zC&z9AyXSC@VVNqMn^iHqjrsE$AM=WIh;BrZhdkf<3FZ{JG)J}MccSVUnxST0#$000 zUre=HLRVAEH|nYb9{JBKhKv)O;stvg$muH#Zc2h;1@orEhqhkd!g%thO)~tHb6DW9 z3pV##aPW_#*R;k_w29G=<)NgK3bb4?C5&$#8}`VAoSm-7JJnS>4SG2)Ehf#8v@W*! hQD`_5rW^-=M}XGsQ2D_)^x_9oCx0{Pmng07{{TqkoDKj0 diff --git a/code/game/source/editors/texed.c b/code/game/source/editors/texed.c index abf9081..74e9dda 100644 --- a/code/game/source/editors/texed.c +++ b/code/game/source/editors/texed.c @@ -68,6 +68,8 @@ typedef enum { TOP_DRAW_TEXT, TOP_RESIZE_IMAGE, TOP_COLOR_TWEAKS, + TOP_FLIP_IMAGE, + TOP_ROTATE_IMAGE, TOP_FORCE_UINT8 = UINT8_MAX } td_op_kind; diff --git a/code/game/source/editors/texed_ops.c b/code/game/source/editors/texed_ops.c index 55e1885..6ed5aca 100644 --- a/code/game/source/editors/texed_ops.c +++ b/code/game/source/editors/texed_ops.c @@ -43,11 +43,25 @@ void texed_process_ops(void) { int y = op->params[2].i32; int w = op->params[3].i32; int h = op->params[4].i32; + int flip = op->params[5].i32; + int rotate = op->params[6].i32; if (w != -1 || h != -1) { ImageResize(&img, w != -1 ? w : img.width, h != -1 ? h : img.height); } + if (flip == 1) { + ImageFlipVertical(&img); + } else if (flip == 2) { + ImageFlipHorizontal(&img); + } + + if (rotate == 1) { + ImageRotateCW(&img); + } else if (rotate == 2) { + ImageRotateCCW(&img); + } + ImageDraw(&ctx.img, img, (Rectangle){0.0f, 0.0f, img.width, img.height}, (Rectangle){x, y, img.width, img.height}, @@ -81,6 +95,13 @@ void texed_process_ops(void) { ImageColorContrast(&ctx.img, texed_map_value(op->params[0].flt, -100.0f, 100.0f)); ImageColorBrightness(&ctx.img, (int)texed_map_value(op->params[1].flt, -255.0f, 255.0f)); ImageColorTint(&ctx.img, op->params[2].color); + + if (op->params[3].i32) { + ImageColorInvert(&ctx.img); + } + if (op->params[4].i32) { + ImageColorGrayscale(&ctx.img); + } }break; default: { zpl_printf("%s\n", "unsupported op!"); @@ -101,9 +122,7 @@ void texed_process_params(void) { case TPARAM_FLOAT: { p->flt = (float)zpl_str_to_f64(p->str, NULL); }break; - case TPARAM_INT: { - p->u32 = (uint32_t)zpl_str_to_i64(p->str, NULL, 10); - }break; + case TPARAM_INT: case TPARAM_COORD: { p->i32 = (int32_t)zpl_str_to_i64(p->str, NULL, 10); }break; diff --git a/code/game/source/editors/texed_ops_list.c b/code/game/source/editors/texed_ops_list.c index 2b06bb0..d02d6a9 100644 --- a/code/game/source/editors/texed_ops_list.c +++ b/code/game/source/editors/texed_ops_list.c @@ -32,13 +32,15 @@ static td_op default_ops[] = { } },{ OP(TOP_DRAW_IMAGE), - PARAMS(6) { + PARAMS(8) { PARAM(TPARAM_STRING, "src", "samples/test.png"), PARAM(TPARAM_COORD, "x", "0"), PARAM(TPARAM_COORD, "y", "0"), PARAM(TPARAM_COORD, "w", "-1"), PARAM(TPARAM_COORD, "h", "-1"), PARAM(TPARAM_COLOR, "tint", "ffffffff"), + PARAM(TPARAM_INT, "flip?", "0"), + PARAM(TPARAM_INT, "rotate?", "0"), } },{ OP(TOP_DRAW_TEXT), @@ -66,10 +68,12 @@ static td_op default_ops[] = { } },{ OP(TOP_COLOR_TWEAKS), - PARAMS(3) { + PARAMS(5) { PARAM(TPARAM_SLIDER, "contrast", "0.5"), PARAM(TPARAM_SLIDER, "brightness", "0.5"), PARAM(TPARAM_COLOR, "tint", "FFFFFFFF"), + PARAM(TPARAM_INT, "invert?", "0"), + PARAM(TPARAM_INT, "grayscale?", "0"), } } }; diff --git a/code/game/source/editors/texed_widgets.c b/code/game/source/editors/texed_widgets.c index cbcbcdc..a0305c4 100644 --- a/code/game/source/editors/texed_widgets.c +++ b/code/game/source/editors/texed_widgets.c @@ -291,6 +291,7 @@ void texed_draw_props_pane(zpl_aabb2 r) { texed_repaint_preview(); } }break; + case TPARAM_INT: case TPARAM_COORD: { if (GuiValueBox(aabb2_ray(tbox_r), NULL, &p->i32, INT32_MIN, INT32_MAX, p->edit_mode)) { p->edit_mode = !p->edit_mode;