From 06ede88684b653eaac6331e1504d39d25d1ad8f6 Mon Sep 17 00:00:00 2001 From: Bill Kendrick Date: Fri, 27 Sep 2024 21:23:06 -0700 Subject: [PATCH] "ASCII" - "Typewriter" & "Computer" support for color TODO - "Color Computer" --- docs/AUTHORS.txt | 6 +++--- docs/CHANGES.txt | 5 +++-- magic/icons/ascii-computer.png | Bin 7417 -> 7982 bytes magic/icons/ascii-typewriter.png | Bin 12878 -> 10060 bytes magic/src/ascii.c | 26 ++++++++++++++++++-------- 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/docs/AUTHORS.txt b/docs/AUTHORS.txt index 0b26ac7a4..12410c994 100644 --- a/docs/AUTHORS.txt +++ b/docs/AUTHORS.txt @@ -6,7 +6,7 @@ Copyright (c) 2002-2024 Various contributors (see below, and CHANGES.txt) https://tuxpaint.org/ -June 17, 2002 - September 26, 2024 +June 17, 2002 - September 27, 2024 * Design and Coding: @@ -197,10 +197,10 @@ June 17, 2002 - September 26, 2024 Creative Commons 0 by lorefold - "ASCII Typewriter" & "ASCII Computer" magic tools + "ASCII Typewriter" & "ASCII Computer" & "ASCII Color Computer" magic tools by Bill Kendrick - "ASCII Computer" font: IBM CGA Adapter + "ASCII Computer" & "ASCII Color Computer" font: IBM CGA Adapter taken from "Typography in 16-bits: System fonts" by Damien Guard diff --git a/docs/CHANGES.txt b/docs/CHANGES.txt index d9c518cb5..bd05eed30 100644 --- a/docs/CHANGES.txt +++ b/docs/CHANGES.txt @@ -31,11 +31,12 @@ https://tuxpaint.org/ + Closes https://sourceforge.net/p/tuxpaint/feature-requests/260/ - * WIP "ASCII Typewriter" & "ASCII Computer", turn your drawing into - ASCII art. + * WIP "ASCII Typewriter", "ASCII Computer", & "ASCII Color Computer": + turn your drawing into ASCII art. + TODO Sound effects + TODO Icons + TODO Documentation + + TODO "Color Computer" color support + Code by Bill Kendrick + Computer font: IBM CGA Adapter taken from "Typography in 16-bits: System fonts" diff --git a/magic/icons/ascii-computer.png b/magic/icons/ascii-computer.png index 49c2a63d6d0481d84ae85332ce52cad2d7ee399e..a43c18b1dc86e743756a063acf3f317835b45fb0 100644 GIT binary patch delta 3964 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 W6_J3P1&xsa0000o^XC|LYWU1g=<)!!@FBFvp*d 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 Hu0mjfoc11j diff --git a/magic/icons/ascii-typewriter.png b/magic/icons/ascii-typewriter.png index e416408fa4e29490fa40dfd7d425cd08ee495ce7..de9d99790ffe3ddeca077299c7ac66b4e0243935 100644 GIT binary patch delta 6240 zcmV-m7@z0PWXw*G8Gi-<0072sutWd=2O)Y?SaechcOYlAwg5daDBIQ)#58|?A-QFghzdS)VecUG#hWSJ(x%tQjd*1!MQ z*S|PYmHV>nQEDkShgGZ6xQY99^yf9*_Pjoa$onpRe}3KL{ePu1K)LGcEsMO4#dGe{ z`+a>clD@`&CVJnb#$EpLL2K{l{rmI&o>1b~iQW-tdaZoV_ZQw1sk|ey*Zc8~sMPRp zTbu8#G4S;$e*Bxdlw6VVMZ6$gsx0@~T=N;BTlT1R|~Ph2C2|VE&BF4~+ii_?>OtEV9=b{1a=R z>o2h}I^LhR5z`ai{rS#z09;}E-yf4Ys>q zuPJ&?KYzrf57ElN%=MM^$>)0lAY$oEFiBzHE=hALMC2l#5 zsTRl~J6N0VczT9Pme*rkRqfKOMICO)V#qSf=*KP4P|KPv=UlSq$Thd3^oQTv_`G9HGdXu%-r~PV?b+Nx_0Zim+n1!y?PtS zXV}Q23?DJ-Xj7(65`32FGiIG_rG=E1t-Q+e6|1hck=oX6JMXgn+Og|yAJ*Qq{^|TL zSW9o#{25&`Y+OCe1^Pz<)bfcTwkCr5M+_^46BiJ^5r+h}*AFmE&G*(V$;`g}L z)0uR71f^BlnX+~2PxPL0v?vQkW`C5to1aYqiIK3`P|PrD>2RU(EcMFB$+H-a>ZYrn zek+erX+Fs8T>wUFP9)6$G2Tqomz+F;UeqwQpbE z3K+#e+`jK-6{=bWbTq-@9QCjzOjsCWq&htmkqRCyxz9a(e~z0N!c6)gTYQQAci>>if`?9La<#Y z78_{_mU$XWxk;@NLgy~l;u=jyMRo%w%fPa%48FJ;k;up?>gW-O6Jd131>W8`mBX#CydgtOEh!f^FU(^#?<4Y_ON|jtI^ncr#cN% zmCgb(gW^Gov0HFJTSNtPC);UQCT;2hXFW?TxoTT^=DjTS%EZud3Ma|v6~8%&5NpQ* zin?&neEL29=p3<8C4VHsZdzasG2!l1wS<8+T3%VRY|^;w&7A9Q7!%AP+yk;9mD7Yq z1-V(P#m#1tTu^UVsPfAr>dH0MCOiNE@{ymDRr*Pi*$=KKdC(Dn8Y}FxG^Pe_=Vz7> zn;v_y4w)NW6x}$q>Lx$a30I74?W5r3&aWH{1Jj&9O?QBDFhe48t*&Y9)%cg^2S!0G zM%RaRu=ssCV~7DV(dKy%?URz53N$qGkhC%?lwRaReknmt)uJR)EWz{o58UOiZI&Dd zSd*{{Ab&rkDlHCn5b2PiI$01Eanvdlp+cw?T6HkF^b49aBq=VAf@{ISkHxBki?gl{ zu7V)=0pjf7r060g{x2!Ci1FaKAMfrx?%o0ZW|gUCa2!xI%gCgXLN325gkI5y7=nl( zA~92+6U8(<$Jaf4e7#HXEbnuFj)+n)8Q>F$XMdS)Si~E|)0>vgd7n7S%928SPCRDN z1&JTIF1!53x#X~)XGV=|W}Y}oER?!f?qXIpRN^V(xT0#5@6WlcaNgpqR_m;NPyWJi zL0ehoI?WhTSi}-U2#`@n1yxu`(5jJQB18L05C5>^7s(})s{%%j1=OHIa{St;i~ylspw+PL?_=9;odAJn;7aTGYfWJ0lk`SMiyr|4+rY(jN0aw} z%N=0oNtX=CkpeXR#Uk*2M&FbN25*7>HMh6+K29HiEOnK>0S*p<(Gq2^d%U~1ySIPO zwEO!391L=VtqgQK000j@X;fHrSWQeiW3x>RfdV9BIWRS5HDfX@V>o4HEi^SUHZ5Ud zFkvk+H83_eGG;O{WMyWP@(!pBG&wdnF*!FeHZ(Cdlco=G3O7_TF*-3bIx{(wArK@A zH&ik)Ix#akGdZ(Q5cC0)U=ds-V`DNiVKHMgEig1TW-T;kGh{7cH85r^GGaJlV>o6q zGc;jlli(3c3O7_TF*-3bIx{)5H4<(J1o(EhK9i>!G6)<54JS6S+T)Yq8Yh1atw}^d zRA}DqntPC!)p^Ii?{Zm|xS#@CST|8uyIQPRF^pFlLPIwUNh~oT87mD99ioj%rPFG4 zY)y=@CSIxmD{3VwsYVk;snRGHF-kOvctLIg1q8Y5!m@IuZ+kZaq^qJH5x0;N} zv`)^IVDw(f4eYWz%d=mGmV^vm_0a^m9qo zeZ2RQq<)ghC3QMA9)Z_e%wi<|w}RO6pAdwn=(k(jR|II`Mtx#SuwM zC2i+-oumr_k3ODd*=k9$Jzmn{K;E;d1K+=%VcUaOMY~Z94PNV@n8Y$_MCC0oe=|V|o!pjf$0UQ>= ztB)|BBt0x?lceJ%O=Z8k;6b~j(deNiZI<*7zt2v1x}QCbco)C19$D>>^!t+jDC}!J zYaWu+%RDDas*y{#+cCNuY#*>a#`aX(E$+Kj{x5fK|08{m+OB^G?a1~s1@FH^-$dI7 z!}E6ApQi7-wvYJzZ7Xfp;ACXG()OazzsmMcY|pYi)^=;b9BsB2*xpxSjU%=nw_O!@ zbCK;e{@}K^ZO^s+E!z#Ym)Wkf{iC2u_t~zp{dvaK!vERyFADq`Yx^DBlY*RnoUGYt zdqSdvSJ1cF_LqNo?;O5oqF=T>&i0kiG28aFw#Tz>D$BXH>zIFU8dL?%LA7Soia=V6CO(kg9 zX8U~PTgO~ahW@9a?;_jR+rAE)Ticf-dY*~qLFk3HC*XgSqA>O+@4asOCEHVMPeSl% z+YA$m9MKXs{13K!!}A{7xANYK5;X6zJ;V0KU&COg*}mEKZuT_I_SFRrZvjf#UNFb& z@T`==?6*A{XSUJy%NWSl=Zsx-Opoe{OH0n5$91IZ1ynhEi{PJ$g3P_96NY zA@g%=@8W-1i|xypugHjZa&T1Ho^N|A&nMtu)*{2Zk=Zi($8ae1u*N26zocM|PW0uQ zIFl%+L)cKQ?d2u-(h+Q>s}KIIWgm;!M=7V(8l3A>w&w*${Ayyi-?x1uzq|N;hyC9O zZN}a&+x`Nu zFt#3`<%fWtdx4obY@7h?Bk9{tNSU@y=ITj8t!E{*XIa*2``d&A3h?xa5Rz?`v_R5y zNwceTq3Q;oVyZVQvD(-UmO<4B^K~r35E6f{ z=6@OdJs>IT3lXitvtG_AJsQ}$C3xu^uGQJzn|S6)wy#RyYJ}@GK((~(#j`#c5YZYu z{Uy*eEdKg0HO1rYZN#_lelZyvmeVdITC3=fd^ zO8AnWwDq=Y0$i`PeMiCC%kuCrpNoI*?=Yq+2|22mZ*D+u-%Y}T+rqeIVZE!vJUJw< z4A15>t`Rt0#oi~wfN1>tyAvbR@R<2xn7>K@ydhj6u}02Pc2d~fIf&3%OFyWw-> z%~+6%!zsN8G!WZC+t;v<#{=5w0WnnNsRC%85>Q0m4u=r39-XVS{XiJA20ee-oQIQ) zdpL}Fh4(JDeZTEX`Tt6R?TohluOUQx9NXEDjNJ%LU5uZD4UG?WlefDVI~zpPQX=gz z7v8M2{X@{_n1Dw2^M3*RxC0r!79CLoFf0mnwe4np?@Pk0Mu@9pBi)G*r`Voe0!F^| zE+Li+l&cG7PGK`KBphE@YWRO2W0+jB9AW=kVhmr$5H=*CVNTOG$Yr!75WA6ZV6^Qo z7KBu-wqJnudvNY;B_Qr>XuFX)7ZbANkpJ_90&g+zENIT1{#M)n$^KXK?0)8aB&>A+ zhhG!M{s0AD5<;Wgi7e+?H%d8%{u&(g3ftGR&V>bGYmM!D`;hrdtaE=&f&5>_xb_4i zA4h0b$`Q4oqf5fG+T?#J-CKYmtuNu+?zg>zJ=fyI+X_OjDL9aI*wA&1kB+E@@I2>n zM?vnThA^^?u&b&d1<(!vcn1Br7#Ytja9VqCP%Y@w6x%Oi&ua?~$a?5|FtN#KBR>gw zytkKlRKuA3oTdRMxy{tdb>0w}Ag{0>KY&|{L>@Yrg8zE_-q^3}fh%l{*P@uO& zg(`=VN0Jb0horewQ!WW}51=|ShDzL^@Xl9lpU1P?2xZO$~ z5+V#H{5z$9?hLw`lFGp#KKs~HUTy0k)I5$*;zZ#2pgyV}Ws-j;+x`(%#p%F=#tKQV!Ji8PkIVUfOVY=n@vkL)l;`(I zI+^hFA=}qU`g)=dPZ8$bOn6vS^&Acjrx#R^jtSMBSjrw2es3XMJ2lWff^aNWWvkw$ z()T3$dyx6JQmucTLD<@#z1JYy8Ke!$3uM_usB;2)JA<$@R;~|ZSvCj6JTlSkJQVE0 zmdc^OBax-3MzvG%y-LysXx|w47VUYkq-B!Uq9?0@ZO3r$->L4NE$Ig4ua$I}q^}Z2 zwn@6v_F_qsB(>VUo>anLVz*`J?G04#I^f~r{*qQ@SvG%@MO$s(C27ukEO)OU$M9M5 zAhE9>CE9)k?+yrgsInwK^ocCXHsVc35SuE*%EMszk?{NreAY|43nltk=)YXjS72&+ zE_?(rATjb!m&jd3gQzIc*AFG?KxyWa8@M*`Wg9sg_i-;|cjBB`KG{W{1lJ0-T*{9b8deNy-9G=JFECv@izFzqF zr+ivN4k#U4mu1;SdBl)q+27b6oydLUv54BI%#$|FM6h&q=xxBxFf{9~ATjPSoQ_tlz_Zw9e$7 zN((3CHk@%p(?^3My91Kwg%1vjy^l2yvX?>0UIu{@x-sfqlCHxEOH!`SlW{_8Dq6}`^_m;@hjHCaxkesa~X3a~nMG4W$ zB(C4Xej0wwGIJC6AjTDx=f|*SP1t{TZ8GK%`I<_SepO))SB3W~iMhX*-zr}Y@`-AtaRp8tPqB7X~X ztuF8?zlT&?K=Z03-*;)?`wYh9iRkB&g3mVFGeW}Nwttos5H5vZ6T|(WJf9njC0p{` zQlKr({oEe%QoG0*O-*uCEw(39n3#`#OozT2+y51k{@)0?e-6CAGUSM^hPE$~m&)f@ zm!T{>@cJi{AL{oj+z@^pZ<>F@$(eZTlklJ|SuWul_2ZkC00k z!1!nJ>Ma4;Yze3G`_-B_Evu4~p&L5#JVg&D2N{aJc2%7EakN5YiCP$|z96DM|RYMbe|7o?}59A5UcTG<)oX zo(bf;B9DI_Zuk!+#0000< KMNUMnLSTZ|)lgml delta 9253 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 diff --git a/magic/src/ascii.c b/magic/src/ascii.c index 093d149c1..d446666aa 100644 --- a/magic/src/ascii.c +++ b/magic/src/ascii.c @@ -96,7 +96,7 @@ int ascii_char_maxwidth[NUM_TOOLS]; int ascii_char_brightness[NUM_TOOLS][MAX_CHARS]; SDL_Surface * ascii_snapshot = NULL; int ascii_size; -Uint8 ascii_r,ascii_g, ascii_b; +Uint8 ascii_r, ascii_g, ascii_b; Uint32 ascii_api_version(void); @@ -368,15 +368,22 @@ void ascii_click(magic_api * api, int which, int mode, { int xx, yy; + api->playsound(ascii_snd[which], (x * 255) / canvas->w, 255); + for (yy = 0; yy < canvas->h; yy++) + { for (xx = 0; xx < canvas->w; xx++) + { do_ascii_effect(api, which, canvas, last, xx, yy); + } + if (yy % 10 == 0) + api->update_progress_bar(); + } update_rect->x = 0; update_rect->y = 0; update_rect->w = canvas->w; update_rect->h = canvas->h; - api->playsound(ascii_snd[which], (x * 255) / canvas->w, 255); } } @@ -453,15 +460,18 @@ int ascii_modes(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED) Uint8 ascii_accepted_sizes(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED, int mode ATTRIBUTE_UNUSED) { - return 6; + if (mode == MODE_PAINT) + return 6; + else + return 0; } Uint8 ascii_default_size(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED, int mode) { if (mode == MODE_PAINT) return 3; - - return 1; + else + return 0; } void ascii_set_size(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED, int mode ATTRIBUTE_UNUSED, @@ -547,14 +557,14 @@ void do_ascii_effect(void *ptr, int which, SDL_Surface * canvas, SDL_Surface * l gg /= (w * h); bb /= (w * h); - /* FIXME: Map to computer color */ + /* FIXME: Map to the best computer color */ } else { /* Use the user-chosen color */ rr = ascii_r; - gg = ascii_b; - bb = ascii_g; + gg = ascii_g; + bb = ascii_b; }