マスタエディタ:「レーティング表示不要」フラグにひとまず対応。デバッグまだ。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@71 7061adef-622a-194b-ae81-725974e89856
This commit is contained in:
nishikawa_takeshi 2008-12-12 07:58:09 +00:00
parent 61479059f3
commit 59f636a3b0
13 changed files with 874 additions and 2338 deletions

View File

@ -611,6 +611,8 @@ private: System::Windows::Forms::GroupBox^ gboxLaunch;
private: System::Windows::Forms::Label^ labConnectIcon;
private: System::Windows::Forms::TextBox^ tboxConnectIcon;
private: System::Windows::Forms::Label^ labIsGameCardOn2;
private: System::Windows::Forms::CheckBox^ cboxIsUnnecessaryRating;
@ -729,7 +731,6 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
System::IO::File::Delete( this->getSplitTadTmpFilename() );
}
// デフォルト値
this->IsSpreadSheet = true;
this->IsReadOnly = false;
@ -820,10 +821,10 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
void InitializeComponent(void)
{
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));
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());
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());
this->tboxFile = (gcnew System::Windows::Forms::TextBox());
this->gboxSrl = (gcnew System::Windows::Forms::GroupBox());
this->tboxRemasterVer = (gcnew System::Windows::Forms::TextBox());
@ -1035,6 +1036,7 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
this->butSetBack = (gcnew System::Windows::Forms::Button());
this->tboxGuideRomEditInfo = (gcnew System::Windows::Forms::TextBox());
this->gboxParental = (gcnew System::Windows::Forms::GroupBox());
this->cboxIsUnnecessaryRating = (gcnew System::Windows::Forms::CheckBox());
this->tabSubmitInfo = (gcnew System::Windows::Forms::TabPage());
this->labProductNameLimit = (gcnew System::Windows::Forms::Label());
this->tboxGuideSubmitInfo = (gcnew System::Windows::Forms::TextBox());
@ -2341,15 +2343,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});
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,
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,
static_cast<System::Byte>(128)));
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;
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;
resources->ApplyResources(this->gridLibrary, L"gridLibrary");
this->gridLibrary->Name = L"gridLibrary";
this->gridLibrary->ReadOnly = true;
@ -2471,6 +2473,7 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
//
// gboxParental
//
this->gboxParental->Controls->Add(this->cboxIsUnnecessaryRating);
this->gboxParental->Controls->Add(this->labRegion);
this->gboxParental->Controls->Add(this->combRegion);
this->gboxParental->Controls->Add(this->labParentalRating);
@ -2492,6 +2495,13 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
this->gboxParental->Name = L"gboxParental";
this->gboxParental->TabStop = false;
//
// cboxIsUnnecessaryRating
//
resources->ApplyResources(this->cboxIsUnnecessaryRating, L"cboxIsUnnecessaryRating");
this->cboxIsUnnecessaryRating->Name = L"cboxIsUnnecessaryRating";
this->cboxIsUnnecessaryRating->UseVisualStyleBackColor = true;
this->cboxIsUnnecessaryRating->CheckedChanged += gcnew System::EventHandler(this, &Form1::cboxIsUnnecessaryRating_CheckedChanged);
//
// tabSubmitInfo
//
this->tabSubmitInfo->Controls->Add(this->labProductNameLimit);
@ -2641,15 +2651,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});
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,
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,
static_cast<System::Byte>(128)));
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;
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;
this->gridWarn->GridColor = System::Drawing::SystemColors::Control;
resources->ApplyResources(this->gridWarn, L"gridWarn");
this->gridWarn->Name = L"gridWarn";
@ -2684,22 +2694,22 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
//
// gridError
//
dataGridViewCellStyle7->BackColor = System::Drawing::Color::White;
this->gridError->AlternatingRowsDefaultCellStyle = dataGridViewCellStyle7;
dataGridViewCellStyle3->BackColor = System::Drawing::Color::White;
this->gridError->AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
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});
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,
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,
static_cast<System::Byte>(128)));
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;
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;
this->gridError->GridColor = System::Drawing::SystemColors::Control;
resources->ApplyResources(this->gridError, L"gridError");
this->gridError->Name = L"gridError";
@ -3008,33 +3018,42 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
private:
// ---------------------------------------------------------------------
// ペアレンタルコントロール設定は複雑なので別に切り出す
// レーティング設定は複雑なので別に切り出す
// ---------------------------------------------------------------------
// フォーム入力をSRLに反映させる
void setParentalSrlProperties(void);
void setRatingSrlProperties(void);
// SRL情報をフォームに反映させる
void setParentalForms(void);
void setRatingForms(void);
// リージョン情報からペアレンタルコントロールの編集可能団体をマスクする
void maskParentalForms(void);
void maskRatingForms(void);
// フォーム入力が正しいか書き込み前チェック
void checkParentalForms( System::Boolean inRegion, System::Windows::Forms::ComboBox ^comb, System::String ^msg );
void checkRatingForms( System::Boolean inRegion, System::Windows::Forms::ComboBox ^comb, System::String ^msg );
// クリアする
void clearParental( System::Windows::Forms::ComboBox ^comb );
void clearRating( System::Windows::Forms::ComboBox ^comb );
// 編集できるようにする
void enableParental( System::Windows::Forms::ComboBox ^comb,
System::Windows::Forms::Label ^lab1,
System::Windows::Forms::Label ^lab2 );
void enableRating( System::Windows::Forms::ComboBox ^comb,
System::Windows::Forms::Label ^lab1,
System::Windows::Forms::Label ^lab2 );
// 編集できなくする
void disableParental( System::Windows::Forms::ComboBox ^comb,
System::Windows::Forms::Label ^lab1,
System::Windows::Forms::Label ^lab2 );
void disableRating( System::Windows::Forms::ComboBox ^comb,
System::Windows::Forms::Label ^lab1,
System::Windows::Forms::Label ^lab2 );
// 全団体を「レーティング表示不要」の設定/解除をする
void changeUnnecessaryRatingForms( System::Boolean bInitial );
// 「レーティング表示不要」と表示して編集できなくする
void unnecessaryRating( System::Windows::Forms::ComboBox ^comb );
// 「レーティング表示不要」表示を消して通常の設定に戻す
void necessaryRating( System::Windows::Forms::ComboBox ^comb, System::Boolean bInitial );
// ----------------------------------------------
// フォームのチェック
@ -3059,6 +3078,9 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
// 提出確認書にフォームを反映
void setDeliverableProperties(void);
// 提出確認書に反映するレーティング(1団体)のフォームを返す
System::String^ setDeliverableRatingOgnProperties( System::Windows::Forms::ComboBox ^box );
// 提出情報のフォームチェック
System::Boolean checkDeliverableForms(void);
@ -3582,7 +3604,26 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
private:
System::Void combRegion_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e)
{
this->maskParentalForms();
this->maskRatingForms();
this->changeUnnecessaryRatingForms(false); // 一度コンボボックスがenableになるので再設定
}
private:
System::Void cboxIsUnnecessaryRating_CheckedChanged(System::Object^ sender, System::EventArgs^ e)
{
this->changeUnnecessaryRatingForms(false);
}
private:
System::Void butSetBack_Click(System::Object^ sender, System::EventArgs^ e)
{
if( System::String::IsNullOrEmpty( this->tboxFile->Text ) )
return;
// 編集可能情報を読み込み時の設定に戻す
this->setRegionForms();
this->setRatingForms();
this->loadOtherForms(); // SRLに登録されていないROM仕様のフォームも戻す
}
private:
@ -3625,21 +3666,6 @@ private: System::Windows::Forms::Label^ labIsGameCardOn2;
}
}
private:
System::Void butSetBack_Click(System::Object^ sender, System::EventArgs^ e)
{
if( System::String::IsNullOrEmpty( this->tboxFile->Text ) )
return;
// 編集可能情報を読み込み時の設定に戻す
this->setRegionForms();
this->setParentalForms();
this->loadOtherForms(); // SRLに登録されていないROM仕様のフォームも戻す
}
}; // enf of ref class Form1
} // end of namespace MasterEditorTWL

View File

@ -329,10 +329,10 @@
<value>審査中</value>
</data>
<data name="labParentalRating.Size" type="System.Drawing.Size, System.Drawing">
<value>82, 12</value>
<value>58, 12</value>
</data>
<data name="labParentalRating.Text" xml:space="preserve">
<value>レーティング情報</value>
<value>レーティング</value>
</data>
<data name="labRegion.Size" type="System.Drawing.Size, System.Drawing">
<value>47, 12</value>
@ -742,6 +742,12 @@
<data name="tboxGuideRomEditInfo.Text" xml:space="preserve">
<value>このタブの各項目への入力は提出確認書およびマスターROMの作成のために必要です。&lt;newline&gt;これらの情報はマスターROMの作成時にROM内登録データとして登録されます(「その他ROM仕様」を除く)。</value>
</data>
<data name="cboxIsUnnecessaryRating.Size" type="System.Drawing.Size, System.Drawing">
<value>235, 16</value>
</data>
<data name="cboxIsUnnecessaryRating.Text" xml:space="preserve">
<value>レーティング表示不要 (ツール類のみ選択可)</value>
</data>
<data name="gboxParental.Text" xml:space="preserve">
<value>リージョンとレーティング情報</value>
</data>

View File

@ -216,89 +216,56 @@ void Form1::setDeliverableProperties(void)
{
this->hDeliv->hRegion = dynamic_cast<System::String^>(this->combRegion->SelectedItem);
}
if( this->combCERO->SelectedIndex < 0 )
{
if( this->isJapanese() == true )
this->hDeliv->hCERO = gcnew System::String("•s‰Â");
else
this->hDeliv->hCERO = gcnew System::String("Undefined");
}
else
{
this->hDeliv->hCERO = dynamic_cast<System::String^>(this->combCERO->SelectedItem);
}
if( this->combESRB->SelectedIndex < 0 )
{
if( this->isJapanese() == true )
this->hDeliv->hESRB = gcnew System::String("•s‰Â");
else
this->hDeliv->hESRB = gcnew System::String("Undefined");
}
else
{
this->hDeliv->hESRB = dynamic_cast<System::String^>(this->combESRB->SelectedItem);
}
if( this->combUSK->SelectedIndex < 0 )
{
if( this->isJapanese() == true )
this->hDeliv->hUSK = gcnew System::String("•s‰Â");
else
this->hDeliv->hUSK = gcnew System::String("Undefined");
}
else
{
this->hDeliv->hUSK = dynamic_cast<System::String^>(this->combUSK->SelectedItem);
}
if( this->combPEGI->SelectedIndex < 0 )
{
if( this->isJapanese() == true )
this->hDeliv->hPEGI = gcnew System::String("•s‰Â");
else
this->hDeliv->hPEGI = gcnew System::String("Undefined");
}
else
{
this->hDeliv->hPEGI = dynamic_cast<System::String^>(this->combPEGI->SelectedItem);
}
if( this->combPEGI_PRT->SelectedIndex < 0 )
{
if( this->isJapanese() == true )
this->hDeliv->hPEGI_PRT = gcnew System::String("•s‰Â");
else
this->hDeliv->hPEGI_PRT = gcnew System::String("Undefined");
}
else
{
this->hDeliv->hPEGI_PRT = dynamic_cast<System::String^>(this->combPEGI_PRT->SelectedItem);
}
if( this->combPEGI_BBFC->SelectedIndex < 0 )
{
if( this->isJapanese() == true )
this->hDeliv->hPEGI_BBFC = gcnew System::String("•s‰Â");
else
this->hDeliv->hPEGI_BBFC = gcnew System::String("Undefined");
}
else
{
this->hDeliv->hPEGI_BBFC = dynamic_cast<System::String^>(this->combPEGI_BBFC->SelectedItem);
}
if( this->combOFLC->SelectedIndex < 0 )
{
if( this->isJapanese() == true )
this->hDeliv->hOFLC = gcnew System::String("•s‰Â");
else
this->hDeliv->hOFLC = gcnew System::String("Undefined");
}
else
{
this->hDeliv->hOFLC = dynamic_cast<System::String^>(this->combOFLC->SelectedItem);
}
this->hDeliv->hCERO = this->setDeliverableRatingOgnProperties( this->combCERO );
this->hDeliv->hESRB = this->setDeliverableRatingOgnProperties( this->combESRB );
this->hDeliv->hUSK = this->setDeliverableRatingOgnProperties( this->combUSK );
this->hDeliv->hPEGI = this->setDeliverableRatingOgnProperties( this->combPEGI );
this->hDeliv->hPEGI_PRT = this->setDeliverableRatingOgnProperties( this->combPEGI_PRT );
this->hDeliv->hPEGI_BBFC = this->setDeliverableRatingOgnProperties( this->combPEGI_BBFC );
this->hDeliv->hOFLC = this->setDeliverableRatingOgnProperties( this->combOFLC );
// SRLには登録されないROM仕様
this->hDeliv->IsUGC = this->cboxIsUGC->Checked;
this->hDeliv->IsPhotoEx = this->cboxIsPhotoEx->Checked;
}
// ----------------------------------------------
// 提出確認書にレーティング(1団体)のフォームを反映
// ----------------------------------------------
System::String^ Form1::setDeliverableRatingOgnProperties( System::Windows::Forms::ComboBox ^box )
{
System::String ^str;
if( this->cboxIsUnnecessaryRating->Checked )
{
if( box->Visible )
{
str = System::String::Copy( box->Text ); // テキスト入力可になっているので取得できるはず
}
else // リージョンに含まれていない(コンボボックスが表示されていない)ときには不可とする
{
if( this->isJapanese() == true )
str = gcnew System::String("不可");
else
str = gcnew System::String("Undefined");
}
}
else
{
if( box->SelectedIndex < 0 )
{
if( this->isJapanese() == true )
str = gcnew System::String("不可");
else
str = gcnew System::String("Undefined");
}
else
{
str = dynamic_cast<System::String^>(this->combCERO->SelectedItem);
}
}
return str;
}
// ----------------------------------------------
// マスタ書類情報(SRL影響なし)のフォームチェック
// ----------------------------------------------

View File

@ -353,6 +353,7 @@ void MasterEditorTWL::Form1::changeLanguage( System::String ^langname )
resources->ApplyResources(this->butSetBack, L"butSetBack");
resources->ApplyResources(this->tboxGuideRomEditInfo, L"tboxGuideRomEditInfo");
resources->ApplyResources(this->gboxParental, L"gboxParental");
resources->ApplyResources(this->cboxIsUnnecessaryRating, L"cboxIsUnnecessaryRating");
resources->ApplyResources(this->tabSubmitInfo, L"tabSubmitInfo");
resources->ApplyResources(this->labProductNameLimit, L"labProductNameLimit");
resources->ApplyResources(this->tboxGuideSubmitInfo, L"tboxGuideSubmitInfo");
@ -388,9 +389,26 @@ void MasterEditorTWL::Form1::changeLanguage( System::String ^langname )
this->setSrlFormsTextBox();
}
// 「レーティング表示不要」にチェックが入っているときのみレーティングのコンボボックスのテキストを変更
// (それ以外のときにはApplyResourcesで自動的に切り替わる)
if( this->cboxIsUnnecessaryRating->Checked )
{
this->unnecessaryRating( this->combCERO );
this->unnecessaryRating( this->combESRB );
this->unnecessaryRating( this->combUSK );
this->unnecessaryRating( this->combPEGI );
this->unnecessaryRating( this->combPEGI_PRT );
this->unnecessaryRating( this->combPEGI_BBFC );
this->unnecessaryRating( this->combOFLC );
}
// 複数行表示の改行を挿入
this->tboxGuideRomEditInfo->Text = this->tboxGuideRomEditInfo->Text->Replace( "<newline>", "\r\n" );
this->tboxGuideErrorInfo->Text = this->tboxGuideErrorInfo->Text->Replace( "<newline>", "\r\n" );
// バージョンがなくなるので再設定
System::Reflection::Assembly ^ass = System::Reflection::Assembly::GetEntryAssembly();
this->labAssemblyVersion->Text = "ver." + this->getVersion();
}
// end of file

