From 95c39f51c1a943b975ce0006f83707a2f01d0ba0 Mon Sep 17 00:00:00 2001 From: nishikawa_takeshi Date: Mon, 6 Oct 2008 05:46:56 +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:=E3=83=9F=E3=83=89=E3=83=AB=E3=82=A6?= =?UTF-8?q?=E3=82=A7=E3=82=A2=E3=81=AE=E3=83=AA=E3=82=B9=E3=83=88=E3=82=92?= =?UTF-8?q?=E6=8F=90=E5=87=BA=E3=83=87=E3=83=BC=E3=82=BF=E4=B8=80=E5=BC=8F?= =?UTF-8?q?=E3=81=AB=E5=90=AB=E3=82=81=E3=82=8B=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@2586 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../tools/MasterEditorTWL/MasterEditorTWL.ncb | Bin 11275264 -> 11275264 bytes .../tools/MasterEditorTWL/MasterEditorTWL.suo | Bin 58368 -> 59392 bytes .../MasterEditorTWL/Debug/BuildLog.htm | Bin 11580 -> 12278 bytes .../MasterEditorTWL/MasterEditorTWL/Form1.h | 157 ++++- .../MasterEditorTWL/Form_file.cpp | 10 +- .../MasterEditorTWL/Form_lang.cpp | 4 +- .../resource/sheet_templete.xml | 648 +++++++++--------- .../resource/sheet_templete.xml | 648 +++++++++--------- .../resource/sheet_templete.xml | 648 +++++++++--------- .../resource/sheet_templete.xml | 648 +++++++++--------- .../resource/sheet_templete.xml | 648 +++++++++--------- 11 files changed, 1749 insertions(+), 1662 deletions(-) diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL.ncb b/build/tools/MasterEditorTWL/MasterEditorTWL.ncb index 0229d09b895ea076c8a70053aa219f4c03b7a994..19e763ddc60aecb4ca91bd2558e9f7f544265936 100644 GIT binary patch delta 48007 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%0DYi7=xtExTYGn4P&;2% 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 diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL.suo b/build/tools/MasterEditorTWL/MasterEditorTWL.suo index ee7eb72e8ac74ed3ec05c82ab553767848284f35..d207a9dab1a43d2440bfbbc464462f538f8a2b7c 100644 GIT binary patch delta 3303 zcmai$dr(wW9LLYO``{%A3ks2s^?~T%n3$CcneP&<#RqD%!bWM7RK6W?a%mK`eBu5~ z)3h-v^HB&~vc@nZn<=I!B6Iq~rnEB0VYCN2TFLhPtv_e(sxzIL@1F1Z+}}Ot+;e_= z?k)S=R@P#xzG4jYDW!%&qoFa-WN0E(2t5qtK@UM4!C;X3+WOmPph3B|{!x8|cF>Eq zp44KC>^={q1bP;F4tgG%4=sQe(otJhz+Mt}?82gkrRh!D23VGFmf8;(gFRZQNoe!n zJm@1356FX0fu=&!py|*I#M1PLb#@Lge~LI0l@+HnAeTtgaj2UQ4s~7ZxDaIiIoju; z9yjqiw43N!!ZIg!y}k#Px>o8@=2cgO?g9|j#}2e>=~`ljIV!0vD!Ch)=}=mD7&UYs zP}^g%p~un^w_iVFUUF}@+cC|cS&>$vZ5!HR=*MYYC@I|?v)xe2f!lW&icY7zXSSt# zZJ|&qxT`k}wmWHYMy?|j5kpC*C(?6wxtN;m89zC$$9x`&9x5aTU?igaFX8V-2HtN`#LWL8bt)20Z(>@v9(qwN+ zXy2&V+j8Ax&rW&xQCyk{&4Rp8KJ*yGJ3Je80aOV2pvR#i=n3daXbvK^^k8#w>GWv(nASz-%`aEiYkO*H z#;8D_By-OipRNoTRF*drQ*gSc{?EghnN_QFV8d9a?vA-+Soez-Z)kB0105btH+tx} zJu~VOu3YAvqWeEO9@uou&#T4%;5PvCQCFg7#((t#@Z(V*6xIvA8lG36Mi?iq37?F* z&cY50`#@MMu5X3s(j*L(Urpn`IZ8fi9ykl~3VT8r-!})|jrwT|TL>Qyw$#GP;qL@{ zNf`GTfFFcUDv99_|T2rQWdw?ibc5Y$oE43rogk^8kGC+yT$!vM}!N zim(LClH-^q@{CaiGQ;@lF=&v$TnY4oO%=987T{SONSIiEFg5EEx0$ zgWRr=z2*JkWZ|+y7$?hX!c1YD1MdqnWWPBF?6Tiq2;=^mg`KsqbHcRW@>Di?f;3^g zf9b+AD&CGFuxCtd1&y>s|9intP!?R z7+>dP;v9HI80WxdiQ_!t$uWCX*qaviHawU8!hG-t<5eUx^-;VsgXD2uf5lGSd0FfG z!jG?Axeh)UvaQtdDafC6byp4_ZI07uCDHQTIZn-Q>JipZvwe4`=s;Ck*x}AEMsr1V zK-1;2c>3*7a^(SIY`$B+P_Pj$BW!!{lG~^0@LqmhFATd9+PI(VqQm1uwDSkXt(5LwzoYVq zrn1d_{Ub0>&KoW*5UTD;9Xyf;Tzei|A2 z65vDlDCZ=~jZ>W&pXyvbL(Tm#YZCU2Fb~+b!p;k`9>O;cb?YH~5pl8*x{w+dG?4#f XBN;`inYJtwe3YteS@A2tOa!9z zvTgi?_0SrC4L~EX5!eK52AY5(YPY4gugnUVjme(U+g%ltzLYlbqE`9MBSv1O6ruuC z-kG48JOL~LI5%1{YL~eN4(iINU*e4eC|dJ>bT z#**K)O=hV(u2GWQsaX`xaI2Ekws^Xjfk}b;{c%1+&ZjM&R#~rZc{)rJfrZ*XsZp8( zwKH#0;&=~vrlcmkZU|wAslyO-)%_mz^|(}IO1VuI(z4u1lxJGxn_6Y(Gs=iDs(!t7jjfid8H*AsHJML91}~0`m1{F#n_}E#;E@4 zoi+-ekE4?-yfiwLW(@^Xcb6`-%)x`M^t#QJ2u}6hUUM-k#mn7vc)2tCX-t*@USK&; z2dn^i*(!{ywH|4&ZkC;@cI_JyTP6Qr-f3#{+IC6fJM5Gl&ZU%9r>V*9p*`7g>bKSD zHd^&r@x4DaO>I58Uj|;Vup)s@9P=t~{b3^?`wlx_dot!pe7gVgeD=pi3(*S*mA_$D zGBtm{H{dUedjtemkm_6@7G?u{bLiB*&#C0yPMYAJ9O%w$t^kNo7PYki>}dGR8x^R>aB*aq`H8fegk0fz!nS0r^Op*YmUDh4{2lU z8u6Nkwcq2~?|E=Dwck9=vETew?a2L!?au;LtU&lPqE*3nk2mJ_#2kP6xFjr%nqz$< zboOi3TrPB<_G`m9R6>w_@QUMWX*enR_T=GDJ*AEt)L)W*{vd6bMdgP=lIqtx(F<#6 z#?f)ZtmxsqE+FZnx42u@(8lAAkul_l9%JOX*(Z&ASlw`fpQ8JAmjw2O=|tw&6zv)8 z_ag()DaY^tNEVGda$pSEch{Kt1=9*CAv9*hLODQ9YfCB6bW{C#IY|c3#HsN4UOV1n IUhoIk-@8->tN;K2 diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm b/build/tools/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm index 0e5c794519f3607be8418b6787c388d1c8803827..f7efe8263f1a5a0651014b23812033bb0accb033 100644 GIT binary patch delta 616 zcmdlJ^(}sb8JnOngDHbCg9U>Lg8_pPgBgR-WJv+@&2?-$*e1JhDzGLq6fhJ_J}9j$ z>Bf-HP{feS5YJG`P{NSOki($I0GFMdBrSwcD~?cG4Ag_F@`{uQLM4)^ISh#mc?{_& zrn(@j6-Jnv!jK9yHIt!ivo)_LBc>lVPvt8H37esMZL_4nQ9dlf@8!U%%~4eY1HyFk z3I!V`pbj*t&0m$gLFQYa>ew8p@*114ubL&(r!h;)G0mEj4KL#faCKg^Rz{b8Z_-wF#a-oLk=1m%1EC7nEeX9Tf delta 227 zcmewszb9&g8JnOfg8_pv7#lGdGMF-$P1aR1-CV=Ai*52hUYX52{6>tJYBu`|6oZ5f zv1sKGn!txCwRxoiSceg+j?KDCg-k%z=)&t&yg}w0qp9XrdyP$)UBi-zx0s=bA%{Va PA(^3op;x#z diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h b/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h index ad506bdd..5b448210 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h @@ -581,6 +581,8 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibPublisher; private: System::Windows::Forms::DataGridViewTextBoxColumn^ colLibName; private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareXml; private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; +private: System::Windows::Forms::ToolStripSeparator^ stripItemSepFile1; +private: System::Windows::Forms::ToolStripSeparator^ stripItemSepMaster1; @@ -672,7 +674,7 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; // o[W\ //this->labAssemblyVersion->Text = System::Windows::Forms::Application::ProductVersion; System::Reflection::Assembly ^ass = System::Reflection::Assembly::GetEntryAssembly(); - this->labAssemblyVersion->Text = "ver." + ass->GetName()->Version->ToString(); + this->labAssemblyVersion->Text = "ver." + this->getVersion(); // ftHgl this->hIsSpreadSheet = gcnew System::Boolean( true ); @@ -982,6 +984,8 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; this->colErrorCause = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->labFile = (gcnew System::Windows::Forms::Label()); this->labAssemblyVersion = (gcnew System::Windows::Forms::Label()); + this->stripItemSepMaster1 = (gcnew System::Windows::Forms::ToolStripSeparator()); + this->stripItemSepFile1 = (gcnew System::Windows::Forms::ToolStripSeparator()); this->gboxSrl->SuspendLayout(); this->gboxCRC->SuspendLayout(); this->gboxPerson2->SuspendLayout(); @@ -2766,8 +2770,8 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; // // stripFile // - this->stripFile->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(3) {this->stripItemOpenRom, - this->stripItemSaveTemp, this->stripItemLoadTemp}); + this->stripFile->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(4) {this->stripItemOpenRom, + this->stripItemSepFile1, this->stripItemSaveTemp, this->stripItemLoadTemp}); this->stripFile->Name = L"stripFile"; this->stripFile->Size = System::Drawing::Size(51, 20); this->stripFile->Text = L"t@C"; @@ -2795,8 +2799,8 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; // // stripMaster // - this->stripMaster->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(4) {this->stripItemSheet, - this->stripItemMasterRom, this->stripItemMiddlewareXml, this->stripItemMiddlewareHtml}); + this->stripMaster->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(5) {this->stripItemSheet, + this->stripItemSepMaster1, this->stripItemMasterRom, this->stripItemMiddlewareXml, this->stripItemMiddlewareHtml}); this->stripMaster->Name = L"stripMaster"; this->stripMaster->Size = System::Drawing::Size(53, 20); this->stripMaster->Text = L"}X^["; @@ -2805,7 +2809,7 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; // this->stripItemSheet->Name = L"stripItemSheet"; this->stripItemSheet->Size = System::Drawing::Size(259, 22); - this->stripItemSheet->Text = L"omFƃ}X^[ROM쐬"; + this->stripItemSheet->Text = L"of[^ꎮ쐬"; this->stripItemSheet->Click += gcnew System::EventHandler(this, &Form1::stripItemSheet_Click); // // stripItemMasterRom @@ -3402,11 +3406,21 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; // this->labAssemblyVersion->AutoSize = true; this->labAssemblyVersion->ForeColor = System::Drawing::SystemColors::ControlText; - this->labAssemblyVersion->Location = System::Drawing::Point(664, 24); + this->labAssemblyVersion->Location = System::Drawing::Point(696, 24); this->labAssemblyVersion->Name = L"labAssemblyVersion"; - this->labAssemblyVersion->Size = System::Drawing::Size(101, 12); + this->labAssemblyVersion->Size = System::Drawing::Size(69, 12); this->labAssemblyVersion->TabIndex = 37; - this->labAssemblyVersion->Text = L"ver.0.0.00000.00000"; + this->labAssemblyVersion->Text = L"ver.0.0.00000"; + // + // stripItemSepMaster1 + // + this->stripItemSepMaster1->Name = L"stripItemSepMaster1"; + this->stripItemSepMaster1->Size = System::Drawing::Size(256, 6); + // + // stripItemSepFile1 + // + this->stripItemSepFile1->Name = L"stripItemSepFile1"; + this->stripItemSepFile1->Size = System::Drawing::Size(208, 6); // // Form1 // @@ -3495,7 +3509,7 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; System::Void loadSrl( System::String ^filename ); // SRL̕ۑƍēǂݏo - System::Void saveSrl( System::String ^filename ); + System::Boolean saveSrl( System::String ^filename ); // SRL̕ۑ̂ @ret System::Boolean saveSrlCore( System::String ^filename ); @@ -3554,6 +3568,14 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; this->combOFLC->Enabled = false; } + // o[W擾 + System::String^ getVersion( void ) + { + System::Reflection::Assembly ^ass = System::Reflection::Assembly::GetEntryAssembly(); + System::Version ^ver = ass->GetName()->Version; + return ( ver->Major.ToString() + "." + ver->Minor.ToString() + "." + ver->Build.ToString() ); + } + private: // ---------------------------------------------- // tH[SRL𖵏Ȃv @@ -3822,12 +3844,19 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; } try { - this->saveSrl( filename ); + if( !this->saveSrl( filename ) ) + { + this->errMsg( "}X^[ROM̍쐬Ɏs܂B", + "Making a master ROM failed." ); + return; + } + this->sucMsg( "}X^[ROM̍쐬܂B", "Making the ROM data file succeeded." ); + this->tboxFile->Text = filename; } catch( System::Exception ^ex ) { (void)ex; - this->errMsg( "}X^[ROM̕ۑɎs܂B", + this->errMsg( "}X^[ROM̍쐬Ɏs܂B", "Making a master ROM failed." ); return; } @@ -3836,11 +3865,7 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; private: System::Void stripItemSheet_Click(System::Object^ sender, System::EventArgs^ e) { - System::String ^delivfile; ECDeliverableResult result; - System::String ^srlfile; - System::UInt16 ^hcrc; - cli::array ^paths; // SRLǂݍ܂ĂȂƂɂ̓[hȂ if( System::String::IsNullOrEmpty( this->tboxFile->Text ) ) @@ -3866,6 +3891,7 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; } // SRLo菇ɏ]킹 + System::String ^srlfile; { srlfile = gcnew System::String(""); @@ -3882,21 +3908,22 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; // ӏ { this->sucMsg( - "Step1/2: ROMf[^t@C(SRL)ƒomF̏v邽߁A܂A͏𔽉fROMf[^t@C쐬܂B\n(LZꂽƂASRLђomF͍쐬܂B)\n" - + "\n ROMf[^t@C \"" + srlfile + "\"ƂȂ܂B\n" + "\nROMf[^t@CۑtH_IĂB", - "Step1/2: Firstly, We save ROM file(SRL) because several information in a submission sheet are match those in the ROM data file.\n(When it is canceled, both the SRL and a submission sheet are not made.)\n" - + "\n ROM data file name is \"" + srlfile + "\".\n" + "\nPlease select a folder in which the ROM data is saved." + "Step1/3: ROMf[^t@CƒomF̏v邽߁A܂A͏𔽉f}X^[ROMf[^t@C쐬܂B\n(LZꂽƂAof[^ꎮ͍쐬܂B)\n" + + "\n }X^[ROMf[^t@C \"" + srlfile + "\"ƂȂ܂B\n" + "\nROMf[^t@CۑtH_IĂB", + "Step1/3: Firstly, We make a master ROM file because all information in a submission sheet are match those in the ROM data file.\n(When it is canceled, both A set of submission data is not made.)\n" + + "\n The name of the master ROM data file is \"" + srlfile + "\".\n" + "\nPlease select a folder in which the ROM data is saved." ); } // _CAOSRLۑfBNg擾 + System::String ^delivfile; { System::Windows::Forms::FolderBrowserDialog ^dlg = gcnew (System::Windows::Forms::FolderBrowserDialog); if( dlg->ShowDialog() != System::Windows::Forms::DialogResult::OK ) { - this->errMsg( "tH_̑ILZ܂̂ŒomF͍쐬܂B", - "A submission sheet can not be made, since selecting folder is canceled." ); + this->errMsg( "tH_̑ILZ܂̂Œof[^ꎮ͍쐬܂B", + "A set of submission data can not be made, since selecting folder is canceled." ); return; } else @@ -3910,13 +3937,59 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; srlfile = dlg->SelectedPath + srlfile; } } + if( System::IO::File::Exists( srlfile ) ) + { + System::String ^msg; + if( this->stripItemJapanese->Checked ) + msg = gcnew System::String( srlfile + "͂łɑ݂܂B㏑܂?" ); + else + msg = gcnew System::String( srlfile + "already exists. Overwrite it?" ); + if( MessageBox::Show( msg, "Information", MessageBoxButtons::YesNo, MessageBoxIcon::None ) + == System::Windows::Forms::DialogResult::No ) + { + this->errMsg( "t@C̑ILZ܂̂Œof[^ꎮ͍쐬܂B", + "Since selecting a file is canceled, a set of submission data can not be made." ); + return; + } + } + } // ӏ { this->sucMsg( - "Step2/2: ĒomF쐬܂B\nŃLZꂽƂAomF͂ƂROMf[^t@C쐬܂̂łӂB", - "Step2/2: Secondly, We should make a submission sheet. \n(CAUTION: When it is canceled, not only a submission sheet is not made, but also the ROM data file is selected previously.)" + "Step2/3: ĎgpĂ~hEFÃXg쐬܂B\nŃLZꂽƂAof[^ꎮ͍쐬܂̂łӂB", + "Step2/3: Secondly, We should make a list of middlewares used by the ROM. \n(CAUTION: When it is canceled, A set of submission data is not made.)" + ); + } + // _CAOŃt@CpX + System::String ^middlefile; + { + System::Windows::Forms::SaveFileDialog ^dlg = gcnew (SaveFileDialog); + + dlg->InitialDirectory = "c:\\"; + dlg->Filter = "xml` (*.xml)|*.xml"; + dlg->FilterIndex = 1; + dlg->RestoreDirectory = true; + + if( dlg->ShowDialog() != System::Windows::Forms::DialogResult::OK ) + { + this->errMsg( "~hEFAXg̍쐬LZ܂Bof[^ꎮ͍쐬܂B", + "Making a list of middlewares is canceled. A set of submission data is not made." ); + return; + } + middlefile = dlg->FileName; + if( !(dlg->FileName->EndsWith( ".xml" )) ) + { + middlefile += ".xml"; + } + } + + // ӏ + { + this->sucMsg( + "Step3/3: ĒomF쐬܂B\nŃLZꂽƂAof[^ꎮ͍쐬܂̂łӂB", + "Step3/3: Finally, We should make a submission sheet. \n(CAUTION: When it is canceled, A set of submission data is not made, but also the master ROM data and a list of middleware are not made.)" ); } // _CAOŃt@CpX @@ -3930,7 +4003,8 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; if( dlg->ShowDialog() != System::Windows::Forms::DialogResult::OK ) { - this->errMsg( "omF̍쐬LZ܂B", "Making a submission sheet is canceled." ); + this->errMsg( "omF̍쐬LZ܂Bof[^ꎮ͍쐬܂B", + "Making a submission sheet is canceled. A set of submission data is not made." ); return; } delivfile = dlg->FileName; @@ -3944,32 +4018,46 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; this->setSrlProperties(); // SrlXVĂ this->setDeliverableProperties(); - // SRLXV + // XVSRLʃt@Cɍ쐬 try { - this->saveSrl( srlfile ); + if( !this->saveSrl( srlfile ) ) + { + this->errMsg( "}X^[ROM̕ۑɎs܂BomFу~hEFAXg͍쐬܂B", + "Making a master ROM failed. And a submission sheet and a list of middlewares are not made." ); + return; + } + this->tboxFile->Text = srlfile; } catch( System::Exception ^ex ) { (void)ex; - this->errMsg( "}X^[ROM̕ۑɎs܂BomF͍쐬܂B", - "Making a master ROM failed. And a submission sheet is not made." ); + this->errMsg( "}X^[ROM̕ۑɎs܂BomFу~hEFAXg͍쐬܂B", + "Making a master ROM failed. And a submission sheet and a list of middlewares are not made." ); return; } u16 crc; // SRLŜCRCvZ(ނɋLq邽) if( !getWholeCRCInFile( srlfile, &crc ) ) { - this->errMsg( "CRČvZɎs܂BomF̍쐬̓LZ܂B", - "Calc CRC is failed. Therefore, Making a submission sheet is canceled." ); + this->errMsg( "CRČvZɎs܂BomFу~hEFAXg͍쐬܂B", + "Calc CRC is failed. Therefore, And a submission sheet and a list of middlewares are not made." ); return; } - hcrc = gcnew System::UInt16( crc ); + System::UInt16 ^hcrc = gcnew System::UInt16( crc ); this->tboxWholeCRC->Clear(); this->tboxWholeCRC->AppendText( "0x" ); this->tboxWholeCRC->AppendText( hcrc->ToString("X") ); + // ~hEFÃXg쐬 + if( !this->saveMiddlewareListXmlEmbeddedXsl( middlefile ) ) + { + this->errMsg( "~hEFÃXg쐬ł܂łBomF͍쐬܂B", + "Making a list of middleware failed. And a submission sheet is not made."); + return; + } + // ލ쐬 - paths = srlfile->Split(L'\\'); // ]ȃpX폜 + cli::array ^paths = srlfile->Split(L'\\'); // ]ȃpX폜 srlfile = paths[ paths->Length - 1 ]; //result = this->hDeliv->write( delivfile, this->hSrl, hcrc, srlfile, !(this->stripItemJapanese->Checked) ); result = this->hDeliv->writeSpreadsheet( delivfile, this->hSrl, hcrc, srlfile, !(this->stripItemJapanese->Checked) ); @@ -3993,7 +4081,8 @@ private: System::Windows::Forms::ToolStripMenuItem^ stripItemMiddlewareHtml; } return; } - this->sucMsg( "omF̍쐬ɐ܂B", "The submission sheet is made successfully." ); + this->sucMsg( "of[^ꎮ̍쐬ɐ܂B", "The submission sheet is made successfully." ); + } //stripItemSheet_Click() private: diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/Form_file.cpp b/build/tools/MasterEditorTWL/MasterEditorTWL/Form_file.cpp index 5c83264c..7a7a4e06 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/Form_file.cpp +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/Form_file.cpp @@ -194,19 +194,17 @@ System::Void Form1::loadSrl( System::String ^filename ) } // loadSrl() // SRL̕ۑ -System::Void Form1::saveSrl( System::String ^filename ) +System::Boolean Form1::saveSrl( System::String ^filename ) { // Rs[t@CROMwb_㏑ if( !this->saveSrlCore( filename ) ) { - this->errMsg( "ROMf[^̕ۑɎs܂B", "Saving the ROM data file failed." ); - return; + return false; } - this->sucMsg( "ROMf[^̕ۑ܂B", "Saving the ROM data file succeeded." ); - this->tboxFile->Text = filename; // ă[h this->loadSrl( filename ); + return true; } // saveSrl() // SRL̈ꎞۑ @@ -234,7 +232,7 @@ System::Void Form1::makeMiddlewareListXml(System::Xml::XmlDocument^ doc) { System::Xml::XmlElement ^root = doc->CreateElement( "twl-master-editor" ); System::Reflection::Assembly ^ass = System::Reflection::Assembly::GetEntryAssembly(); - root->SetAttribute( "version", ass->GetName()->Version->ToString() ); + root->SetAttribute( "version", this->getVersion() ); doc->AppendChild( root ); // Q[ diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/Form_lang.cpp b/build/tools/MasterEditorTWL/MasterEditorTWL/Form_lang.cpp index 7d25ce0c..b6cdcfef 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/Form_lang.cpp +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/Form_lang.cpp @@ -46,7 +46,7 @@ void Form1::changeJapanese(void) this->stripItemSaveTemp->Text = gcnew System::String( "oꎞۑ" ); this->stripItemLoadTemp->Text = gcnew System::String( "ꎞۑoǂݍ" ); this->stripMaster->Text = gcnew System::String( "}X^[" ); - this->stripItemSheet->Text = gcnew System::String( "omFƃ}X^[ROM쐬" ); + this->stripItemSheet->Text = gcnew System::String( "of[^ꎮ쐬" ); this->stripItemMasterRom->Text = gcnew System::String( "}X^[ROM݂̂쐬" ); this->stripItemMiddlewareXml->Text = gcnew System::String( "~hEFAXg쐬(XML`)" ); this->stripItemMiddlewareHtml->Text = gcnew System::String( "~hEFAXg쐬(HTML`)" ); @@ -271,7 +271,7 @@ void Form1::changeEnglish(void) this->stripItemSaveTemp->Text = gcnew System::String( "Save a temporary info." ); this->stripItemLoadTemp->Text = gcnew System::String( "Load a temporary info. saved previously" ); this->stripMaster->Text = gcnew System::String( "Master" ); - this->stripItemSheet->Text = gcnew System::String( "Make a submission sheet and a master ROM data file" ); + this->stripItemSheet->Text = gcnew System::String( "Make a set of submission data" ); this->stripItemMasterRom->Text = gcnew System::String( "Make a master ROM data file only" ); this->stripItemMiddlewareXml->Text = gcnew System::String( "Make a middleware list(XML format)" ); this->stripItemMiddlewareHtml->Text = gcnew System::String( "Make a middleware list(HTML format)" ); diff --git a/build/tools/MasterEditorTWL/resource/sheet_templete.xml b/build/tools/MasterEditorTWL/resource/sheet_templete.xml index 266b8ab2..898d0f76 100644 --- a/build/tools/MasterEditorTWL/resource/sheet_templete.xml +++ b/build/tools/MasterEditorTWL/resource/sheet_templete.xml @@ -33,7 +33,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -