From 700eef9d94108a8dd61d1c1506621f7aebc1ac24 Mon Sep 17 00:00:00 2001 From: nishikawa_takeshi Date: Mon, 1 Sep 2008 11:24:27 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=9E=E3=82=B9=E3=82=BF=E3=82=A8=E3=83=87?= =?UTF-8?q?=E3=82=A3=E3=82=BF:=E5=85=A5=E5=8A=9B=E3=83=81=E3=82=A7?= =?UTF-8?q?=E3=83=83=E3=82=AF=E5=A4=89=E6=9B=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2352 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../tools/MasterEditorTWL/MasterEditorTWL.ncb | Bin 11119616 -> 11119616 bytes .../tools/MasterEditorTWL/MasterEditorTWL.suo | Bin 38912 -> 41472 bytes .../MasterEditorTWL/Debug/BuildLog.htm | Bin 10660 -> 10660 bytes .../MasterEditorTWL/MasterEditorTWL/Form1.h | 627 ++++++++---------- .../MasterEditorTWL/Form1.resX | 30 - .../MasterEditorTWL/MasterEditorTWL.vcproj | 4 + .../MasterEditorTWL/MasterEditorTWL/lang.h | 88 +++ .../MasterEditorTWL/MasterEditorTWL/srl.cpp | 2 +- 8 files changed, 375 insertions(+), 376 deletions(-) create mode 100644 build/tools/MasterEditorTWL/MasterEditorTWL/lang.h diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL.ncb b/build/tools/MasterEditorTWL/MasterEditorTWL.ncb index 3551660763fd4e519175a8deb0406db5da3c1b72..fc8dc67caac2c7e04b821910757a304a45bde0dc 100644 GIT binary patch delta 56332 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 MZ(vi>HrI{(KZI1np8x;= delta 47815 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 diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL.suo b/build/tools/MasterEditorTWL/MasterEditorTWL.suo index 3a23a0d430c2d419467fd68d318351ff4aa9b43d..af6f0bd7c09d2312a76ac9cf745d18dbbd63320e 100644 GIT binary patch delta 3437 zcmaKvc}!GS6vpp;%#5h03{pU?Y=RVAK*SZ7aYb-NiVIpYii%oP#09X$p{-Uc7F({S zrkd2ori-@G_QggU*VI4MYFygXq_)Ot(`Yp{X=v)o^!wnDj>)7aoH^h7z4Pw5_rCk? zd(ZN-49`O7dkw42JiIH~IbkEW`ouL2^t+r)7f;gAa#~fRBWG;G^K9 z;XU9jng9Jx0Lz8v!6(8e!6(C~z^5wZR2dNO=AUeElywZBc_1}8?5qv}@{F?AIo4VZ zOQWNWt_=F~QrtA{%0ad_(q0$8Uh6#jVM2&@WbHd~_^TdILL7x9AMb8RiR=}M z9JWi3fOmp-m1FiX$Kn7mK1-QjW4^HOr5w}_Cfj>b$F_CVM=G@|(*7f}$%<~B!lyXf z1oy+yu5m}@+7kw5xb+CTI%k5_(G|UCm@ArXsNc3mnFL3qeJgjK(R#{moP1HcH0S??R_5gWy>1>(&ErM(>S@!oGablkO|TpD z+d3>)wCyiEYxxQ>s&P0y1CbqxgBL-w&YS@DlCWZ72{`YCX4CV8b$}iVOMr`4n&FGJ(m^xzM!V0}`J?vyNXFi`G9iZjX31An#{kzX+R*^EZXv5;g_( z)omQ4;^ZBH-JnaLX^p}-lCaL$zz{niveRVKq30qN2;)Frgl4A-g>fKW=(iB(1+YcX z4XCe51@fXY=t{(80f`mR>%dkC<4CH6RSTN}wjR0^u~r!0G5^Rw>V)xjZiOC>SdZxA zNVv3i;DAeOrzCO~-hrm=62=$6hm!Y^Fc#S@d7lVlkx!vnWS=nB_!62m4hidz`s#?l zqXOfR@HsTs@o`}+d|L9(2+IUJFYKZ)zGF^6)2;~P0KbRkzI|2LLg=5MLwNsh2wVVo z6PosyFfa7q&577&@E&Gkv*F>;>|nGo>Tb|3#5iHa&|M@iK7b_(>qEx-&&MuP;2=rN z0vjf5lrVlzjT1Ie7>i7XrsWIsLKg@t5yp-$fbNU9NLV4XZ;2$X5I6&HrLf9?#A;zX zh0R3X`@+r$D*!tutN`=PqI2MdoO@VN0Gr#w#;b(_xvEQ{Ih9qyqM^AEY3qb>KWN)b z@O}d0H;OXH%EssiMkn6wT&Cu!<#-PIs>R4!)3AKIGXB&!ooVu&3Fc(CEY}n8=e0Q% zmcu=R*V9aKdZM`$HrT|6#)h__|ASsoiN6P^uiNgGs21Ys+VjEhw|Cevpql zBHuyWK{+E_q+xIx2S`Sbf%9{c=XuPhhzq|1d?=i(Cww%VYz(|LuL#-!pD&DU#lvB- z&3gh9Ide>+ErGXm(d|h$VVgpmXK%l;O1#EOyl2AeB2D6!dnRm4l$}(!6raIH$M$bn zlpN$eV&^P6qRrBZ0civ9|3GI|?;IS0*NWdi%xdl+>ut^s@=3aCdDo!dBL~Xc1?AT& z8nyA&L7(ZugR_q&R0}hLG$B^H)~VAG1T;^sR&ZXT&u`6C*QteJlT(QM|)fS zA*X(1++AvPw5{LltXmdgr)L*olzR4AJ$)@5g7s`hWR(`o95es` delta 3035 zcmZveX-rgC6vyvF`l-8s}@- zV6)*l$`WV`Du7Ccca+@d)a$~(4~siz8Fp0$0ErBvMQ`LP`psL0$}u(sE)OvU;;dc$ zZfTb(MuW9FG`Qkd{ zOfO%(d+h9B^ZSuP9E&vWrVMJPr$`&@D6yTK+H8^YjP<#BT6lY2cUpTMT}<@EgsOPm zZrsjaqM2R+7^ljU5>>KpR`rE*&5}w^dV%^2ud8qLiAMjN>ym_tI`2?V<`x9YF_4t4 zDw7guyis3VEKTDWFUr%Mp27AL$EnuaX!VQ(@kV-}C| z<NRAHxxsG7EvOfkqRjij@ozL?b>Zv6&g9co&+we*jmf0?7{= z8_NRaltYYY=n-fddYl=WFM6QKeq)vbeOH}bv^6~@{J&+4hsM8fF{7+l0@v`JP#Cm_}_Gb|MkWQW@l>a+GnXr;sNe#mxTlqxeS zS!LwgRc2<8DyTlAhObLi*K4D~s>N#j31Ni`H8J`vbzw)ACl&|GF&9|_&q?3P2<%?k ztdWS+Li(0QGkcj?6j&3FO<+d%Fd8}(F@@P0=pyJ=#Kp`KplO|FMZsRp4d3~*K)^gqx;hIT)nL5HTjY-UEYX+z6_?+!D% z-G$H&#Byfypevxs)-qcIU2hf2+c4VSlOeb9tn^S#ZJgf-y@jvQ!E7;@V%EjX1$Kbh zA!bz55oqf8ab|_km!Rh(UiM)o+p{OV*@m^H8>d180do+85Q)(P+y+fgN4pP;W){PY zmcR*3n<>sGFOk`3W^-_U9JAM$717?Bh=Z{>nZocT=pIx{md=dsq!fA);sPJ`F?0pk zUS@P7`=F_){mke_jzMon{KSWyfbOKd-OG>$orZ2gJmZsi9=ZkW0yDakOUy1aD+2ot zdKuzXW--v2&}285(K7u2O)t?O5k1su+OfajfOhOHPNXjU1WooUGkPc7<-B{$Xp%de z_mCM)@(7wH`I8yV@f4co@G_f(`9*;J88jnOF>&y}kU$$Vh#5^B!Fe`jDPSX*#V~V% z1w)g?GNWsbgrjn~v>9;) zvr6ctoVU`4z0Itd7_C2j#WynC%!!l1wldqvjD8sHVz!$ZO|l1?Y%eo6^nPZaF{3V= zfS!Q(IkQq|&nZqk$8Z7Q1!k9h60b13&1@m^?l7~Vw=}_gcqH{1wwqZw^d4yH(BA(s zpx4DdAJ_#=c9Qon;oSF4kqMU2D&&FSlEzP;%s?&gPjadzr)E zb8lU9jNdooiIxz*{N{#!shV2+UMtXJ^*d(fd;a;VHqCFovvQkM6S~9I`qnx>HLIH& z3Y4r(Rmt17(TiH$++0B=g}EHvX)XsfU!;D7-+Pg2Ra=L;Rr#&z$#EDzw;v5qS=|Hj zZ}rs?_>;@x{6=zG+OJ6q_TJPQAdr;37V9_ b#3kdUKMz9;37ggCn|520ex(hD3&v$$@N|o3AMB O067Xn(dPL|tn2{&sVDRR delta 231 zcmZ1yyd-#o8Jn;LgA;=>5SlU=F&Hu!0I}I-PqtuotP<;a3mJhD&geQOd$O5s&fq`B zjZJd1qcm8T3l?3*n}5jIFadR8O0MUX-kc<_$0%*V;EJx3L60GcA(5eEav+=L<|_(2 OK#sytw0XV~D?0!b87K|_ diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h b/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h index 359f4fcb..46b2e876 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h @@ -4,6 +4,7 @@ #include "deliverable.h" #include "crc_whole.h" #include "utility.h" +#include "lang.h" #include "FormError.h" namespace MasterEditorTWL { @@ -505,14 +506,18 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colWarnName; private: System::Windows::Forms::DataGridViewTextBoxColumn^ colWarnBegin; private: System::Windows::Forms::DataGridViewTextBoxColumn^ colWarnEnd; private: System::Windows::Forms::DataGridViewTextBoxColumn^ colWarnCause; -private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorName; -private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorBegin; -private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorEnd; -private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorCause; + + + + private: System::Windows::Forms::Label^ labMultiForeign2; private: System::Windows::Forms::DataGridView^ gridLibrary; private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibPublisher; private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorName; +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorBegin; +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorEnd; +private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorCause; @@ -886,11 +891,11 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; this->colWarnEnd = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->colWarnCause = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->gridError = (gcnew System::Windows::Forms::DataGridView()); - this->colErrorName = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); - this->colErrorBegin = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); - this->colErrorEnd = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); - this->colErrorCause = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->labFile = (gcnew System::Windows::Forms::Label()); + this->colErrorCause = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colErrorEnd = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colErrorBegin = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); + this->colErrorName = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->gboxSrl->SuspendLayout(); this->gboxCRC->SuspendLayout(); (cli::safe_cast(this->numEULA))->BeginInit(); @@ -1595,9 +1600,9 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; this->gboxPerson2->Controls->Add(this->labPerson2); this->gboxPerson2->Controls->Add(this->labCompany2); this->gboxPerson2->Enabled = false; - this->gboxPerson2->Location = System::Drawing::Point(392, 88); + this->gboxPerson2->Location = System::Drawing::Point(377, 88); this->gboxPerson2->Name = L"gboxPerson2"; - this->gboxPerson2->Size = System::Drawing::Size(304, 234); + this->gboxPerson2->Size = System::Drawing::Size(347, 234); this->gboxPerson2->TabIndex = 14; this->gboxPerson2->TabStop = false; this->gboxPerson2->Text = L"担当者2"; @@ -1614,8 +1619,9 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; // tboxNTSC2 // this->tboxNTSC2->Location = System::Drawing::Point(66, 200); + this->tboxNTSC2->MaxLength = 50; this->tboxNTSC2->Name = L"tboxNTSC2"; - this->tboxNTSC2->Size = System::Drawing::Size(220, 19); + this->tboxNTSC2->Size = System::Drawing::Size(268, 19); this->tboxNTSC2->TabIndex = 11; // // labFax2 @@ -1639,43 +1645,49 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; // tboxFax2 // this->tboxFax2->Location = System::Drawing::Point(66, 149); + this->tboxFax2->MaxLength = 20; this->tboxFax2->Name = L"tboxFax2"; - this->tboxFax2->Size = System::Drawing::Size(94, 19); + this->tboxFax2->Size = System::Drawing::Size(140, 19); this->tboxFax2->TabIndex = 13; // // tboxMail2 // this->tboxMail2->Location = System::Drawing::Point(66, 175); + this->tboxMail2->MaxLength = 50; this->tboxMail2->Name = L"tboxMail2"; - this->tboxMail2->Size = System::Drawing::Size(220, 19); + this->tboxMail2->Size = System::Drawing::Size(268, 19); this->tboxMail2->TabIndex = 14; // // tboxTel2 // this->tboxTel2->Location = System::Drawing::Point(66, 125); + this->tboxTel2->MaxLength = 20; this->tboxTel2->Name = L"tboxTel2"; - this->tboxTel2->Size = System::Drawing::Size(94, 19); + this->tboxTel2->Size = System::Drawing::Size(140, 19); this->tboxTel2->TabIndex = 12; // // tboxFurigana2 // this->tboxFurigana2->Location = System::Drawing::Point(66, 100); + this->tboxFurigana2->MaxLength = 50; this->tboxFurigana2->Name = L"tboxFurigana2"; - this->tboxFurigana2->Size = System::Drawing::Size(220, 19); + this->tboxFurigana2->Size = System::Drawing::Size(268, 19); this->tboxFurigana2->TabIndex = 11; // // tboxPerson2 // this->tboxPerson2->Location = System::Drawing::Point(66, 75); + this->tboxPerson2->MaxLength = 50; this->tboxPerson2->Name = L"tboxPerson2"; - this->tboxPerson2->Size = System::Drawing::Size(220, 19); + this->tboxPerson2->Size = System::Drawing::Size(268, 19); this->tboxPerson2->TabIndex = 10; // // tboxDepart2 // this->tboxDepart2->Location = System::Drawing::Point(66, 50); + this->tboxDepart2->MaxLength = 50; this->tboxDepart2->Name = L"tboxDepart2"; - this->tboxDepart2->Size = System::Drawing::Size(220, 19); + this->tboxDepart2->Size = System::Drawing::Size(268, 19); this->tboxDepart2->TabIndex = 9; // // labDepart2 @@ -1690,8 +1702,9 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; // tboxCompany2 // this->tboxCompany2->Location = System::Drawing::Point(66, 25); + this->tboxCompany2->MaxLength = 50; this->tboxCompany2->Name = L"tboxCompany2"; - this->tboxCompany2->Size = System::Drawing::Size(220, 19); + this->tboxCompany2->Size = System::Drawing::Size(268, 19); this->tboxCompany2->TabIndex = 8; // // labMail2 @@ -1758,9 +1771,9 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; this->gboxPerson1->Controls->Add(this->labFurigana1); this->gboxPerson1->Controls->Add(this->labPerson1); this->gboxPerson1->Controls->Add(this->labCompany1); - this->gboxPerson1->Location = System::Drawing::Point(38, 88); + this->gboxPerson1->Location = System::Drawing::Point(17, 88); this->gboxPerson1->Name = L"gboxPerson1"; - this->gboxPerson1->Size = System::Drawing::Size(304, 234); + this->gboxPerson1->Size = System::Drawing::Size(344, 234); this->gboxPerson1->TabIndex = 8; this->gboxPerson1->TabStop = false; this->gboxPerson1->Text = L"担当者1"; @@ -1795,50 +1808,57 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; // tboxNTSC1 // this->tboxNTSC1->Location = System::Drawing::Point(66, 200); + this->tboxNTSC1->MaxLength = 50; this->tboxNTSC1->Name = L"tboxNTSC1"; - this->tboxNTSC1->Size = System::Drawing::Size(220, 19); + this->tboxNTSC1->Size = System::Drawing::Size(261, 19); this->tboxNTSC1->TabIndex = 8; // // tboxFax1 // this->tboxFax1->Location = System::Drawing::Point(66, 149); + this->tboxFax1->MaxLength = 20; this->tboxFax1->Name = L"tboxFax1"; - this->tboxFax1->Size = System::Drawing::Size(94, 19); + this->tboxFax1->Size = System::Drawing::Size(131, 19); this->tboxFax1->TabIndex = 5; // // tboxMail1 // this->tboxMail1->Location = System::Drawing::Point(66, 175); + this->tboxMail1->MaxLength = 50; this->tboxMail1->Name = L"tboxMail1"; - this->tboxMail1->Size = System::Drawing::Size(220, 19); + this->tboxMail1->Size = System::Drawing::Size(261, 19); this->tboxMail1->TabIndex = 6; // // tboxTel1 // this->tboxTel1->Location = System::Drawing::Point(66, 125); + this->tboxTel1->MaxLength = 20; this->tboxTel1->Name = L"tboxTel1"; - this->tboxTel1->Size = System::Drawing::Size(94, 19); + this->tboxTel1->Size = System::Drawing::Size(131, 19); this->tboxTel1->TabIndex = 4; // // tboxFurigana1 // this->tboxFurigana1->Location = System::Drawing::Point(66, 100); + this->tboxFurigana1->MaxLength = 50; this->tboxFurigana1->Name = L"tboxFurigana1"; - this->tboxFurigana1->Size = System::Drawing::Size(220, 19); + this->tboxFurigana1->Size = System::Drawing::Size(261, 19); this->tboxFurigana1->TabIndex = 3; // // tboxPerson1 // this->tboxPerson1->Location = System::Drawing::Point(66, 75); + this->tboxPerson1->MaxLength = 50; this->tboxPerson1->Name = L"tboxPerson1"; - this->tboxPerson1->Size = System::Drawing::Size(220, 19); + this->tboxPerson1->Size = System::Drawing::Size(261, 19); this->tboxPerson1->TabIndex = 2; // // tboxDepart1 // this->tboxDepart1->Location = System::Drawing::Point(66, 50); + this->tboxDepart1->MaxLength = 50; this->tboxDepart1->Name = L"tboxDepart1"; - this->tboxDepart1->Size = System::Drawing::Size(220, 19); + this->tboxDepart1->Size = System::Drawing::Size(261, 19); this->tboxDepart1->TabIndex = 1; // // labDepart1 @@ -1853,8 +1873,9 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; // tboxCompany1 // this->tboxCompany1->Location = System::Drawing::Point(66, 25); + this->tboxCompany1->MaxLength = 50; this->tboxCompany1->Name = L"tboxCompany1"; - this->tboxCompany1->Size = System::Drawing::Size(220, 19); + this->tboxCompany1->Size = System::Drawing::Size(261, 19); this->tboxCompany1->TabIndex = 0; // // labMail1 @@ -3379,34 +3400,6 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; this->gridError->Size = System::Drawing::Size(699, 103); this->gridError->TabIndex = 37; // - // colErrorName - // - this->colErrorName->HeaderText = L"項目名"; - this->colErrorName->Name = L"colErrorName"; - this->colErrorName->ReadOnly = true; - this->colErrorName->Width = 120; - // - // colErrorBegin - // - this->colErrorBegin->HeaderText = L"開始"; - this->colErrorBegin->Name = L"colErrorBegin"; - this->colErrorBegin->ReadOnly = true; - this->colErrorBegin->Width = 60; - // - // colErrorEnd - // - this->colErrorEnd->HeaderText = L"終了"; - this->colErrorEnd->Name = L"colErrorEnd"; - this->colErrorEnd->ReadOnly = true; - this->colErrorEnd->Width = 60; - // - // colErrorCause - // - this->colErrorCause->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnMode::Fill; - this->colErrorCause->HeaderText = L"要因"; - this->colErrorCause->Name = L"colErrorCause"; - this->colErrorCause->ReadOnly = true; - // // labFile // this->labFile->AutoSize = true; @@ -3416,6 +3409,34 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; this->labFile->TabIndex = 36; this->labFile->Text = L"ROMデータファイル"; // + // colErrorCause + // + this->colErrorCause->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnMode::Fill; + this->colErrorCause->HeaderText = L"要因"; + this->colErrorCause->Name = L"colErrorCause"; + this->colErrorCause->ReadOnly = true; + // + // colErrorEnd + // + this->colErrorEnd->HeaderText = L"終了"; + this->colErrorEnd->Name = L"colErrorEnd"; + this->colErrorEnd->ReadOnly = true; + this->colErrorEnd->Width = 60; + // + // colErrorBegin + // + this->colErrorBegin->HeaderText = L"開始"; + this->colErrorBegin->Name = L"colErrorBegin"; + this->colErrorBegin->ReadOnly = true; + this->colErrorBegin->Width = 60; + // + // colErrorName + // + this->colErrorName->HeaderText = L"項目名"; + this->colErrorName->Name = L"colErrorName"; + this->colErrorName->ReadOnly = true; + this->colErrorName->Width = 120; + // // Form1 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 12); @@ -3873,74 +3894,6 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; this->setParentalForms(); } - // フォームの入力をチェックする - System::Boolean checkSrlForms(void) - { - // 不正な場合はダイアログで注意してreturn - //if( this->checkTextForm( this->tboxTitleName->Text, this->labTitleName->Text ) == false ) - // return false; - //if( this->checkTextForm( this->tboxGameCode->Text, this->labGameCode->Text ) == false ) - // return false; - //if( this->checkTextForm( this->tboxMakerCode->Text, this->labMakerCode->Text ) == false ) - // return false; - //if( this->checkTextForm( this->tboxPlatform->Text, this->labPlatform->Text ) == false ) - // return false; - //if( this->checkTextForm( this->tboxRomSize->Text, this->labPlatform->Text ) == false ) - // return false; - - // リージョン - if( this->checkBoxIndex( this->combRegion, this->labRegion->Text ) == false ) - return false; - - // リージョンを決める - System::Boolean bJapan = false; - System::Boolean bAmerica = false; - System::Boolean bEurope = false; - System::Boolean bAustralia = false; - switch( this->combRegion->SelectedIndex ) - { - case 0: - bJapan = true; - break; - case 1: - bAmerica = true; - break; - case 2: - bEurope = true; - break; - case 3: - bAustralia = true; - break; - case 4: - bEurope = true; - bAustralia = true; - break; - -#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) - case 5: - bJapan = true; - bAmerica = true; - bEurope = true; - bAustralia = true; - break; -#endif - default: - break; - } - - // ペアレンタルコントロール - this->checkParentalForms( bJapan, this->combCERO, this->cboxCERO, this->cboxAlwaysCERO, this->labCERO->Text ); - this->checkParentalForms( bAmerica, this->combESRB, this->cboxESRB, this->cboxAlwaysESRB, this->labESRB->Text ); - this->checkParentalForms( bEurope, this->combUSK, this->cboxUSK, this->cboxAlwaysUSK, this->labUSK->Text ); - this->checkParentalForms( bEurope, this->combPEGI, this->cboxPEGI, this->cboxAlwaysPEGI, this->labPEGI->Text ); - this->checkParentalForms( bEurope, this->combPEGIPRT, this->cboxPEGIPRT, this->cboxAlwaysPEGIPRT, this->labPEGIPRT->Text ); - this->checkParentalForms( bEurope, this->combPEGIBBFC, this->cboxPEGIBBFC, this->cboxAlwaysPEGIBBFC, - this->labPEGIBBFC->Text + " " + this->labPEGIBBFC2->Text ); - this->checkParentalForms( bAustralia, this->combOFLC, this->cboxOFLC, this->cboxAlwaysOFLC, this->labOFLC->Text ); - - return (this->hErrorList->Count > 0); - } - // SRLの特殊な設定をフォームにセットする(言語切り替えで表示を変えたいので独立させる) void setSrlFormsCaptionEx() { @@ -4116,59 +4069,6 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; this->hSrl->hArrayParentalAlways[OS_TWL_PCTL_OGN_OFLC] = gcnew System::Boolean( this->cboxAlwaysOFLC->Checked ); } - // ペアレンタルコントロール関連のフォーム入力が正しいか書き込み前チェック - void checkParentalForms( - System::Boolean inRegion, System::Windows::Forms::ComboBox ^comb, - System::Windows::Forms::CheckBox ^enable, System::Windows::Forms::CheckBox ^always, System::String ^msg ) - { - // リージョンに含まれていないとき: 0クリアが保証されるのでチェック必要なし - if( !inRegion ) - return; - - if( !enable->Checked ) // 有効フラグが立っていないとき - { - // 何も設定されていない - if( !always->Checked && (comb->SelectedIndex == (comb->Items->Count - 1)) ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, - msg + ": レーティング審査を必要としないソフトであるとみなしてデータを保存します。", - "Parental Control", msg + ": Save ROM data as Game soft which needs rating examinination.", true ) ); - } - else - { - this->hErrorList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, - msg + ": 制限が無効であるにもかかわらずレーティング情報が設定されています。", - "Parental Control", msg + "Rating can be set only when control is enable.", true ) ); - } - } - else // 有効フラグが立っているとき - { - if( !always->Checked && (comb->SelectedIndex == (comb->Items->Count - 1)) ) - { - this->hErrorList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, - msg + ": 制限が有効であるにもかかわらずレーティング情報が設定されていません。", - "Parental Control", msg + ": Rating must be set when control is enable.", true ) ); - } - else if( always->Checked ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, - msg + ": Rating Pendingが指定されています。レーティング年齢が審査されしだい、再度、ROMを提出してください。", - "Parental Control", ": Rating Pending is setting. When rating age is examined, Please submit again.", true ) ); - } - else if( comb->SelectedIndex == (comb->Items->Count - 1) ) - { - this->hErrorList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, - ": Rating Pending指定とレーティング年齢を同時に指定することはできません。", - "Parental Control", ": Rating setting is either rating pending or rating age.", true ) ); - } - } - } //checkParentalForms() - // SRL内のペアレンタルコントロール情報を抜き出してフォームに反映させる void setParentalForms(void) { @@ -4212,8 +4112,7 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; case 17: index = 3; break; case 18: index = 4; break; default: - index = 5; - this->parentalMsg( 0, this->labCERO->Text ); + index = 5; // リード時のチェックがあるため起こり得ない break; } this->combCERO->SelectedIndex = index; @@ -4230,7 +4129,6 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; case 0: index = 5; break; // 0はデフォルト値なのでエラーメッセージを出さない(自動的に未審査扱い) default: index = 5; - this->parentalMsg( 0, this->labESRB->Text ); break; } this->combESRB->SelectedIndex = index; @@ -4251,7 +4149,6 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; case 18: index = 4; break; default: index = 5; - this->parentalMsg( 0, this->labUSK->Text ); break; } this->combUSK->SelectedIndex = index; @@ -4268,7 +4165,6 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; case 0: index = 5; break; default: index = 5; - this->parentalMsg( 0, this->labPEGI->Text ); break; } this->combPEGI->SelectedIndex = index; @@ -4285,7 +4181,6 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; case 0: index = 5; break; default: index = 5; - this->parentalMsg( 0, this->labPEGIPRT->Text ); break; } this->combPEGIPRT->SelectedIndex = index; @@ -4305,7 +4200,6 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; case 0: index = 8; break; default: index = 8; - this->parentalMsg( 0, this->labPEGIBBFC->Text + this->labPEGIBBFC2->Text ); break; } this->combPEGIBBFC->SelectedIndex = index; @@ -4325,7 +4219,6 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; case 15: index = 3; break; default: index = 4; break; - this->parentalMsg( 0, this->labOFLC->Text ); break; } this->combOFLC->SelectedIndex = index; @@ -4406,49 +4299,177 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; } } - // ペアレンタルコントロール関連情報専用のダイアログメッセージ - void parentalMsg( const System::Int32 type, const System::String ^msg ) + // ---------------------------------------------- + // SRL関連のフォームのチェック + // ---------------------------------------------- + + // テキスト入力がされているかチェック + System::Boolean checkTextForm( System::String ^formtext, System::String ^labelJ, System::String ^labelE ) { - System::String ^prefix; - System::String ^suffix; + System::String ^msgJ = gcnew System::String( "入力されていません。" ); + System::String ^msgE = gcnew System::String( "No setting. Please retry to input." ); - if( this->stripItemJapanese->Checked == true ) + System::String ^tmp = formtext->Replace( " ", "" ); // スペースのみの文字列もエラー + if( (formtext == nullptr) || formtext->Equals("") || tmp->Equals("") ) { - prefix = gcnew System::String( "ペアレンタルコントロール情報の " ); - } - else - { - prefix = gcnew System::String( "Parental Control Info. " ); + this->hErrorList->Add( gcnew RCMRCError( labelJ, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, msgJ, labelE, msgE, true ) ); + return false; } + return true; + } + // 数値入力が正常かどうかチェック + System::Boolean checkNumRange( System::Int32 val, System::Int32 min, System::Int32 max, System::String ^labelJ, System::String ^labelE ) + { + System::String ^msgJ = gcnew System::String( "値の範囲が不正です。やり直してください。" ); + System::String ^msgE = gcnew System::String( "Invalidate range of value. Please retry." ); - // 0: 読み込み時チェック - // 1: 書き込み時チェック(レーティングが設定されているのにフラグが有効になっていない) - // 2: 書き込み時チェック(レーティングが未審査なのにフラグが有効になっている) - if( type == 0 ) + if( (val < min) || (max < val) ) { - if( this->stripItemJapanese->Checked == true ) - suffix = gcnew System::String( " のレーティング値が不正です。ひとまず「未審査」にしますので、正しい値を設定してください。" ); - else - suffix = gcnew System::String( " : Illegal Rating. The value is set to \"Unexamined\" temporarily. Please set the value." ); + this->hErrorList->Add( gcnew RCMRCError( labelJ, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, msgJ, labelE, msgE, true ) ); + return false; } - else if( type == 1 ) + return true; + } + System::Boolean checkNumRange( System::String ^strval, System::Int32 min, System::Int32 max, System::String ^labelJ, System::String ^labelE ) + { + try { - if( this->stripItemJapanese->Checked == true ) - suffix = gcnew System::String( " のレーティング値が設定されているのに有効フラグが立っていません。設定を確認してください。" ); - else - suffix = gcnew System::String( " : The rating control flag is NOT enabled, but rating is set. Please retry settings." ); + System::Int32 i = System::Int32::Parse(strval); + return (this->checkNumRange( i, min, max, labelJ, labelE )); } - else if( type == 2 ) + catch ( System::FormatException ^ex ) { - if( this->stripItemJapanese->Checked == true ) - suffix = gcnew System::String( " のレーティングが未審査なのに有効フラグが立っています。設定を確認してください。" ); - else - suffix = gcnew System::String( " : The rating control flag is enabled, but rating is NOT set. Please retry settings." ); + (void)ex; + return (this->checkNumRange( max+1, min, max, labelJ, labelE )); } - this->errMsg( prefix + msg + suffix ); + } + // コンボボックスをチェック + System::Boolean checkBoxIndex( System::Windows::Forms::ComboBox ^box, System::String ^labelJ, System::String ^labelE ) + { + System::String ^msgJ = gcnew System::String( "選択されていません。やり直してください。" ); + System::String ^msgE = gcnew System::String( "Not selected. Please retry." ); + + if( box->SelectedIndex < 0 ) + { + this->hWarnList->Add( gcnew RCMRCError( + labelJ, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, msgJ, labelE, msgE, true ) ); + } + return true; } - // マスタ書類情報をフォームから取得して書類に反映させる + // フォームの入力をチェックする + System::Boolean checkSrlForms(void) + { + // リージョン + if( this->checkBoxIndex( this->combRegion, LANG_REGION_J, LANG_REGION_E ) == false ) + return false; + + // リージョンを決める + System::Boolean bJapan = false; + System::Boolean bAmerica = false; + System::Boolean bEurope = false; + System::Boolean bAustralia = false; + switch( this->combRegion->SelectedIndex ) + { + case 0: + bJapan = true; + break; + case 1: + bAmerica = true; + break; + case 2: + bEurope = true; + break; + case 3: + bAustralia = true; + break; + case 4: + bEurope = true; + bAustralia = true; + break; + +#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + case 5: + bJapan = true; + bAmerica = true; + bEurope = true; + bAustralia = true; + break; +#endif + default: + break; + } + + // ペアレンタルコントロール + this->checkParentalForms( bJapan, this->combCERO, this->cboxCERO, this->cboxAlwaysCERO, this->labCERO->Text ); + this->checkParentalForms( bAmerica, this->combESRB, this->cboxESRB, this->cboxAlwaysESRB, this->labESRB->Text ); + this->checkParentalForms( bEurope, this->combUSK, this->cboxUSK, this->cboxAlwaysUSK, this->labUSK->Text ); + this->checkParentalForms( bEurope, this->combPEGI, this->cboxPEGI, this->cboxAlwaysPEGI, this->labPEGI->Text ); + this->checkParentalForms( bEurope, this->combPEGIPRT, this->cboxPEGIPRT, this->cboxAlwaysPEGIPRT, this->labPEGIPRT->Text ); + this->checkParentalForms( bEurope, this->combPEGIBBFC, this->cboxPEGIBBFC, this->cboxAlwaysPEGIBBFC, + this->labPEGIBBFC->Text + " " + this->labPEGIBBFC2->Text ); + this->checkParentalForms( bAustralia, this->combOFLC, this->cboxOFLC, this->cboxAlwaysOFLC, this->labOFLC->Text ); + + return (this->hErrorList->Count > 0); + } + + // ペアレンタルコントロール関連のフォーム入力が正しいか書き込み前チェック + void checkParentalForms( + System::Boolean inRegion, System::Windows::Forms::ComboBox ^comb, + System::Windows::Forms::CheckBox ^enable, System::Windows::Forms::CheckBox ^always, System::String ^msg ) + { + // リージョンに含まれていないとき: 0クリアが保証されるのでチェック必要なし + if( !inRegion ) + return; + + if( !enable->Checked ) // 有効フラグが立っていないとき + { + // 何も設定されていない + if( !always->Checked && (comb->SelectedIndex == (comb->Items->Count - 1)) ) + { + this->hWarnList->Add( gcnew RCMRCError( + "ペアレンタルコントロール情報", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, + msg + ": レーティング審査を必要としないソフトであるとみなしてデータを保存します。", + "Parental Control", msg + ": Save ROM data as Game soft which needs rating examinination.", true ) ); + } + else + { + this->hErrorList->Add( gcnew RCMRCError( + "ペアレンタルコントロール情報", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, + msg + ": 制限が無効であるにもかかわらずレーティング情報が設定されています。", + "Parental Control", msg + "Rating can be set only when control is enable.", true ) ); + } + } + else // 有効フラグが立っているとき + { + if( !always->Checked && (comb->SelectedIndex == (comb->Items->Count - 1)) ) + { + this->hErrorList->Add( gcnew RCMRCError( + "ペアレンタルコントロール情報", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, + msg + ": 制限が有効であるにもかかわらずレーティング情報が設定されていません。", + "Parental Control", msg + ": Rating must be set when control is enable.", true ) ); + } + else if( always->Checked ) + { + this->hWarnList->Add( gcnew RCMRCError( + "ペアレンタルコントロール情報", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, + msg + ": Rating Pendingが指定されています。レーティング年齢が審査されしだい、再度、ROMを提出してください。", + "Parental Control", ": Rating Pending is setting. When rating age is examined, Please submit again.", true ) ); + } + else if( comb->SelectedIndex == (comb->Items->Count - 1) ) + { + this->hErrorList->Add( gcnew RCMRCError( + "ペアレンタルコントロール情報", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, + ": Rating Pending指定とレーティング年齢を同時に指定することはできません。", + "Parental Control", ": Rating setting is either rating pending or rating age.", true ) ); + } + } + } //checkParentalForms() + + // ---------------------------------------------- + // マスタ書類情報をフォームから取得 + // ---------------------------------------------- + void setDeliverableProperties(void) { // 提出情報 @@ -4603,9 +4624,6 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; this->hDeliv->hBackupMemory = this->tboxBackupOther->Text; } } - void setDeliverableForms(void) - { - } // フォームの入力をチェックする System::Boolean checkDeliverableForms(void) @@ -4613,159 +4631,68 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; // 不正な場合はダイアログで注意してreturn // 提出情報 - if( this->checkTextForm( this->tboxProductName->Text, this->labProductName->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxProductCode1->Text, this->labProductCode->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxProductCode2->Text, this->labProductCode->Text ) == false ) - return false; + this->checkTextForm( this->tboxProductName->Text, LANG_PRODUCT_NAME_J, LANG_PRODUCT_NAME_E ); + this->checkTextForm( this->tboxProductCode1->Text, LANG_PRODUCT_CODE_J, LANG_PRODUCT_CODE_E ); + this->checkTextForm( this->tboxProductCode2->Text, LANG_PRODUCT_CODE_J, LANG_PRODUCT_CODE_E ); if( this->cboxReleaseForeign->Checked == true ) { - if( this->checkTextForm( this->tboxProductNameForeign->Text, this->labProductNameForeign->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxProductCode1Foreign->Text, this->labProductCodeForeign->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxProductCode2Foreign1->Text, this->labProductCodeForeign->Text ) == false ) - return false; + this->checkTextForm( this->tboxProductNameForeign->Text, LANG_PRODUCT_NAME_F_J, LANG_PRODUCT_NAME_F_E ); + this->checkTextForm( this->tboxProductCode1Foreign->Text, LANG_PRODUCT_CODE_F_J, LANG_PRODUCT_CODE_F_E ); + this->checkTextForm( this->tboxProductCode2Foreign1->Text, LANG_PRODUCT_CODE_F_J, LANG_PRODUCT_CODE_F_E ); } if( this->rUsageOther->Checked == true ) { - if( this->checkTextForm( this->tboxUsageOther->Text, - this->gboxUsage->Text + "(" + this->rUsageOther->Text + ")" ) == false ) - return false; + this->checkTextForm( this->tboxUsageOther->Text, LANG_USAGE_J, LANG_USAGE_E ); } - if( this->checkTextForm( this->tboxSDK->Text, this->labSDK->Text ) == false ) - return false; // 会社情報 - if( this->checkTextForm( this->tboxPerson1->Text, this->labPerson1->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxCompany1->Text, this->labCompany1->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxDepart1->Text, this->labDepart1->Text ) == false ) - return false; + this->checkTextForm( this->tboxPerson1->Text, LANG_PERSON_1_J, LANG_PERSON_1_E ); + this->checkTextForm( this->tboxCompany1->Text, LANG_COMPANY_J, LANG_COMPANY_E ); + this->checkTextForm( this->tboxDepart1->Text, LANG_DEPART_J, LANG_DEPART_E ); if( this->stripItemJapanese->Checked == true ) { - if( this->checkTextForm( this->tboxFurigana1->Text, this->labFurigana1->Text ) == false ) - return false; + this->checkTextForm( this->tboxFurigana1->Text, LANG_FURIGANA_J, LANG_FURIGANA_J ); + } + this->checkTextForm( this->tboxTel1->Text, LANG_TEL_J, LANG_TEL_E ); + this->checkTextForm( this->tboxFax1->Text, LANG_FAX_J, LANG_FAX_E ); + this->checkTextForm( this->tboxMail1->Text, LANG_MAIL_J, LANG_MAIL_E ); + if( this->stripItemJapanese->Checked == true ) + { + this->checkTextForm( this->tboxNTSC1->Text, LANG_NTSC_1_J + " " + LANG_NTSC_2_J, LANG_NTSC_1_J + " " + LANG_NTSC_2_J ); } - if( this->checkTextForm( this->tboxTel1->Text, this->labTel1->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxFax1->Text, this->labFax1->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxMail1->Text, this->labMail1->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxNTSC1->Text, this->labNTSC1Pre->Text + " " + this->labNTSC1Sur->Text ) == false ) - return false; if( this->cboxIsInputPerson2->Checked == true ) { - if( this->checkTextForm( this->tboxPerson2->Text, this->labPerson2->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxCompany2->Text, this->labCompany2->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxDepart2->Text, this->labDepart2->Text ) == false ) - return false; + this->checkTextForm( this->tboxPerson2->Text, LANG_PERSON_2_J, LANG_PERSON_2_E ); + this->checkTextForm( this->tboxCompany2->Text, LANG_COMPANY_J, LANG_COMPANY_E ); + this->checkTextForm( this->tboxDepart2->Text, LANG_DEPART_J, LANG_DEPART_E ); if( this->stripItemJapanese->Checked == true ) { - if( this->checkTextForm( this->tboxFurigana2->Text, this->labFurigana2->Text ) == false ) - return false; + this->checkTextForm( this->tboxFurigana2->Text, LANG_FURIGANA_J, LANG_FURIGANA_J ); + } + this->checkTextForm( this->tboxTel2->Text, LANG_TEL_J, LANG_TEL_E ); + this->checkTextForm( this->tboxFax2->Text, LANG_FAX_J, LANG_FAX_E ); + this->checkTextForm( this->tboxMail2->Text, LANG_MAIL_J, LANG_MAIL_E ); + if( this->stripItemJapanese->Checked == true ) + { + this->checkTextForm( this->tboxNTSC2->Text, LANG_NTSC_1_J + " " + LANG_NTSC_2_J, LANG_NTSC_1_J + " " + LANG_NTSC_2_J ); } - if( this->checkTextForm( this->tboxTel2->Text, this->labTel2->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxFax2->Text, this->labFax2->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxMail2->Text, this->labMail2->Text ) == false ) - return false; - if( this->checkTextForm( this->tboxNTSC2->Text, this->labNTSC2Pre->Text + " " + this->labNTSC2Sur->Text ) == false ) - return false; } // 一部のROM情報(SRLバイナリに反映されない情報)をここでチェックする - if( this->checkBoxIndex( this->combBackup, this->labBackup->Text ) == false ) - return false; + this->checkBoxIndex( this->combBackup, LANG_BACKUP_J, LANG_BACKUP_E ); if( this->combBackup->SelectedIndex == (this->combBackup->Items->Count - 1) ) { - if( this->checkTextForm( this->tboxBackupOther->Text, this->labBackup->Text ) == false ) - return false; + this->checkTextForm( this->tboxBackupOther->Text, LANG_BACKUP_J, LANG_BACKUP_E ); } - return true; + return (this->hErrorList->Count > 0); } // ---------------------------------------------- - // エラーメッセージの一元化 + // エラー処理 // ---------------------------------------------- - // テキスト入力がされているかチェック - System::Boolean checkTextForm( System::String ^formtext, System::String ^label ) - { - System::String ^msg; - - if( this->stripItemJapanese->Checked == true ) - msg = gcnew System::String( "が入力されていません。やり直してください。" ); - else - msg = gcnew System::String( " is not set. Please retry setting." ); - - if( formtext == nullptr ) - { - this->errMsg( label + msg ); - return false; - } - System::String ^tmp = formtext->Replace( " ", "" ); // スペースのみの文字列もエラー - if( formtext->Equals("") || tmp->Equals("") ) - { - this->errMsg( label + msg ); - return false; - } - return true; - } - - // 数値入力が正常かどうかチェック - System::Boolean checkNumRange( System::Int32 val, System::Int32 min, System::Int32 max, System::String ^label ) - { - System::String ^msg; - - if( this->stripItemJapanese->Checked == true ) - msg = gcnew System::String( "の値の範囲が不正です。やり直してください。" ); - else - msg = gcnew System::String( ": Invalidate range of value. Please retry." ); - - if( (val < min) || (max < val) ) - { - this->errMsg( label + msg ); - return false; - } - return true; - } - System::Boolean checkNumRange( System::String ^strval, System::Int32 min, System::Int32 max, System::String ^label ) - { - try - { - System::Int32 i = System::Int32::Parse(strval); - return (this->checkNumRange( i, min, max, label )); - } - catch ( System::FormatException ^ex ) - { - (void)ex; - return (this->checkNumRange( max+1, min, max, label )); // 必ず例外を発生させる - } - } - - // コンボボックスをチェック - System::Boolean checkBoxIndex( System::Windows::Forms::ComboBox ^box, System::String ^label ) - { - System::String ^msgJ = gcnew System::String( "選択されていません。やり直してください。" ); - System::String ^msgE = gcnew System::String( "Not selected. Please retry." ); - - if( box->SelectedIndex < 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - label, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, msgJ, label, msgE, true ) ); - } - return true; - } - // エラーメッセージを出力 void errMsg( System::String ^str ) { @@ -5109,7 +5036,6 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; public: void overloadGridError( void ) { - // listLoの修正可能な情報をlistHiで上書きする(listHiは修正可能な情報のみであることが前提) this->gridError->Rows->Clear(); if( this->hSrl->hErrorList != nullptr ) { @@ -5129,13 +5055,12 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; } void overloadGridWarn( void ) { - // listLoの修正可能な情報をlistHiで上書きする(listHiは修正可能な情報のみであることが前提) this->gridWarn->Rows->Clear(); if( this->hSrl->hWarnList != nullptr ) { for each( RCMRCError ^err in this->hSrl->hWarnList ) { - if( !err->EnableModify ) // 修正可能な情報は表示しない + if( !err->EnableModify ) this->gridWarn->Rows->Add( err->getAll( this->stripItemJapanese->Checked ) ); } } @@ -5416,10 +5341,18 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; // SRLと書類の両方のフォーム入力をチェックする if( this->checkSrlForms() == false ) { + if( this->stripItemJapanese->Checked == true ) + this->errMsg( "ROMデータに不正な設定があるためROMデータを保存できません。" ); + else + this->errMsg( "This ROM data can't be saved, since it has illegal info." ); return; } if( this->checkDeliverableForms() == false ) { + if( this->stripItemJapanese->Checked == true ) + this->errMsg( "入力情報に不正な設定があるため提出書類を作成できません。" ); + else + this->errMsg( "Making a submission sheet can't be done, since input data is illegal." ); return; } @@ -5535,6 +5468,8 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; private: System::Void rErrorCurrent_CheckedChanged(System::Object^ sender, System::EventArgs^ e) { + this->hErrorList->Clear(); + this->hWarnList->Clear(); this->checkSrlForms(); this->checkDeliverableForms(); this->overloadGridError(); @@ -5552,6 +5487,8 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; } else { + this->hErrorList->Clear(); + this->hWarnList->Clear(); this->checkSrlForms(); this->checkDeliverableForms(); this->overloadGridError(); diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.resX b/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.resX index d01916f9..1f0e93fa 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.resX +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.resX @@ -120,36 +120,6 @@ 17, 17 - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - True diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/MasterEditorTWL.vcproj b/build/tools/MasterEditorTWL/MasterEditorTWL/MasterEditorTWL.vcproj index 81e7fe65..e19f85a9 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/MasterEditorTWL.vcproj +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/MasterEditorTWL.vcproj @@ -289,6 +289,10 @@ RelativePath=".\keys.h" > + + diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/lang.h b/build/tools/MasterEditorTWL/MasterEditorTWL/lang.h new file mode 100644 index 00000000..25cbb3ba --- /dev/null +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/lang.h @@ -0,0 +1,88 @@ +#pragma once + +// 量が多いのでひとまず入力ありの項目のみ + +#define LANG_PRODUCT_NAME_J ("製品名") +#define LANG_PRODUCT_CODE_J ("製品コード") +#define LANG_RELEASE_DATE_J ("発売予定日") +#define LANG_SUBMIT_DATE_J ("書類提出日") +#define LANG_SUBMIT_WAY_J ("提出方法") +#define LANG_SUBMIT_POST_J ("郵送") +#define LANG_SUBMIT_HAND_J ("手渡し") +#define LANG_USAGE_J ("用途") +#define LANG_USAGE_SALE_J ("一般販売用") +#define LANG_USAGE_SAMPLE_J ("試遊台用") +#define LANG_USAGE_DST_J ("データ配信用") +#define LANG_USAGE_OTHER_J ("その他") +#define LANG_SUBMIT_VER_J ("提出バージョン") +#define LANG_BACKUP_J ("バックアップメモリ") +#define LANG_SUBMIT_VER_CAP_J ("* リマスターバージョンが上がると再び0からカウント") +#define LANG_PRODUCT_NAME_F_J ("製品名") +#define LANG_PRODUCT_CODE_F_J ("製品コード") +#define LANG_RELEASE_F_J ("海外版を発売する(予定)") +#define LANG_MULTI_F_J ("* 複数ある場合のみ") +#define LANG_CAPTION_J ("備考欄 - その他連絡事項があればご記入ください") +#define LANG_PERSON_1_J ("担当者1") +#define LANG_PERSON_2_J ("担当者2") +#define LANG_INPUT_PERSON_2_J ("担当者2を入力する") +#define LANG_COMPANY_J ("貴社名") +#define LANG_DEPART_J ("部署名") +#define LANG_PERSON_J ("ご氏名") +#define LANG_FURIGANA_J ("ふりがな") +#define LANG_TEL_J ("Tel") +#define LANG_FAX_J ("Fax") +#define LANG_MAIL_J ("e-mail") +#define LANG_NTSC_1_J ("NTSC") +#define LANG_NTSC_2_J ("User ID") + +#define LANG_EULA_J ("EULA同意") +#define LANG_EULA_VER_J ("EULA同意バージョン") +#define LANG_WIRELESS_ICON_J ("DSワイヤレス通信アイコン表示") +#define LANG_WIFI_ICON_J ("Wi-Fi通信アイコン表示") +#define LANG_REGION_J ("カードリージョン") +#define LANG_PCTL_RATING_J ("レーティング") +#define LANG_PCTL_ENABLE_J ("制限を有効") +#define LANG_PCTL_ALWAYS_J ("Rating Pending") + + +#define LANG_PRODUCT_NAME_E ("Product Name") +#define LANG_PRODUCT_CODE_E ("Product Code") +#define LANG_RELEASE_DATE_E ("Release Date") +#define LANG_SUBMIT_DATE_E ("Submission Date") +#define LANG_SUBMIT_WAY_E ("How to submit") +#define LANG_SUBMIT_POST_E ("Mail") +#define LANG_SUBMIT_HAND_E ("Handover") +#define LANG_USAGE_E ("Purpose") +#define LANG_USAGE_SALE_E ("For Sale") +#define LANG_USAGE_SAMPLE_E ("For Trial") +#define LANG_USAGE_DST_E ("For Network distribution") +#define LANG_USAGE_OTHER_E ("Other") +#define LANG_SUBMIT_VER_E ("Submission Ver.") +#define LANG_BACKUP_E ("Backup Memory") +#define LANG_SUBMIT_VER_CAP_E ("* return to 0 when release ver. is updated.") +#define LANG_PRODUCT_NAME_F_E ("Product Name") +#define LANG_PRODUCT_CODE_F_E ("Product Code") +#define LANG_RELEASE_F_E ("Foreign Ver. is scheduled to go on sale") +#define LANG_MULTI_F_E ("* Only Release Multi Ver.") +#define LANG_CAPTION_E ("Remarks Item - Please write further information.") +#define LANG_PERSON_1_E ("Account1") +#define LANG_PERSON_2_E ("Account2") +#define LANG_INPUT_PERSON_2_E ("Input Account2") +#define LANG_COMPANY_E ("Company") +#define LANG_DEPART_E ("Dept.") +#define LANG_PERSON_E ("Name") +//#define LANG_FURIGANA_E ("ふりがな") +#define LANG_TEL_E ("Tel") +#define LANG_FAX_E ("Fax") +#define LANG_MAIL_E ("e-mail") +//#define LANG_NTSC_1_E ("NTSC") +//#define LANG_NTSC_2_E ("User ID") + +#define LANG_EULA_E ("Agree EULA") +#define LANG_EULA_VER_E ("EULA agreement ver.") +#define LANG_WIRELESS_ICON_E ("Display an Icon of DS Wireless") +#define LANG_WIFI_ICON_E ("Display an Icon of Wi-Fi connection") +#define LANG_REGION_E ("Card Region") +#define LANG_PCTL_RATING_E ("Rating") +#define LANG_PCTL_ENABLE_E ("Enable Control") +#define LANG_PCTL_ALWAYS_E ("Rating Pending") diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/srl.cpp b/build/tools/MasterEditorTWL/MasterEditorTWL/srl.cpp index 44ab1be5..fb932369 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/srl.cpp +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/srl.cpp @@ -1320,7 +1320,7 @@ void RCSrl::mrcRating( System::Byte ogn ) if( *(this->hArrayParentalAlways[ogn]) == false ) { - // RPが立っていないときRPとレーティング値が競合していたらダメ + // RPが立っていないときレーティング値が設定されていなかったらダメ if( (str != nullptr) && str->Equals( L"未審査" ) ) { this->hWarnList->Add( gcnew RCMRCError(