View File

@ -68,10 +68,6 @@ void Form1::setRegionSrlPropaties(void)
}
}
// ---------------------------------------------------------------------
// ペアレンタルコントロール設定は複雑なので別に切り出す
// ---------------------------------------------------------------------
// SRL情報をフォームに反映させる
void Form1::setRegionForms(void)
{
@ -97,12 +93,15 @@ void Form1::setRegionForms(void)
index = 5;
#endif
this->combRegion->SelectedIndex = index;
this->maskParentalForms(); // ペアレンタルコントロール用フォームの表示/非表示切り替え
this->maskRatingForms(); // ペアレンタルコントロール用フォームの表示/非表示切り替え
}
// ---------------------------------------------------------------------
// ペアレンタルコントロール設定は複雑なので別に切り出す
// ---------------------------------------------------------------------
// フォーム入力をSRLに反映させる
void Form1::setParentalSrlProperties(void)
void Form1::setRatingSrlProperties(void)
{
// 各団体のフォーム入力を反映
this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_CERO ] = this->combCERO->SelectedIndex;
@ -112,11 +111,18 @@ void Form1::setParentalSrlProperties(void)
this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_PEGI_PRT ] = this->combPEGI_PRT->SelectedIndex;
this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_PEGI_BBFC ] = this->combPEGI_BBFC->SelectedIndex;
this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_OFLC ] = this->combOFLC->SelectedIndex;
} //setParentalSrlProperties()
// レーティング表示不要かどうかを設定
this->hSrl->IsUnnecessaryRating = this->cboxIsUnnecessaryRating->Checked;
} //setRatingSrlProperties()
// SRL内のペアレンタルコントロール情報を抜き出してフォームに反映させる
void Form1::setParentalForms(void)
void Form1::setRatingForms(void)
{
// レーティング表示不要かどうかを判断
this->cboxIsUnnecessaryRating->Checked = this->hSrl->IsUnnecessaryRating;
this->changeUnnecessaryRatingForms( true ); // 不要かどうかに応じてフォームを設定
// 各団体のコンボボックスのインデックスを設定
this->combCERO->SelectedIndex = this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_CERO ];
this->combESRB->SelectedIndex = this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_ESRB ];
@ -125,83 +131,108 @@ void Form1::setParentalForms(void)
this->combPEGI_PRT->SelectedIndex = this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_PEGI_PRT ];
this->combPEGI_BBFC->SelectedIndex = this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_PEGI_BBFC ];
this->combOFLC->SelectedIndex = this->hSrl->hArrayParentalIndex[ OS_TWL_PCTL_OGN_OFLC ];
} //setParentalForms()
} //setRatingForms()
// リージョン情報からペアレンタルコントロールの編集可能団体をマスクする
void Form1::maskParentalForms(void)
void Form1::maskRatingForms(void)
{
this->enableParental( this->combCERO, this->labCERO, nullptr );
this->enableParental( this->combESRB, this->labESRB, nullptr );
this->enableParental( this->combUSK, this->labUSK, nullptr );
this->enableParental( this->combPEGI, this->labPEGI, nullptr );
this->enableParental( this->combPEGI_PRT, this->labPEGI_PRT, nullptr );
this->enableParental( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr );
this->enableParental( this->combOFLC, this->labOFLC, nullptr );
this->enableRating( this->combCERO, this->labCERO, nullptr );
this->enableRating( this->combESRB, this->labESRB, nullptr );
this->enableRating( this->combUSK, this->labUSK, nullptr );
this->enableRating( this->combPEGI, this->labPEGI, nullptr );
this->enableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr );
this->enableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr );
this->enableRating( this->combOFLC, this->labOFLC, nullptr );
switch( this->combRegion->SelectedIndex )
{
case 0:
// 日本
this->enableParental( this->combCERO, this->labCERO, nullptr );
this->disableParental( this->combESRB, this->labESRB, nullptr );
this->disableParental( this->combUSK, this->labUSK, nullptr );
this->disableParental( this->combPEGI, this->labPEGI, nullptr );
this->disableParental( this->combPEGI_PRT, this->labPEGI_PRT, nullptr );
this->disableParental( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr );
this->disableParental( this->combOFLC, this->labOFLC, nullptr );
this->enableRating( this->combCERO, this->labCERO, nullptr );
this->disableRating( this->combESRB, this->labESRB, nullptr );
this->disableRating( this->combUSK, this->labUSK, nullptr );
this->disableRating( this->combPEGI, this->labPEGI, nullptr );
this->disableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr );
this->disableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr );
this->disableRating( this->combOFLC, this->labOFLC, nullptr );
break;
case 1:
// 米国
this->disableParental( this->combCERO, this->labCERO, nullptr );
this->enableParental( this->combESRB, this->labESRB, nullptr );
this->disableParental( this->combUSK, this->labUSK, nullptr );
this->disableParental( this->combPEGI, this->labPEGI, nullptr );
this->disableParental( this->combPEGI_PRT, this->labPEGI_PRT, nullptr );
this->disableParental( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr );
this->disableParental( this->combOFLC, this->labOFLC, nullptr );
this->disableRating( this->combCERO, this->labCERO, nullptr );
this->enableRating( this->combESRB, this->labESRB, nullptr );
this->disableRating( this->combUSK, this->labUSK, nullptr );
this->disableRating( this->combPEGI, this->labPEGI, nullptr );
this->disableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr );
this->disableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr );
this->disableRating( this->combOFLC, this->labOFLC, nullptr );
break;
case 2:
// 欧州
this->disableParental( this->combCERO, this->labCERO, nullptr );
this->disableParental( this->combESRB, this->labESRB, nullptr );
this->enableParental( this->combUSK, this->labUSK, nullptr );
this->enableParental( this->combPEGI, this->labPEGI, nullptr );
this->enableParental( this->combPEGI_PRT, this->labPEGI_PRT, nullptr );
this->enableParental( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr );
this->disableParental( this->combOFLC, this->labOFLC, nullptr );
this->disableRating( this->combCERO, this->labCERO, nullptr );
this->disableRating( this->combESRB, this->labESRB, nullptr );
this->enableRating( this->combUSK, this->labUSK, nullptr );
this->enableRating( this->combPEGI, this->labPEGI, nullptr );
this->enableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr );
this->enableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr );
this->disableRating( this->combOFLC, this->labOFLC, nullptr );
break;
case 3:
// 豪州
this->disableParental( this->combCERO, this->labCERO, nullptr );
this->disableParental( this->combESRB, this->labESRB, nullptr );
this->disableParental( this->combUSK, this->labUSK, nullptr );
this->disableParental( this->combPEGI, this->labPEGI, nullptr );
this->disableParental( this->combPEGI_PRT, this->labPEGI_PRT, nullptr );
this->disableParental( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr );
this->enableParental( this->combOFLC, this->labOFLC, nullptr );
this->disableRating( this->combCERO, this->labCERO, nullptr );
this->disableRating( this->combESRB, this->labESRB, nullptr );
this->disableRating( this->combUSK, this->labUSK, nullptr );
this->disableRating( this->combPEGI, this->labPEGI, nullptr );
this->disableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr );
this->disableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr );
this->enableRating( this->combOFLC, this->labOFLC, nullptr );
break;
case 4:
// 欧州と豪州
this->disableParental( this->combCERO, this->labCERO, nullptr );
this->disableParental( this->combESRB, this->labESRB, nullptr );
this->enableParental( this->combUSK, this->labUSK, nullptr );
this->enableParental( this->combPEGI, this->labPEGI, nullptr );
this->enableParental( this->combPEGI_PRT, this->labPEGI_PRT, nullptr );
this->enableParental( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr );
this->enableParental( this->combOFLC, this->labOFLC, nullptr );
this->disableRating( this->combCERO, this->labCERO, nullptr );
this->disableRating( this->combESRB, this->labESRB, nullptr );
this->enableRating( this->combUSK, this->labUSK, nullptr );
this->enableRating( this->combPEGI, this->labPEGI, nullptr );
this->enableRating( this->combPEGI_PRT, this->labPEGI_PRT, nullptr );
this->enableRating( this->combPEGI_BBFC, this->labPEGI_BBFC, nullptr );
this->enableRating( this->combOFLC, this->labOFLC, nullptr );
break;
// 全リージョンのときは何もdisableにしない
default:
break;
}
} //maskParentalForms()
} //maskRatingForms()
// 全団体を「レーティング表示不要」の設定/解除をする
void Form1::changeUnnecessaryRatingForms( System::Boolean bInitial )
{
if( this->cboxIsUnnecessaryRating->Checked )
{
this->unnecessaryRating( this->combCERO ); // マスクは別のところでするのでここでは全団体を不要にしてもかまわない
this->unnecessaryRating( this->combESRB );
this->unnecessaryRating( this->combUSK );
this->unnecessaryRating( this->combPEGI );
this->unnecessaryRating( this->combPEGI_PRT );
this->unnecessaryRating( this->combPEGI_BBFC );
this->unnecessaryRating( this->combOFLC );
}
else
{
this->necessaryRating( this->combCERO, bInitial );
this->necessaryRating( this->combESRB, bInitial );
this->necessaryRating( this->combUSK, bInitial );
this->necessaryRating( this->combPEGI, bInitial );
this->necessaryRating( this->combPEGI_PRT, bInitial );
this->necessaryRating( this->combPEGI_BBFC, bInitial );
this->necessaryRating( this->combOFLC, bInitial );
}
}
// ペアレンタルコントロール関連のフォーム入力が正しいか書き込み前チェック
void Form1::checkParentalForms( System::Boolean inRegion, System::Windows::Forms::ComboBox ^comb, System::String ^msg )
void Form1::checkRatingForms( System::Boolean inRegion, System::Windows::Forms::ComboBox ^comb, System::String ^msg )
{
// リージョンに含まれていないとき: 0クリアが保証されるのでチェック必要なし
if( !inRegion )
@ -225,18 +256,17 @@ void Form1::checkParentalForms( System::Boolean inRegion, System::Windows::Forms
msg + ": 審査中指定がされています。審査が決まりしだい、再提出してください。",
"Parental Control", msg + ": Save ROM data as Game soft which needs rating examinination.", true, true ) );
}
} //checkParentalForms()
} //checkRatingForms()
// ペアレンタルコントロール情報をクリアする
void Form1::clearParental( System::Windows::Forms::ComboBox ^comb )
void Form1::clearRating( System::Windows::Forms::ComboBox ^comb )
{
comb->SelectedIndex = -1; // 空白にする
}
// ペアレンタルコントロール情報を編集できるようにする
void Form1::enableParental( System::Windows::Forms::ComboBox ^comb,
void Form1::enableRating( System::Windows::Forms::ComboBox ^comb,
System::Windows::Forms::Label ^lab1,
System::Windows::Forms::Label ^lab2 )
{
@ -250,11 +280,11 @@ void Form1::enableParental( System::Windows::Forms::ComboBox ^comb,
}
// ペアレンタルコントロール情報を編集できなくする
void Form1::disableParental( System::Windows::Forms::ComboBox ^comb,
void Form1::disableRating( System::Windows::Forms::ComboBox ^comb,
System::Windows::Forms::Label ^lab1,
System::Windows::Forms::Label ^lab2 )
{
this->clearParental( comb );
this->clearRating( comb );
comb->Enabled = false;
comb->Visible = false;
lab1->Visible = false;
@ -264,4 +294,33 @@ void Form1::disableParental( System::Windows::Forms::ComboBox ^comb,
}
}
// 「レーティング表示不要」と表示して編集できなくする
void Form1::unnecessaryRating( System::Windows::Forms::ComboBox ^comb )
{
comb->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDown; // 一時的にテキスト入力可能にする
comb->SelectedIndex = -1; // 何も選択されていないとみなす
System::String ^msg;
if( this->isJapanese() )
{
msg = gcnew System::String( "レーティング表示不要(全年齢)" );
}
else
{
msg = gcnew System::String( "Unnecessary Rating(All ages)" );
}
comb->Text = msg;
comb->Enabled = false; // 編集不可能にする
}
// 「レーティング表示不要」表示を消して通常の設定に戻す
void Form1::necessaryRating( System::Windows::Forms::ComboBox ^comb, System::Boolean bInitial )
{
comb->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
if( !bInitial )
{
comb->SelectedIndex = -1; // 読み込みの場合にはコンボボックスを初期化しない(せっかく読み込んだ情報を消してしまうため)
}
comb->Enabled = true; // 編集不可能にする
}
// end of file

View File

@ -35,7 +35,7 @@ void Form1::setSrlProperties(void)
this->setRegionSrlPropaties();
// ペアレンタルコントロール
this->setParentalSrlProperties();
this->setRatingSrlProperties();
} //setSrlProperties()
// ----------------------------------------------
@ -210,7 +210,7 @@ void Form1::setSrlForms(void)
// 編集可能情報
this->setRegionForms();
this->setParentalForms(); // ペアレンタルコントロール関連
this->setRatingForms(); // ペアレンタルコントロール関連
// ROMヘッダには関係ないが
// NANDアプリのときにバックアップメモリを自動的に「なし」にしておく
@ -341,13 +341,24 @@ System::Boolean Form1::checkSrlForms(void)
}
// ペアレンタルコントロール
this->checkParentalForms( bJapan, this->combCERO, this->labCERO->Text );
this->checkParentalForms( bAmerica, this->combESRB, this->labESRB->Text );
this->checkParentalForms( bEurope, this->combUSK, this->labUSK->Text );
this->checkParentalForms( bEurope, this->combPEGI, this->labPEGI->Text );
this->checkParentalForms( bEurope, this->combPEGI_PRT, this->labPEGI_PRT->Text );
this->checkParentalForms( bEurope, this->combPEGI_BBFC, this->labPEGI_BBFC->Text );
this->checkParentalForms( bAustralia, this->combOFLC, this->labOFLC->Text );
if( this->cboxIsUnnecessaryRating->Checked )
{
this->hWarnList->Add( gcnew RCMrcError(
"ペアレンタルコントロール情報", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"レーティング表示が不要であると指定されています。この指定は、ソフトがゲームでないツール類のときのみ選択可能です。レーティング表示が不要であるかどうかは弊社窓口にご相談ください。",
"Parental Control",
"In your selection, rating is unnecessary. This selection is available for only tool application which is not game. Please contact Nintendo for checking validation of this selection", true, true ) );
}
else
{
this->checkRatingForms( bJapan, this->combCERO, this->labCERO->Text );
this->checkRatingForms( bAmerica, this->combESRB, this->labESRB->Text );
this->checkRatingForms( bEurope, this->combUSK, this->labUSK->Text );
this->checkRatingForms( bEurope, this->combPEGI, this->labPEGI->Text );
this->checkRatingForms( bEurope, this->combPEGI_PRT, this->labPEGI_PRT->Text );
this->checkRatingForms( bEurope, this->combPEGI_BBFC, this->labPEGI_BBFC->Text );
this->checkRatingForms( bAustralia, this->combOFLC, this->labOFLC->Text );
}
// ひととおりエラー登録をした後で
// SRLバイナリに影響を与えるエラーが存在するかチェック

View File

@ -244,7 +244,7 @@ void Form1::loadTmp( System::String ^filename )
this->parseTmp( root, "/MasterEditorTWL/Form/IsUGC", this->cboxIsUGC );
this->parseTmp( root, "/MasterEditorTWL/Form/IsPhotoEx", this->cboxIsPhotoEx );
this->maskParentalForms(); // ペアレンタルコントロール情報をリージョンに合わせる
this->maskRatingForms(); // ペアレンタルコントロール情報をリージョンに合わせる
} //loadTmp()

