マスタエディタ:

・Shared2ファイルサイズなどをデフォルトで非表示にした。
・設定ファイルを通常設定ファイルと追加設定ファイルの2つに分ける。追加設定ファイルは内部向け。
・追加設定ファイルで非表示項目の表示のON/OFFを指定。
・SDKバージョンやShared2ファイルサイズのチェック指定を通常設定ファイルから追加設定ファイルに移動。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@68 7061adef-622a-194b-ae81-725974e89856
This commit is contained in:
nishikawa_takeshi 2008-12-09 06:45:44 +00:00
parent 2b9795dbf3
commit 38911d5d8b
16 changed files with 2567 additions and 876 deletions

View File

@ -771,7 +771,12 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
this->stripItemEnglish->Checked = true;
}
this->loadInit(); // 設定ファイルの読み込み
// 非表示項目
this->changeVisibleForms( false );
// 設定ファイルの読み込み
this->loadInit();
this->loadAppendInit(); // 追加設定ファイル
}
protected:
@ -815,10 +820,10 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
void InitializeComponent(void)
{
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));
System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle1 = (gcnew System::Windows::Forms::DataGridViewCellStyle());
System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle2 = (gcnew System::Windows::Forms::DataGridViewCellStyle());
System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle3 = (gcnew System::Windows::Forms::DataGridViewCellStyle());
System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle4 = (gcnew System::Windows::Forms::DataGridViewCellStyle());
System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle5 = (gcnew System::Windows::Forms::DataGridViewCellStyle());
System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle6 = (gcnew System::Windows::Forms::DataGridViewCellStyle());
System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle7 = (gcnew System::Windows::Forms::DataGridViewCellStyle());
System::Windows::Forms::DataGridViewCellStyle^ dataGridViewCellStyle8 = (gcnew System::Windows::Forms::DataGridViewCellStyle());
this->tboxFile = (gcnew System::Windows::Forms::TextBox());
this->gboxSrl = (gcnew System::Windows::Forms::GroupBox());
this->tboxRemasterVer = (gcnew System::Windows::Forms::TextBox());
@ -2336,15 +2341,15 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
this->gridLibrary->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;
this->gridLibrary->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^ >(2) {this->colLibPublisher,
this->colLibName});
dataGridViewCellStyle1->Alignment = System::Windows::Forms::DataGridViewContentAlignment::MiddleLeft;
dataGridViewCellStyle1->BackColor = System::Drawing::SystemColors::Window;
dataGridViewCellStyle1->Font = (gcnew System::Drawing::Font(L"MS UI Gothic", 9, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
dataGridViewCellStyle5->Alignment = System::Windows::Forms::DataGridViewContentAlignment::MiddleLeft;
dataGridViewCellStyle5->BackColor = System::Drawing::SystemColors::Window;
dataGridViewCellStyle5->Font = (gcnew System::Drawing::Font(L"MS UI Gothic", 9, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(128)));
dataGridViewCellStyle1->ForeColor = System::Drawing::SystemColors::ControlText;
dataGridViewCellStyle1->SelectionBackColor = System::Drawing::SystemColors::Highlight;
dataGridViewCellStyle1->SelectionForeColor = System::Drawing::SystemColors::HighlightText;
dataGridViewCellStyle1->WrapMode = System::Windows::Forms::DataGridViewTriState::True;
this->gridLibrary->DefaultCellStyle = dataGridViewCellStyle1;
dataGridViewCellStyle5->ForeColor = System::Drawing::SystemColors::ControlText;
dataGridViewCellStyle5->SelectionBackColor = System::Drawing::SystemColors::Highlight;
dataGridViewCellStyle5->SelectionForeColor = System::Drawing::SystemColors::HighlightText;
dataGridViewCellStyle5->WrapMode = System::Windows::Forms::DataGridViewTriState::True;
this->gridLibrary->DefaultCellStyle = dataGridViewCellStyle5;
resources->ApplyResources(this->gridLibrary, L"gridLibrary");
this->gridLibrary->Name = L"gridLibrary";
this->gridLibrary->ReadOnly = true;
@ -2373,6 +2378,7 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
//
// tabTWLInfo
//
this->tabTWLInfo->Controls->Add(this->cboxIsNormalJump);
this->tabTWLInfo->Controls->Add(this->gboxLaunch);
this->tabTWLInfo->Controls->Add(this->tboxGuideTWLInfo);
this->tabTWLInfo->Controls->Add(this->gboxExFlags);
@ -2413,7 +2419,6 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
//
// gboxExFlags
//
this->gboxExFlags->Controls->Add(this->cboxIsNormalJump);
this->gboxExFlags->Controls->Add(this->cboxIsTmpJump);
this->gboxExFlags->Controls->Add(this->cboxIsSubBanner);
resources->ApplyResources(this->gboxExFlags, L"gboxExFlags");
@ -2636,15 +2641,15 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
this->gridWarn->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;
this->gridWarn->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^ >(4) {this->colWarnName,
this->colWarnBegin, this->colWarnEnd, this->colWarnCause});
dataGridViewCellStyle2->Alignment = System::Windows::Forms::DataGridViewContentAlignment::MiddleLeft;
dataGridViewCellStyle2->BackColor = System::Drawing::SystemColors::Window;
dataGridViewCellStyle2->Font = (gcnew System::Drawing::Font(L"MS UI Gothic", 9, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
dataGridViewCellStyle6->Alignment = System::Windows::Forms::DataGridViewContentAlignment::MiddleLeft;
dataGridViewCellStyle6->BackColor = System::Drawing::SystemColors::Window;
dataGridViewCellStyle6->Font = (gcnew System::Drawing::Font(L"MS UI Gothic", 9, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(128)));
dataGridViewCellStyle2->ForeColor = System::Drawing::SystemColors::ControlText;
dataGridViewCellStyle2->SelectionBackColor = System::Drawing::SystemColors::Highlight;
dataGridViewCellStyle2->SelectionForeColor = System::Drawing::SystemColors::HighlightText;
dataGridViewCellStyle2->WrapMode = System::Windows::Forms::DataGridViewTriState::True;
this->gridWarn->DefaultCellStyle = dataGridViewCellStyle2;
dataGridViewCellStyle6->ForeColor = System::Drawing::SystemColors::ControlText;
dataGridViewCellStyle6->SelectionBackColor = System::Drawing::SystemColors::Highlight;
dataGridViewCellStyle6->SelectionForeColor = System::Drawing::SystemColors::HighlightText;
dataGridViewCellStyle6->WrapMode = System::Windows::Forms::DataGridViewTriState::True;
this->gridWarn->DefaultCellStyle = dataGridViewCellStyle6;
this->gridWarn->GridColor = System::Drawing::SystemColors::Control;
resources->ApplyResources(this->gridWarn, L"gridWarn");
this->gridWarn->Name = L"gridWarn";
@ -2679,22 +2684,22 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
//
// gridError
//
dataGridViewCellStyle3->BackColor = System::Drawing::Color::White;
this->gridError->AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
dataGridViewCellStyle7->BackColor = System::Drawing::Color::White;
this->gridError->AlternatingRowsDefaultCellStyle = dataGridViewCellStyle7;
this->gridError->AutoSizeRowsMode = System::Windows::Forms::DataGridViewAutoSizeRowsMode::AllCellsExceptHeaders;
this->gridError->BackgroundColor = System::Drawing::SystemColors::Control;
this->gridError->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;
this->gridError->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^ >(4) {this->colErrorName,
this->colErrorBegin, this->colErrorEnd, this->colErrorCause});
dataGridViewCellStyle4->Alignment = System::Windows::Forms::DataGridViewContentAlignment::MiddleLeft;
dataGridViewCellStyle4->BackColor = System::Drawing::SystemColors::Window;
dataGridViewCellStyle4->Font = (gcnew System::Drawing::Font(L"MS UI Gothic", 9, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
dataGridViewCellStyle8->Alignment = System::Windows::Forms::DataGridViewContentAlignment::MiddleLeft;
dataGridViewCellStyle8->BackColor = System::Drawing::SystemColors::Window;
dataGridViewCellStyle8->Font = (gcnew System::Drawing::Font(L"MS UI Gothic", 9, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(128)));
dataGridViewCellStyle4->ForeColor = System::Drawing::SystemColors::ControlText;
dataGridViewCellStyle4->SelectionBackColor = System::Drawing::SystemColors::Highlight;
dataGridViewCellStyle4->SelectionForeColor = System::Drawing::SystemColors::HighlightText;
dataGridViewCellStyle4->WrapMode = System::Windows::Forms::DataGridViewTriState::True;
this->gridError->DefaultCellStyle = dataGridViewCellStyle4;
dataGridViewCellStyle8->ForeColor = System::Drawing::SystemColors::ControlText;
dataGridViewCellStyle8->SelectionBackColor = System::Drawing::SystemColors::Highlight;
dataGridViewCellStyle8->SelectionForeColor = System::Drawing::SystemColors::HighlightText;
dataGridViewCellStyle8->WrapMode = System::Windows::Forms::DataGridViewTriState::True;
this->gridError->DefaultCellStyle = dataGridViewCellStyle8;
this->gridError->GridColor = System::Drawing::SystemColors::Control;
resources->ApplyResources(this->gridError, L"gridError");
this->gridError->Name = L"gridError";
@ -2813,16 +2818,21 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
/////////////////////////////////////////////
private:
// ----------------------------------------------
// ファイルのR/W
// 設定ファイルの読み込み
// ----------------------------------------------
// 設定ファイルの読み込み
void loadInit(void);
void loadInit(void); // 設定ファイル
void loadAppendInit(void); // 追加設定ファイル(内部向け)
// ファイルの読み込み (TAD/SRL読み込みをラップ)
private:
// ----------------------------------------------
// ROMファイルのR/W
// ----------------------------------------------
// ROMファイルの読み込み (TAD/SRL読み込みをラップ)
System::Boolean loadRom( System::String ^infile );
// ファイルの書き出し (SRL書き出しをラップ)
// ROMファイルの書き出し (SRL書き出しをラップ)
System::Boolean saveRom( System::String ^outname );
// SRLの読み込み
@ -2849,18 +2859,6 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
return tmpfile;
}
// ミドルウェアリストの作成(XML形式)
System::Void makeMiddlewareListXml(System::Xml::XmlDocument^ doc);
// ミドルウェアリストの書き出し
System::Boolean saveMiddlewareListXml( System::String ^filename );
// ミドルウェアリストの書き出し(XML->HTML変換)
System::Boolean saveMiddlewareListHtml( System::String ^filename );
// ミドルウェアリストの書き出し(XSL埋め込み)
System::Boolean saveMiddlewareListXmlEmbeddedXsl( System::String ^filename );
// 提出ファイル名をゲームコードなどから決定
System::String^ getSubmitFilePrefix(void)
{
@ -2875,6 +2873,23 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
return prefix;
}
private:
// ----------------------------------------------
// ミドルウェアリストの書き出し
// ----------------------------------------------
// XML形式のリストを作成
System::Void makeMiddlewareListXml(System::Xml::XmlDocument^ doc);
// XML形式で書き出し
System::Boolean saveMiddlewareListXml( System::String ^filename );
// HTML形式で書き出し(XML->HTML変換)
System::Boolean saveMiddlewareListHtml( System::String ^filename );
// XSL埋め込みXML形式で書き出し
System::Boolean saveMiddlewareListXmlEmbeddedXsl( System::String ^filename );
private:
// ----------------------------------------------
// 一時ファイルの取り扱い
@ -2900,10 +2915,19 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
// フォームの初期設定
// ----------------------------------------------
// 非表示項目の表示切替
void changeVisibleForms( System::Boolean visible )
{
this->gboxShared2Size->Visible = visible;
this->cboxIsNormalJump->Visible = visible;
this->tboxIsGameCardOn->Visible = visible;
this->labIsGameCardOn->Visible = visible;
this->labIsGameCardOn2->Visible = visible;
}
// 設定/選択可能なフォームをすべて disable にする
void readOnly( void )
{
this->cboxIsEULA->Enabled = false;
this->cboxIsUGC->Enabled = false;
this->cboxIsPhotoEx->Enabled = false;

View File

@ -21,6 +21,11 @@ using namespace System::Data;
using namespace System::Drawing;
using namespace MasterEditorTWL;
// ----------------------------------------------
// [sheet <= Form]
// 提出確認書にフォームを反映
// ----------------------------------------------
void Form1::setDeliverableProperties(void)
{
// 提出情報
@ -297,7 +302,6 @@ void Form1::setDeliverableProperties(void)
// ----------------------------------------------
// マスタ書類情報(SRL影響なし)のフォームチェック
// ----------------------------------------------
System::Boolean Form1::checkDeliverableForms(void)
{
// 不正な場合はダイアログで注意してreturn

View File

@ -1,5 +1,5 @@
// ----------------------------------------------
// ファイルのR/W
// ROMファイルのR/W
// ----------------------------------------------
#include "stdafx.h"
@ -22,10 +22,10 @@ using namespace System::Data;
using namespace System::Drawing;
using namespace MasterEditorTWL;
// ----------------------------------------------
// ファイルの読み込み (TAD/SRL読み込みをラップ)
// ----------------------------------------------
System::Boolean Form1::loadRom( System::String ^infile )
{
System::Boolean result = false;
@ -45,7 +45,6 @@ System::Boolean Form1::loadRom( System::String ^infile )
// ----------------------------------------------
// ファイルの書き出し (TAD/SRL書き出しをラップ)
// ----------------------------------------------
System::Boolean Form1::saveRom( System::String ^outfile )
{
System::Boolean result = false;
@ -66,7 +65,6 @@ System::Boolean Form1::saveRom( System::String ^outfile )
// ----------------------------------------------
// tadの読み込み
// ----------------------------------------------
System::Boolean Form1::loadTad( System::String ^tadfile )
{
// tadファイルを変換したSRLを一時ファイルに保存
@ -88,7 +86,6 @@ System::Boolean Form1::loadTad( System::String ^tadfile )
// ----------------------------------------------
// SRLの読み込み
// ----------------------------------------------
System::Boolean Form1::loadSrl( System::String ^srlfile )
{
ECSrlResult result = this->hSrl->readFromFile( srlfile );
@ -150,7 +147,6 @@ System::Boolean Form1::loadSrl( System::String ^srlfile )
// ----------------------------------------------
// SRLの保存
// ----------------------------------------------
System::Boolean Form1::saveSrl( System::String ^infile, System::String ^outfile )
{
if( !System::IO::File::Exists( infile ) )
@ -187,259 +183,3 @@ System::Boolean Form1::saveSrlCore( System::String ^infile, System::String ^outf
}
return true;
}
// ----------------------------------------------
// ミドルウェアリストの作成
// ----------------------------------------------
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", this->getVersion() );
doc->AppendChild( root );
// ゲーム情報
System::Xml::XmlElement ^game = doc->CreateElement( "game" );
root->AppendChild( game );
if( System::String::IsNullOrEmpty( this->tboxProductName->Text ) )
{
MasterEditorTWL::appendXmlTag( doc, game, "product-name", this->tboxTitleName->Text ); // 製品名が未入力のときはソフトタイトルで代用
}
else
{
MasterEditorTWL::appendXmlTag( doc, game, "product-name", this->tboxProductName->Text );
}
MasterEditorTWL::appendXmlTag( doc, game, "title-name", this->tboxTitleName->Text );
MasterEditorTWL::appendXmlTag( doc, game, "game-code", this->tboxGameCode->Text );
MasterEditorTWL::appendXmlTag( doc, game, "rom-version", this->tboxRemasterVer->Text );
MasterEditorTWL::appendXmlTag( doc, game, "submit-version", System::Decimal::ToByte(this->numSubmitVersion->Value).ToString("X") );
// ミドルウェアリスト
System::Xml::XmlElement ^midlist = doc->CreateElement( "middleware-list" );
root->AppendChild( midlist );
if( this->hSrl->hLicenseList != nullptr )
{
for each( RCLicense ^lic in this->hSrl->hLicenseList )
{
System::Xml::XmlElement ^mid = doc->CreateElement( "middleware" );
MasterEditorTWL::appendXmlTag( doc, mid, "publisher", lic->Publisher );
MasterEditorTWL::appendXmlTag( doc, mid, "name", lic->Name );
midlist->AppendChild( mid );
}
}
}
// ----------------------------------------------
// ミドルウェアリストの保存(XML)
// ----------------------------------------------
System::Boolean Form1::saveMiddlewareListXml( System::String ^filename )
{
System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument();
doc->AppendChild( doc->CreateXmlDeclaration("1.0","UTF-8",nullptr) );
this->makeMiddlewareListXml( doc );
try
{
doc->Save( filename );
}
catch ( System::Exception ^ex )
{
(void)ex;
return false;
}
return true;
}
// ----------------------------------------------
// ミドルウェアリストの保存(XSL埋め込みXML)
// ----------------------------------------------
System::Boolean Form1::saveMiddlewareListXmlEmbeddedXsl( System::String ^filename )
{
System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument();
doc->AppendChild( doc->CreateXmlDeclaration("1.0","UTF-8",nullptr) );
// XSLを埋め込むための宣言たち
System::Xml::XmlProcessingInstruction ^proc = doc->CreateProcessingInstruction( "xml-stylesheet", "type='text/xml' href='#stylesheet'" );
doc->AppendChild( proc );
System::Xml::XmlDocumentType ^doctype = doc->CreateDocumentType( "twl-master-editor", nullptr, nullptr, "<!ATTLIST xsl:stylesheet id ID #REQUIRED>" );
doc->AppendChild( doctype );
this->makeMiddlewareListXml( doc );
// 埋め込みスタイルシート
System::Xml::XmlDocument ^xsl = gcnew System::Xml::XmlDocument();
System::Xml::XmlElement ^root = doc->DocumentElement;
try
{
xsl->Load("../resource/middleware_e.xsl");
root->AppendChild( doc->ImportNode(xsl->DocumentElement, true) );
}
catch ( System::Exception ^ex )
{
(void)ex;
return false;
}
try
{
doc->Save( filename );
}
catch ( System::Exception ^ex )
{
(void)ex;
return false;
}
return true;
}
// ----------------------------------------------
// ミドルウェアリストの保存(XML->HTML変換)
// ----------------------------------------------
System::Boolean Form1::saveMiddlewareListHtml( System::String ^filename )
{
System::Xml::Xsl::XslCompiledTransform ^xslt = gcnew System::Xml::Xsl::XslCompiledTransform;
System::String ^tmpxml = gcnew System::String( "middleware-tmp.xml" );
if( !saveMiddlewareListXml(tmpxml) )
{
return false;
}
try
{
xslt->Load("../resource/middleware.xsl");
xslt->Transform( tmpxml, filename );
}
catch (System::Exception ^s)
{
(void)s;
System::IO::File::Delete( tmpxml );
return false;
}
System::IO::File::Delete( tmpxml );
return true;
}
// ----------------------------------------------
// 設定ファイルの読み込み
// ----------------------------------------------
void Form1::loadInit(void)
{
System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument();
// xmlファイルの読み込み
try
{
doc->Load( "../resource/ini.xml" );
}
catch( System::IO::FileNotFoundException ^s )
{
(void)s;
this->errMsg( "設定ファイルが見つかりません。", "Setting file is not found." );
return;
}
catch( System::Exception ^s )
{
(void)s;
this->errMsg( "設定ファイルを開くことができませんでした。", "Setting file can't be opened." );
return;
}
// <init>タグ : ルート
System::Xml::XmlElement ^root = doc->DocumentElement;
// <rw>タグ
System::Boolean bReadOnly = MasterEditorTWL::isXmlEqual( root, "rw", "r" );
this->IsReadOnly = bReadOnly;
if( bReadOnly )
{
this->readOnly();
}
// <lang>タグ
if( MasterEditorTWL::isXmlEqual( root, "lang", "E" ) )
{
this->stripItemEnglish->Checked = true;
this->stripItemJapanese->Checked = false;
this->changeEnglish();
}
// <output>タグ
System::Boolean bXML = MasterEditorTWL::isXmlEqual( root, "output", "XML" );
// <spcheck>タグ
System::Boolean bCheck = MasterEditorTWL::isXmlEqual( root, "spcheck", "ON" );
if( bCheck ) // チェックするときのみ追加チェック項目を設定
{
// チェックするかどうか
this->hSrl->hMrcSpecialList->IsCheck = true;
// SDK
try
{
u32 major = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdk/major" ) );
u32 minor = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdk/minor" ) );
u32 relstep = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdk/relstep" ) );
u32 sdkver = (major << 24) | (minor << 16) | (relstep & 0xFFFF);
this->hSrl->hMrcSpecialList->SDKVer = sdkver;
}
catch ( System::Exception ^ex )
{
(void)ex;
this->errMsg( "設定ファイル中のSDKバージョンが読み込めませんでした。バージョンは0とみなされます。",
"SDK ver. can't be read from setting file. Therefore it is set by 0." );
this->hSrl->hMrcSpecialList->SDKVer = 0;
}
// Shared2File
try
{
System::Int32 i;
for( i=0; i < METWL_NUMOF_SHARED2FILES; i++ )
{
u32 size = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/shared2/size" + i.ToString() ) );
this->hSrl->hMrcSpecialList->hShared2SizeArray[i] = size;
}
}
catch ( System::Exception ^ex )
{
(void)ex;
this->errMsg( "設定ファイル中のShared2ファイルサイズが読み込めませんでした。サイズはすべて0とみなされます。",
"One of shared2 file sizes can't be read from setting file. Therefore they are set by 0." );
System::Int32 i;
for( i=0; i < METWL_NUMOF_SHARED2FILES; i++ )
{
this->hSrl->hMrcSpecialList->hShared2SizeArray[i] = 0;
}
}
} //if( bCheck )
if( bReadOnly || bXML | bCheck )
{
System::String ^msgJ = gcnew System::String("[動作モード]");
System::String ^msgE = gcnew System::String("[Processing Mode]");
if( bReadOnly )
{
msgJ += "\nリードオンリーモード";
msgE += "\nRead Only Mode";
}
if( bXML )
{
msgJ += "\nXML出力モード";
msgE += "\nXML Output Mode";
}
if( bCheck )
{
msgJ += "\n追加チェックモード";
msgE += "\nExtra Check Mode";
}
this->sucMsg( msgJ, msgE );
}
} // loadInit()

View File

@ -0,0 +1,150 @@
// ----------------------------------------------
// 設定ファイルの読み込み
// ----------------------------------------------
#include "stdafx.h"
#include <apptype.h>
#include "common.h"
#include "srl.h"
#include "deliverable.h"
#include "crc_whole.h"
#include "utility.h"
#include "lang.h"
#include "split_tad.h"
#include "FormError.h"
#include "Form1.h"
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace MasterEditorTWL;
// ----------------------------------------------
// 通常設定ファイルの読み込み
// ----------------------------------------------
void Form1::loadInit(void)
{
System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument();
// xmlファイルの読み込み
try
{
doc->Load( "../resource/ini.xml" );
}
catch( System::IO::FileNotFoundException ^s )
{
(void)s;
this->errMsg( "設定ファイルが見つかりません。", "Setting file is not found." );
return;
}
catch( System::Exception ^s )
{
(void)s;
this->errMsg( "設定ファイルを開くことができませんでした。", "Setting file can't be opened." );
return;
}
// <init>タグ : ルート
System::Xml::XmlElement ^root = doc->DocumentElement;
// <rw>タグ
System::Boolean bReadOnly = MasterEditorTWL::isXmlEqual( root, "rw", "r" );
this->IsReadOnly = bReadOnly;
if( bReadOnly )
{
this->readOnly();
}
} // loadInit()
// ----------------------------------------------
// 追加設定ファイルの読み込み
// ----------------------------------------------
void Form1::loadAppendInit(void)
{
System::String ^initfile = "../resource/append_ini.xml";
// 通常は存在しない
if( !System::IO::File::Exists( initfile ) )
{
return;
}
System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument();
try
{
doc->Load( initfile );
}
catch( System::IO::FileNotFoundException ^s )
{
(void)s;
this->errMsg( "追加設定ファイルが見つかりません。", "Setting file is not found." );
return;
}
catch( System::Exception ^s )
{
(void)s;
this->errMsg( "追加設定ファイルを開くことができませんでした。", "Setting file can't be opened." );
return;
}
System::Xml::XmlElement ^root = doc->DocumentElement;
// <visible>タグ
System::Boolean bVisible = MasterEditorTWL::isXmlEqual( root, "visible", "ON" );
this->changeVisibleForms( bVisible );
// <spcheck>タグ
System::Boolean bCheck = MasterEditorTWL::isXmlEqual( root, "spcheck", "ON" );
if( bCheck ) // チェックするときのみ追加チェック項目を設定
{
// チェックするかどうか
this->hSrl->hMrcSpecialList->IsCheck = true;
// SDK
try
{
u32 major = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdk/major" ) );
u32 minor = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdk/minor" ) );
u32 relstep = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/sdk/relstep" ) );
u32 sdkver = (major << 24) | (minor << 16) | (relstep & 0xFFFF);
this->hSrl->hMrcSpecialList->SDKVer = sdkver;
}
catch ( System::Exception ^ex )
{
(void)ex;
this->errMsg( "設定ファイル中のSDKバージョンが読み込めませんでした。バージョンは0とみなされます。",
"SDK ver. can't be read from setting file. Therefore it is set by 0." );
this->hSrl->hMrcSpecialList->SDKVer = 0;
}
// Shared2File
try
{
System::Int32 i;
for( i=0; i < METWL_NUMOF_SHARED2FILES; i++ )
{
u32 size = System::UInt32::Parse( MasterEditorTWL::getXPathText( root, "/init/shared2/size" + i.ToString() ) );
this->hSrl->hMrcSpecialList->hShared2SizeArray[i] = size;
}
}
catch ( System::Exception ^ex )
{
(void)ex;
this->errMsg( "設定ファイル中のShared2ファイルサイズが読み込めませんでした。サイズはすべて0とみなされます。",
"One of shared2 file sizes can't be read from setting file. Therefore they are set by 0." );
System::Int32 i;
for( i=0; i < METWL_NUMOF_SHARED2FILES; i++ )
{
this->hSrl->hMrcSpecialList->hShared2SizeArray[i] = 0;
}
}
} //if( bCheck )
} // loadAppendInit()

View File

@ -21,7 +21,10 @@ using namespace System::Data;
using namespace System::Drawing;
using namespace MasterEditorTWL;
// 日本語版と英語版でテキストボックスの文字列制限が変わる
// ----------------------------------------------
// テキストボックスの文字列制限を変える
// (日本語版と英語版で文字列制限を変えたい)
// ----------------------------------------------
void Form1::changeMaxLength( System::Windows::Forms::TextBox ^tbox, System::Int32 maxlen )
{
if( tbox->Text->Length > maxlen )
@ -30,7 +33,9 @@ void Form1::changeMaxLength( System::Windows::Forms::TextBox ^tbox, System::Int3
tbox->MaxLength = maxlen;
}
// ----------------------------------------------
// 日本語版への切り替え
// ----------------------------------------------
void Form1::changeJapanese(void)
{
// 入力文字数制限を変更する
@ -41,7 +46,9 @@ void Form1::changeJapanese(void)
this->changeLanguage( "ja" );
}
// ----------------------------------------------
// 英語版への切り替え
// ----------------------------------------------
void Form1::changeEnglish(void)
{
this->changeMaxLength( this->tboxCompany1, 40 );
@ -51,7 +58,9 @@ void Form1::changeEnglish(void)
this->changeLanguage( "en" );
}
// ----------------------------------------------
// 言語リソース切り替え
// ----------------------------------------------
void MasterEditorTWL::Form1::changeLanguage( System::String ^langname )
{
int index;

View File

@ -0,0 +1,156 @@
// ----------------------------------------------
// ミドルウェアリストの書き出し
// ----------------------------------------------
#include "stdafx.h"
#include <apptype.h>
#include "common.h"
#include "srl.h"
#include "deliverable.h"
#include "crc_whole.h"
#include "utility.h"
#include "lang.h"
#include "split_tad.h"
#include "FormError.h"
#include "Form1.h"
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace MasterEditorTWL;
// ----------------------------------------------
// XML形式のリストを作成
// ----------------------------------------------
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", this->getVersion() );
doc->AppendChild( root );
// ゲーム情報
System::Xml::XmlElement ^game = doc->CreateElement( "game" );
root->AppendChild( game );
if( System::String::IsNullOrEmpty( this->tboxProductName->Text ) )
{
MasterEditorTWL::appendXmlTag( doc, game, "product-name", this->tboxTitleName->Text ); // 製品名が未入力のときはソフトタイトルで代用
}
else
{
MasterEditorTWL::appendXmlTag( doc, game, "product-name", this->tboxProductName->Text );
}
MasterEditorTWL::appendXmlTag( doc, game, "title-name", this->tboxTitleName->Text );
MasterEditorTWL::appendXmlTag( doc, game, "game-code", this->tboxGameCode->Text );
MasterEditorTWL::appendXmlTag( doc, game, "rom-version", this->tboxRemasterVer->Text );
MasterEditorTWL::appendXmlTag( doc, game, "submit-version", System::Decimal::ToByte(this->numSubmitVersion->Value).ToString("X") );
// ミドルウェアリスト
System::Xml::XmlElement ^midlist = doc->CreateElement( "middleware-list" );
root->AppendChild( midlist );
if( this->hSrl->hLicenseList != nullptr )
{
for each( RCLicense ^lic in this->hSrl->hLicenseList )
{
System::Xml::XmlElement ^mid = doc->CreateElement( "middleware" );
MasterEditorTWL::appendXmlTag( doc, mid, "publisher", lic->Publisher );
MasterEditorTWL::appendXmlTag( doc, mid, "name", lic->Name );
midlist->AppendChild( mid );
}
}
}
// ----------------------------------------------
// XML形式で書き出し
// ----------------------------------------------
System::Boolean Form1::saveMiddlewareListXml( System::String ^filename )
{
System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument();
doc->AppendChild( doc->CreateXmlDeclaration("1.0","UTF-8",nullptr) );
this->makeMiddlewareListXml( doc );
try
{
doc->Save( filename );
}
catch ( System::Exception ^ex )
{
(void)ex;
return false;
}
return true;
}
// ----------------------------------------------
// XSL埋め込みXML形式で書き出し
// ----------------------------------------------
System::Boolean Form1::saveMiddlewareListXmlEmbeddedXsl( System::String ^filename )
{
System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument();
doc->AppendChild( doc->CreateXmlDeclaration("1.0","UTF-8",nullptr) );
// XSLを埋め込むための宣言たち
System::Xml::XmlProcessingInstruction ^proc = doc->CreateProcessingInstruction( "xml-stylesheet", "type='text/xml' href='#stylesheet'" );
doc->AppendChild( proc );
System::Xml::XmlDocumentType ^doctype = doc->CreateDocumentType( "twl-master-editor", nullptr, nullptr, "<!ATTLIST xsl:stylesheet id ID #REQUIRED>" );
doc->AppendChild( doctype );
this->makeMiddlewareListXml( doc );
// 埋め込みスタイルシート
System::Xml::XmlDocument ^xsl = gcnew System::Xml::XmlDocument();
System::Xml::XmlElement ^root = doc->DocumentElement;
try
{
xsl->Load("../resource/middleware_e.xsl");
root->AppendChild( doc->ImportNode(xsl->DocumentElement, true) );
}
catch ( System::Exception ^ex )
{
(void)ex;
return false;
}
try
{
doc->Save( filename );
}
catch ( System::Exception ^ex )
{
(void)ex;
return false;
}
return true;
}
// ----------------------------------------------
// HTML形式で書き出し(XML->HTML変換)
// ----------------------------------------------
System::Boolean Form1::saveMiddlewareListHtml( System::String ^filename )
{
System::Xml::Xsl::XslCompiledTransform ^xslt = gcnew System::Xml::Xsl::XslCompiledTransform;
System::String ^tmpxml = gcnew System::String( "middleware-tmp.xml" );
if( !saveMiddlewareListXml(tmpxml) )
{
return false;
}
try
{
xslt->Load("../resource/middleware.xsl");
xslt->Transform( tmpxml, filename );
}
catch (System::Exception ^s)
{
(void)s;
System::IO::File::Delete( tmpxml );
return false;
}
System::IO::File::Delete( tmpxml );
return true;
}

View File

@ -21,8 +21,12 @@ using namespace System::Data;
using namespace System::Drawing;
using namespace MasterEditorTWL;
// ROM情報をフォームから取得してSRLクラスのプロパティに反映させる
// ----------------------------------------------
// [SRL <= Form]
// ROM情報をフォームから取得して
// SRLクラスのプロパティに反映させる
// (ROMヘッダへの反映やCRCと署名の再計算をしない)
// ----------------------------------------------
void Form1::setSrlProperties(void)
{
// ROMヘッダの[0,0x160)の領域はRead Onlyで変更しない
@ -34,7 +38,11 @@ void Form1::setSrlProperties(void)
this->setParentalSrlProperties();
} //setSrlProperties()
// SRLのROM情報をフォームに反映させる(ファイルが読み込まれていることが前提)
// ----------------------------------------------
// [SRL => Form]
// SRLのROM情報をフォームに反映させる
// (ファイルが読み込まれていることが前提)
// ----------------------------------------------
void Form1::setSrlForms(void)
{
// NTR互換情報
@ -217,7 +225,11 @@ void Form1::setSrlForms(void)
}
} // setSrlForms()
// SRLの特殊な設定をフォームにセットする(言語切り替えで表示を変えたいので独立させる)
// ----------------------------------------------
// [SRL => Form]
// SRLの特殊な設定をフォームにセットする
// (言語切り替えで表示を変えたいので独立させる)
// ----------------------------------------------
void Form1::setSrlFormsTextBox()
{
if( !this->hSrl->IsWiFiIcon && !this->hSrl->IsWirelessIcon )
@ -283,7 +295,9 @@ void Form1::setSrlFormsTextBox()
}
} // setSrlFormsTextBox()
// ----------------------------------------------
// フォームの入力をチェックする
// ----------------------------------------------
System::Boolean Form1::checkSrlForms(void)
{
// リージョン

View File

@ -21,7 +21,10 @@ using namespace System::Data;
using namespace System::Drawing;
using namespace MasterEditorTWL;
// ----------------------------------------------
// 一時保存
// ----------------------------------------------
System::Void Form1::saveTmp( System::String ^filename )
{
System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument();
@ -107,7 +110,9 @@ System::Void Form1::saveTmp( System::String ^filename )
}
} //saveTmp()
// ----------------------------------------------
// 一時ファイルの読み込み
// ----------------------------------------------
void Form1::loadTmp( System::String ^filename )
{
System::Xml::XmlDocument ^doc = gcnew System::Xml::XmlDocument;
@ -243,7 +248,9 @@ void Form1::loadTmp( System::String ^filename )
} //loadTmp()
// ----------------------------------------------
// 一時保存情報をフォーム情報に変換
// ----------------------------------------------
System::Boolean Form1::parseTmp( System::Xml::XmlElement ^root, System::String ^xpath, System::Windows::Forms::ComboBox ^comb )
{
// コンボボックスの保存情報 - インデックスの範囲に含まれるか調べる(含まれない場合は-1)

View File

@ -219,10 +219,18 @@
RelativePath=".\Form_file.cpp"
>
</File>
<File
RelativePath=".\Form_init.cpp"
>
</File>
<File
RelativePath=".\Form_lang.cpp"
>
</File>
<File
RelativePath=".\Form_mwlist.cpp"
>
</File>
<File
RelativePath=".\Form_pctl.cpp"
>

View File

@ -340,13 +340,6 @@ ECDeliverableResult RCDeliverable::writeSpreadsheet(
else
node->FirstChild->Value = nullptr;
}
if( node->FirstChild->Value->Equals( "TagIsWL" ) )
{
if( hSrl->IsWL )
node->FirstChild->Value = gcnew System::String("<EFBFBD>");
else
node->FirstChild->Value = nullptr;
}
if( node->FirstChild->Value->Equals( "TagIsSD" ) )
{
if( hSrl->IsSD )

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
<init>
<visible>ON</visible>
<spcheck>ON</spcheck>
<sdk>
<major>5</major>
<minor>0</minor>
<relstep>20200</relstep>
</sdk>
<shared2>
<size0>0</size0>
<size1>0</size1>
<size2>0</size2>
<size3>0</size3>
<size4>0</size4>
<size5>0</size5>
</shared2>
</init>

View File

@ -1,22 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<init>
<rw>w</rw>
<lang>J</lang>
<output>Sheet</output>
<spcheck>OFF</spcheck>
<sdk>
<major>5</major>
<minor>0</minor>
<relstep>20200</relstep>
</sdk>
<shared2>
<size0>0</size0>
<size1>0</size1>
<size2>0</size2>
<size3>0</size3>
<size4>0</size4>
<size5>0</size5>
</shared2>
<reserved-list>
<reserved><begin>78</begin><end>7f</end></reserved>
<reserved><begin>160</begin><end>17f</end></reserved>