From 29f182513f5fc08b71a2df2cc331a8869d831942 Mon Sep 17 00:00:00 2001 From: NotImplementedLife Date: Sat, 22 Jul 2023 08:21:29 +0300 Subject: [PATCH] fixed escaped characters (for real) --- Data/MusicOrder.cs | 8 ++++++++ Genres.cs | 14 ++++++++++++++ MainForm.cs | 10 ++++++++-- .../PublishProfiles/FolderProfile.pubxml.user | 2 +- Tools/tja2fumen-old.exe | Bin 0 -> 3717738 bytes Tools/tja2fumen.exe | Bin 3717738 -> 3720408 bytes 6 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 Genres.cs create mode 100644 Tools/tja2fumen-old.exe diff --git a/Data/MusicOrder.cs b/Data/MusicOrder.cs index d792d6a..2e65765 100644 --- a/Data/MusicOrder.cs +++ b/Data/MusicOrder.cs @@ -16,5 +16,13 @@ namespace TaikoSoundEditor.Data [ReadOnly(true)] [JsonPropertyName("uniqueId")] public int UniqueId { get; set; } = 0; [JsonPropertyName("closeDispType")] public int CloseDispType { get; set; } = 0; + + + [DefaultValue(Genre.Pop)] + [JsonIgnore] public Genre Genre + { + get => (Genre)GenreNo; + set => GenreNo = (int)value; + } } } diff --git a/Genres.cs b/Genres.cs new file mode 100644 index 0000000..2e79c05 --- /dev/null +++ b/Genres.cs @@ -0,0 +1,14 @@ +namespace TaikoSoundEditor +{ + public enum Genre + { + Pop=0, + Anime=1, + Kids=2, + Vocaloid=3, + GameMusic=4, + NamcoOriginal=5, + Variety=7, + Classical=8 + } +} diff --git a/MainForm.cs b/MainForm.cs index af78802..908bff0 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -458,9 +458,15 @@ namespace TaikoSoundEditor private string JsonFix(string json) { + var specialChars = "!@#$%^&*()_+=`~[]{}<>\\/'"; + foreach(var c in specialChars) + { + json = json.Replace($"\\u00{((int)c):X2}", $"{c}"); + } + + return json - .Replace("\u0022 ", "\\\"") - .Replace("\u0026 ", "\\&") + .Replace("\\u0022", "\\\"") .Replace("\r\n ", "\r\n\t\t") .Replace("\r\n ", "\r\n\t\t") .Replace("{\r\n \"items\": [", "{\"items\":[") diff --git a/Properties/PublishProfiles/FolderProfile.pubxml.user b/Properties/PublishProfiles/FolderProfile.pubxml.user index 596175f..b5777ed 100644 --- a/Properties/PublishProfiles/FolderProfile.pubxml.user +++ b/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. --> - True|2023-07-21T16:41:13.2800435Z;True|2023-07-19T13:08:33.4726289+03:00;True|2023-07-19T12:08:17.2430335+03:00;True|2023-07-18T09:38:50.7615921+03:00;True|2023-07-18T09:25:23.0403589+03:00;True|2023-07-17T17:57:08.1469738+03:00;True|2023-07-17T11:28:41.9554245+03:00;True|2023-07-17T11:15:26.2194507+03:00; + True|2023-07-21T17:03:15.6598520Z;True|2023-07-21T19:41:13.2800435+03:00;True|2023-07-19T13:08:33.4726289+03:00;True|2023-07-19T12:08:17.2430335+03:00;True|2023-07-18T09:38:50.7615921+03:00;True|2023-07-18T09:25:23.0403589+03:00;True|2023-07-17T17:57:08.1469738+03:00;True|2023-07-17T11:28:41.9554245+03:00;True|2023-07-17T11:15:26.2194507+03:00; \ No newline at end of file diff --git a/Tools/tja2fumen-old.exe b/Tools/tja2fumen-old.exe new file mode 100644 index 0000000000000000000000000000000000000000..cbd49d6ccb748882b436e0c1b969ec79797b24db GIT binary patch literal 3717738 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⁣C4I&$?BtKTM6<{ny1{22X<51oWCWqk~Yu zk~Re=aKz-iX?%ftw+1RwG5pCK(NnXJ%J3$xUE9*R z0JCel3w4xXc|X5{iFR=0hq;-*8&-^T6 zr!QyC5N&zGAQ2 zFKYcV5Gl+r?^DPQkS$1vTrKZM3&i(LNK#>}3L9HQcIy}lRdy9JG#@*TeO}b?Er_z5 zfJ2bJhr(pL+I)f-3qC=>$tQXn$?Htp>FC?=UAKzOtWjxzkf%V1<-HQ+g)yZ`<{!nD zI3Iiw^3nYV8Tw`%p+!Qgx_>EB6eERHh_^$Ok?>kV+)RjXD|LNe0jGU76)P4~;0TAA z)=r0v0{ZE0&LxriR+RKz$S%tP}Qj9)McOE;UFu*_lxL~oLe<;*N> z!0~`4GyB68LT>M;NJx`2Sptj8d|enxYWR|#SMa7^MbFWf@1j~OSs2-5s!$voCpkh&H1n% z_-)rSzmqxM1I|cgZ6wJ=DykFb;|V(%Sz>A6N^LqC9+p$XUbO*sKGJ*VP}l?mw}Ktg zw1~Nr7g*gGG~8$Xfw7Ze?ZdDt>h+UA#pL9}RZ?vFU?qbOG5B6O%{N}fc!5Si12$m{ zl_cihLF!B>q|}v=i(uk~T96Y-ys;3E?xXsCgEZ(;=|08AzUD{uL zMEfp!A-xGDM6U<$V30imT`CQ-$I;Vm)pQDKBv_ibSNa)(^cT{<;6cF|{)ILSJFJJb zPdqWf{F4YFk%Q9Yo(Xb|*3@mjSv1}pS}tRI_Cq{=_P7BZlQwwhCZ z$`bQW$G5pcG{Xin>o|K-aW@j1C z2Cvn6^G0?jP(SiZc$iyLV~|_#2pKV&BgHM5{LI!C=6LkvC7f`R^GT2(n1Y5Sx<0n0E?skg2QMT&HJ#OP&QLHJ12Loyl0lmg@Dar)>3FU+6;& zO$hXAUulQzSC)5sO*Xp&bgB3ByV&RR$Kzo>gytx1>ORfsexk2*nuccc3Al5J8z^yZ zNt&@pmI4LzhZ-R3R*{@uH%238Am%bg3FW`!$uxB{1a+I7@?i6ug9E^kT8d7k*$T%| zX$RzWNi$rAC`u$jQD@7dn77l=wg`bAl`JusF7d?P5(A>dckB|4O)Mo~{`zOsIaujL z(GXaSz~(&&O4AWAE#badR4CG;_~q4z#_)>ldTS~Pu>FyJ{PFOZK|o$(FNT!-<~CRm zSb5xUE`=GR&urK0_FJl=)Kt|j7-LP34yC|r7nE4jBkXgClS~E23|HfpfU;C`J60+pf?Hn4PIzRqH|c@qa^5K8$`eL9>k@p z$*81vI25bEbmD>a5Z%MOgs9oA)^ff4s!!W#E?*f1AwrRR{OY zEu!Ah4BU&vT_SN?99*Zwz4xqSHu>0290wu1f9&9%lDI!+;I2?sY*;)Z3= zx0tvViF?k$`46XWDRIA%xK$4BsKe=NB(7TGwm7)%Ux@nVWt7`a+=UYNv4d-sxX&}{ zyN$RLCGL9%_qfEZ&A=(J4pIkTyrI6Q(sE$?)=1ozzxMLEh`7xX7jbYCB<_g}oKD;` z5*KxFqaE^#kAxGsqcX5gMC?ktI0<=~!`xXf}J zi5nV@*#1&@bw~e@6^f4v9-#fS~B<^!ger);cA#SC_71r7OE0wsl8Mq?Er5=*F z$qsIi#6>f3mBjsA;ubi#k7f(LWYRaExN#EqM+f(c#Qi%XzsHC>PU2p6a1Tq|dw=Pz z$BV>$O$#*Xeb2$omblRw`E4U^jl_NL;L0VgJ|n+9#62l-!(i_VxjJ6r@-p(vMO^AO zi96N7ee-is-?bU}`G~tj;(`vYQ{r+maAm}uB5~6l+*1N!;fd`E4WaT8aDK z!M%H<;LDZ_Tn};QO5AYFUIm|DlDJnha0Q4<4VAdD4$hFcMH#pNai4KclJwr>;ATqP za~Zf<#I;D=A_wO`Jil7vej{;zbZ|#W+)WwzEhVm6%!OclNNd~Kcfhs3_zK|;jh&BK zZsDK6_hkMQ_Tiyyv75rQ>^g}!J92xrJAAyapD$=c!PGSgNTLbpyAIwBrU?E^L zUNap}y46xUc8J(v;jTkwk!1eK_rS-HbpIF+%lipiNgCbxBN1Y*`p7Yuu$Fxl95fqg zc?CerP)W-uk?wh>Gp>S@oX)USv{A9vD)&^``$@`&oLcephiXFuBc=DKZ98UGbW)jI zVl&(pDq?xBVP47Ghk}kMeAOFaF(U4G5f`%QQ|Y8m<}agfZzM4;}UkfD`Ul0kyp6Q@F^rP6Rb$;$V4;MUZ<5XI0pTDe^dmVQ9@05b_E_%)L7W zs~+G~!&ql|_s)XZI!Z7fmcIK#k<(5Dg7w_(@HZxE7Kz}YSZ{v%9@Fiu#}5RmecB2cRSsbO5{yOW8K9_}Wp z^vBOKKZsAq{3!Dy7axftE`q4>OOOx!{oJUfHq;?gtucpLC%vE0B*V@vb19tT5U3l} z*UN{-&5NQJ$Iaa6adGp6=wNI@id_UU{`q^C(j9n>M0NknX{t%X#6;IDp}!f+7izr< z0MPe>01;(*M^{0Du{z|Qi5whqMZZ4x9W<5Gudjr#H0)OEpF#np9p>NM?EdZMZBw$a z8DXVT3*K!-DRS${Vmo$vMr>m`w%U$89TQdQ4xV9$3`YnuzgT|4JN(iRC(HBFVZUcs zHpno4k`6NvhAM3Qol^zQeX+y9huT62_FPM8d_qj?!^RZ_VPm#0Y}6EmjgL5cC7bd& zUo($^Dw87BB>X)y#LPIqk#Ua?M`mb+(Y0kIv3|Alvy|vhYRk@ydHEWHK6PJ~F1~v> zl@0diGGWX6Bh9?@t%m(_53@#AF7N30g25%@Cgbk;nnD zn=i`2;IN=@j^&+q9VO%y_Aom)q1Bh3fefFuGo%`N6d9&|CENa^--=uo0AqR2W(LS> z8nyuZ1|Te`RQf?8G{H;wq?1)g`Y%a)urMIkTHLiF3j3(BRRqB$OtI2ef(p>1>@3Qd ze|;C8F$OO85Yl>gc-?>5rx`zr1w_FPf zksq8K`P=B^7|P*sj@_uq{O90HG=C3HiQo)w^c^nOaz_^SK}M1nA_MoYZiWmby>CMg zf-Z8LJ>T+Hp)@gulpQkM%Kf9Ze^e{s{^;!_3nTBv$T#euz#b3hDF#%BJ5E2sT|LQzUAo&)CS|e`vE4T z^C{mg(*8x}SB8($-HFqDBJd#wVyEYr*|{(urzl65+_`GKpRTwDAM*0d+~6qpN8*2JxCE-5=^`_HUR3tNAx#*1@IN(f`4rOwJDWCxH;D%wPV%MW=XyQ~bjo zkr%eAK5OT?LDcw{NYh*2XGPeRA|LYUcJW;yzTGF_1Jd@FpOaH#WY~!^>~Rrxk_2V^{S0y+p!;ThVPs^|eW!OLwwnT>gLWX^DBMGmSVP^_Jjr<5oz$XH5wG7i` zSceFkAj1k}*lQx}91%9Xa2m(Uo6@`9X{(nu_0=G4?)#C1f-PeLSpIDcc%U>}u0ZXC z&9wABXjf^S%IyX2gGhr89yY=laIq%ywdHNSG8=;xT9OiWB3CM5N4)->Sg5;RH!kvl zQ*DB}Ujr%D*dO-zh~|oLgDI5yuKIXdwb`hv(5An`!KDtPDO@c)M%y|F}@BPkyMZ6-7{U*qUTew=vKdk zl{4HLpvk=5_<;UeP#8e}2XH0rZpc=-pcGxsy>k{D^;u?;=r$hs3=_lt6I)J0ED zvF!CJ-N=F9XJJDk_S$}y#r?0NyjY&+^Q1rp^&+kA-#~L$qRdB2{EPb zVwX|GNUaeLlJI>prop?uxKH0yZ4mEzPUDEbA5c>8;cX1whQp zlljGrxPTE9xYSZaFh5_~RCKaC(JOZKB4>yj7GT-U1|v-FQ%Ek68+DTv9y1pOJ67u> zLN)|==di=TNyeJnKBlBU(%XBd?&5wPZjeZ4n`Er{Hy}&jMT3|N_Hi*g(|SK^Dy#HF z;bH*UOIZUPiIh7Zu5{$8SAH8h)cV1Y1ay!eUyt68u7}M(k;~Xe2kB$VbFr_1m`@ae z`Q|$IzS9s5qevb@KmsAo*i_LGor`?_1q@iaP(ZT*MXzgf-+@n*Lk$EiuO%zQAc!j=d$bJ;4OFN+xbE(GxXg z$l^&PvAnCMk_Q#Jf@$t$%*N=lywBUgz&#^yPaq(KjU)8sEfj@$Q`g$;#A2@HyktS1C&P3R1{BUMVZVz+JSz|(APmxo1^!AZLh3*t57;__Wa}yNCzt%mIB!+D zI}G0qk3)P_0mlSL8|N{8(EZ~IY6@%T54lN97CNII(^>h>c{==A9<34m1RQwVe1cQhVu~~P$ZI)kytfoc~$^wuB;ZEeq zB62b!Sq37RuM;@{k=XE=%Q;l+8yXtj+zGU%8j9==Xm2?=;?4{<97HPf=$U9Q=ls|? z*HElDuXuh2-wvSvPl4RUMW0ckH{q=kB`eWuAt0Ls23z-vh%wwLekUhDL_0V>0ETe} zegbb9oJ*EB8z@wr&a|sZ+OBnMTz98Pl|L2_%lpA(=G19cVG$`!c7VezH*2~dl~|v^ z{zG8hh79}uYNr3440}L?d3z8h^~hckTPtHPlPTU2VK>RJ3K_OugiRA+aHgVbi=s2e z;55H{I6uMtGT6&rf$?3mHyYY)e*G0&NE+}WV5balM8R!t6ak%PJD+X+$tbaLhF!|u zl&ZHu+z~87GKzQ3D@_YH=ap_3nQenqiStTpx%{8ZPe9q4fwkmt-}6eg{=)P@OlqmT zzJk(%Xo!>eWm0XuF8EM6iLKFt?EZWeo7Vj$cU{8Pg0?Et6YNM#nHZ0Sc=y91ZahBc zdD_MokbFIHH5J%SB(}URk=aCBfqlyijkmG?^%9mb5yI z9}tN~q5SfM8(0O#WVVOBA>$8Vf#n@kiHsBO;milTfobS{O!DSf*mmYB*cWLD6T_C+ zknvkWxJ?@N)R_>eB^-cmY`>C5Es_pMx3)D z<2wg;xx^V6xG#ybH)IS#pAnRuC2_MeaQzYIY{)2fa04Z7LI&=~#Mv7%COEiV6Gcsn zGjQXHvo~bSc5o{tZcqm92I9CO19dVS+(Q!AJza8+^}UO@yCv=^2lsP{>&(DCO5EiV z_lkoXCvnea;Fc42mc)JJ;Et0xBLnv#aRVjJgU}-@y%) zxbDk)`F93!*%CLw!F@JC)VDJO_cP+&!PoWsf`?n%-{s*XE9?u@wW7gktT<3Y{Hm{<%B0`57YQ+;)#y@ za+GbJ4ucG5g}5AIPiPWP6pE>>*p$e9{NIJyt{bq$HT48ZxKkMcL*%S36n7 zUI&T;#POn@$iZfS0YU;m!7tJn#uFPo@#!qHryEH4f5ddOg(&I&ncv$2uvd9nileS~ z2YRkKVJn*(tDsnN-DCa$|0kW$81J#q`bmZ8^=Kls{&#pccik`iLAUnq|K*NqvUeqA zKr+{iK8R#!R(OTio9~Jw(PF%JpF{62(QqG$1ZLtf0p+rGr}?7H9g~Cg=6soKDc8U{ z&40j!@CN70jCwOksyfZr@Wh5nxH{gYaoTAoJj*o#5ktu@hiFK{9_QV?M{O2=t&U1)fe^bezf+3Tkh8H(mh1hhCF8+aD% zMqveeCnH02s*a-o!W}>7iMiy~(hlbEG6PWo`oOlCgC+gu$;gK-cY=7XH;={>)c+pE zup6`kYk9LkHbMJ86_Ix%((c9brj#3pNustRp440|sacH;o1n&TQ&XBr&B=YJsm&MM zG#_IIC}^>GuJ0bwOT!%@Nka@#Qr)3HiYA1J6UC(Xn+!3Dz-jO8+A5mViFma0zr3YK0u+zGtJ|@+v44`s)%We2Gv+q61mpZ-QctNuW{9>qIqi zhX(Hl@zHmC5HngGR61JY?hx{>TSal6-`rJi5O@Q z$j`-49}%NN?zk5ca}oNeeU^d;anaiWqa9&mz%mGuS=0-AjB*MqztX-b1^zr-l~P9c z8}7rn1x$xB6^V}jmgRCDqSkLz=uoW1U(9csgW2G;YL~eDD1hD{zZsqTe%NL!N)QKO$4MAma)Yx{l{_oeUc9M+Jqm}b znu6Fzj+ExpA2E}k+fx?ijSS9uzl;N--#4e@t!lHr{nMR zC=}ZwnJAvhmizgu;X7ha1iz>b(U#&H=X%30;(H^$ zoAA8@-y8A02j6_(6ONl%vFDMO*we!d)gf5``e1h;9$%Wzsfsz&P3}orsKbu~&FD-G zFM=GQQ&xgmc&itcOY_sA7bNSTx3-twfK9LdqNF!q)2nZk^agBt^*s)~Vub|s3Lmy0 z5_t-e1HQxPgI;X>AYUS+|Pf z*So(6{zK=!8fY>xE^I=N9)hkYKDsz$?J=|PEru*CvG$l(h!WOg@cQKrhHo%$6i-|w zL%%q^UyjcpZH(FS@0=&L4d1_Vpp~N=7O6)43=$>m*<+F4VOdchqyKnDqEqbQsTk3J z*591&KMG>de_*tM7xa6>uU;v8lle20B#&OhzQ#2!^ys=+9@(ad`!1%zXAM8bg2EXn zXqM&Oa(=dg6XiS%4ATsKuu8qFzHlkQ^@VHkz;Q2h#wQ9l;@v!dCkt;k2cF6OM&|7t z*0G@pR-PKf1q1bkJBTWXvD%p~k9fSK8A5_Y-`b1-{=vAiFjC%pU= z_-Vo*l9i?kpF{7sP61}!gsYqtgC_}ocKk0w4SkmPGvokOcd~9o3g?JbKg;_%!o;^w zgz_5>p~`O9Ro)fcZHWCnc$m9aI94EpO|YKh|M?{RiNd0hc-F0ATcz!C&X=$s5&8EX zq>?iwDJ5**L*yeduvb2CtyM18M+JGpa{BlCEbBiD9PTT$SME?U?ChObEm)!WI2eB& zD&1|iBfUICuGT~SLl8sBP&QY1_AV5|)53KK#WxA7G*d^jUttsJYW40H1Xt;rr?@!d zZ{2syT~9u%VBcR@9k*LAeqZ;0P<@-|N?89~Yd#@zo<9rs$iZPN41eALSJ8lU{?-`o zb@@P#w`N684=3-kbQg~P1=8z(&N6-klZuL{DA?^!qUR)P@+8 zLU;d2@)uUb)h*W#u(~pX{j!o}z4jg}^(MQhvq{{@0^^@rzm(+oJ7Pns{LQhv zDqNqbD{B3H2*tRaoN%xzkuwS7XVn-jTMTb|DcV6a$~bj-&bX>^i5#s0$2K{Z?%s>~ zd0_cQ&oalNng|-jqAkQrpknv#__kh#rJe_7;HYU`=&4ZZPqFs(!aUIIW`p>!S zN}cAv5KN6Mc!*Bo@`IOhG2fXhu?J*aJ$2;!tp+^r$j?`v{%`!mePLPVsc-*h zo(85szi^+}jL6KLn7^*fMXPgJKFhp#J5>u;@?!(h(Pm&RcsdTiW2~qJhHT~52Ivml zMvC3lyvQ>~PuHHX13%L}3VSK~eD4;ITSq}<(9s4WJ&_we}Zn7Qdo8slPMS^RB ze;jM5^|8;Y46~A%Cc8)-^GQ}@Nms)^ASv>y-RKn&L&7t1mJLxNvJ6t*IDlZdI12ee zyhrGXGc?=`6mQGbt<@p__jh24N|KtICYsfIESm@Z0&lI@{+a(39=xH^+a$j)#>0H> zC9;16=Ew8B)N^4Y?*nrLNwZp^Ht+nBcYmt*#wuI?35nsKhH=0h%WAs4d!H<%6^^R$ z;!Lhx*^H*N_g$~p@0?$?XcJ!sn;5qt9mD{gHLqM z*5lu0&-Ioz;WKBtx}+(?vS|by986m};uXpUIyF7qas8<7^Tn`^vEWivmF{V^2q}G+ zeW8R6hb27GY{^MkmbdO~NIGwE!FD>#dVh}3eZaB%Mb)|mg_B{$ELE4ZI$LEH6*4#a zc3wCe&$?AC&e18%*4dxm#Au<@e|LSFk{LcBi|E*8qB{Z~z&abgOHe%sP&Ub-g9M1= zB#ge7{ZvQ*HXQJ>V^%?s59xq56*V|RAYy|ouNR5qJ-5Ze2KF|I6<_n*tz?FnD3%71 zMTy8lWaf;9wy2q-MM3a*Vb>yWzB@-8=kMFmlP*#_sK(ar8(-jwT?`s2i z>#oFGdNw{IqJ}!n-NKm*cj9QIkPD}J0jkN`Rie(*SZAue8DgKr+R52K@_$D zWsuA=J2hT$D_^UqLFr~}_(A|Q#?Df#CPD$lxTrT8g?C?yOYEc)I!#d6LkcmO%CAB! zKo=2Ic7&{{hnO?9CUU+PIV0r=BngU?`9EOWqd5)aamd})CDaC7t)1ptyweGHd?ZuAZGvE9s`fSzPvQ?8PQ->XE zbpxk-rhy}~umNR`xbHV$??3sPrXq}qn-RH(Ou-Yo5nB?ocGv=j0QfVT&ve+r!Qv_I z^-SiE#>0Hzd9tNDDi{Gt#r;m3(h^PZ$rAi1!PiRgcy=yZBKZo5TupAIi-de*pFPS1 z6PQP}%!B(q%@brE(x!l^Y+KH}`4f^rt)3q5D-Rp*uK{ft<9($w-cK)_BL{n(VjJLK zFJ!yK8SM9>X7*r@drUFXSM{zZ^p5vfBY^A)k%FfONrY61wza&m5_^=7M#Ts(y8p(F zWEQX9$C)WZCX!uM4CrZ&h;h9XIRH5PuyOqgGGTtIMh@z$z$P)Mi+!Lt%f@dG>XYz- zc8ijYZ$FzJ)Q5-xeIhBz7|_qh_aOs1b}oQ9w!DF59L?!Mu-WJcT*zoj(Zq7Tg9i4M zZq}Mp9(8#~n8%FHRF@5PZK^x)l?5|3dAF+I-XC>bOL;OU_dJFr7cxj4*WSF-qYY{| znz4Oub1Wx0E~^#kJvCwMnTj6o_V{7GS*mLM=T6qPq8ST&VUGP#a89+ytw}I)mLFu==^jm)VZE*Tc#alSu;t^blw^(Y!WQd30gU4%%^$e