View File

@ -480,12 +480,7 @@ ECSrlResult RCSrl::setRomHeader(void)
// ROMヘッダの[0,0x160)の領域はRead Onlyで変更しない
// いくつかのフラグをROMヘッダに反映
this->pRomHeader->s.exFlags.agree_EULA = (this->IsEULA == true)?1:0;
this->pRomHeader->s.exFlags.WiFiConnectionIcon = (this->IsWiFiIcon == true)?1:0;
this->pRomHeader->s.exFlags.DSWirelessIcon = (this->IsWirelessIcon == true)?1:0;
// レーティング
// リージョン
u32 map = 0;
if( this->IsRegionJapan == true ) { map |= METWL_MASK_REGION_JAPAN; }
if( this->IsRegionAmerica == true ) { map |= METWL_MASK_REGION_AMERICA; }
@ -501,8 +496,8 @@ ECSrlResult RCSrl::setRomHeader(void)
#endif
this->pRomHeader->s.card_region_bitmap = map;
// ペアレンタルコントロール
this->setParentalControlHeader();
// レーティング
this->setRatingRomHeader( map );
// ROMヘッダのCRCと署名を更新する
result = this->calcRomHeaderCRC();
@ -520,27 +515,38 @@ ECSrlResult RCSrl::setRomHeader(void)
} // ECSrlResult RCSrl::setRomHeader(void)
// ペアレンタルコントロールのプロパティをROMヘッダに反映させる
void RCSrl::setParentalControlHeader(void)
void RCSrl::setRatingRomHeader( u32 region )
{
int i;
for( i=0; i < PARENTAL_CONTROL_INFO_SIZE; i++ )
// リージョンに含まれない団体はすべて「不可」(未定義)
int j;
for( j=0; j < PARENTAL_CONTROL_INFO_SIZE; j++ )
{
u8 rating;
this->pRomHeader->s.parental_control_rating_info[j] = 0x00;
}
// 「レーティング表示不要」フラグを立てる
this->pRomHeader->s.unnecessary_rating_display = (this->IsUnnecessaryRating == true)?1:0;
// リージョンに含まれる団体のみを設定
System::Collections::Generic::List<int> ^ognlist = MasterEditorTWL::getOgnListInRegion( region );
for each( int ogn in ognlist )
{
u8 rating = 0;
if( this->IsUnnecessaryRating )
{
rating = OS_TWL_PCTL_OGNINFO_ENABLE_MASK | 0; // レーティング表示が不要のときは「全年齢」と同じ値にする
}
else
{
cli::array<System::Byte> ^ages = MasterEditorTWL::getOgnRatingAges( i ); // 設定可能年齢リストを取得
cli::array<System::Byte> ^ages = MasterEditorTWL::getOgnRatingAges( ogn ); // 設定可能年齢リストを取得
if( this->hArrayParentalIndex[i] < 0 ) // 未定義
if( this->hArrayParentalIndex[ ogn ] < 0 ) // 未定義
{
rating = 0x00;
}
else
{
int index = this->hArrayParentalIndex[i];
int index = this->hArrayParentalIndex[ ogn ];
if( index == ages->Length ) // 審査中
{
rating = OS_TWL_PCTL_OGNINFO_ENABLE_MASK | OS_TWL_PCTL_OGNINFO_ALWAYS_MASK;
@ -551,7 +557,7 @@ void RCSrl::setParentalControlHeader(void)
}
}
}
this->pRomHeader->s.parental_control_rating_info[i] = rating;
this->pRomHeader->s.parental_control_rating_info[ ogn ] = rating;
}
}

View File

@ -369,7 +369,7 @@ namespace MasterEditorTWL
void setUnnecessaryRatingInfo( u32 region ); // レーティング情報が不要かどうかを取得(エラー情報も登録)
void setRatingInfo( u32 region ); // リージョンに含まれる団体のレーティングを取得
void setOneRatingOrgInfo( int ogn ); // 1つの団体のレーティングを取得(エラー情報も登録)
void setParentalControlHeader(void); // ROMヘッダにフィールドの値を反映させる
void setRatingRomHeader( u32 region ); // ROMヘッダにフィールドの値を反映させる
// ROMヘッダの更新
ECSrlResult calcRomHeaderCRC(void); // ROMヘッダのCRCを再計算