From 24c840895d51ef204597e86981e4bb62574fb6fc Mon Sep 17 00:00:00 2001 From: nishikawa_takeshi Date: Fri, 29 Aug 2008 10:52:54 +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=9A=E3=82=A2=E3=83=AC=E3=83=B3?= =?UTF-8?q?=E3=82=BF=E3=83=AB=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AD=E3=83=BC?= =?UTF-8?q?=E3=83=AB=E6=83=85=E5=A0=B1=E3=81=AE=E8=AA=AD=E3=81=BF=E8=BE=BC?= =?UTF-8?q?=E3=81=BF=E6=99=82=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=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@2328 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../tools/MasterEditorTWL/MasterEditorTWL.ncb | Bin 11119616 -> 11119616 bytes .../tools/MasterEditorTWL/MasterEditorTWL.suo | Bin 40448 -> 38912 bytes .../MasterEditorTWL/Debug/BuildLog.htm | Bin 10612 -> 13600 bytes .../MasterEditorTWL/MasterEditorTWL/srl.cpp | 472 ++++++++++-------- .../MasterEditorTWL/MasterEditorTWL/srl.h | 3 + 5 files changed, 253 insertions(+), 222 deletions(-) diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL.ncb b/build/tools/MasterEditorTWL/MasterEditorTWL.ncb index 1ebb22efba57cc731c085c1e045daf5e0a5d5f27..2703eef9c1fd4333ec2d8840c4388229f5d51a8f 100644 GIT binary patch delta 11938 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%0D*v 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 delta 13434 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 diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm b/build/tools/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm index abc2c459861eca3f7f35f925640adde7a4e0371b..f36553ea06fd9abd0b21c1277599d82a533a82e6 100644 GIT binary patch delta 661 zcmewov>2%a3~@;6)acrs#jr@p-O=1sg|AW2gko~UDFOy2yP-Ij&3 zgdv3?5olfo%sfmjNamSgHP4U#1UJw!49U%!(uE*bn4|03yjCWk39E#@JlInf7&^KY zUV@CmlxSD7WDr{pBOnn5tZ@aFDP|}FhAuSrz`8GrDas;r zqQx3m#cgrPc!Y{%pb5zg@eJh*84USAvr>^wW55xMC~7tv{4qFbFv&o^R3J&$PY)=k KxB0ZnN)`Zjd54Su delta 245 zcmZ3G^(AP78Jn;pRomHeader->s.card_region_bitmap; - if( (region != METWL_MASK_REGION_JAPAN) && - (region != METWL_MASK_REGION_AMERICA) && - (region != METWL_MASK_REGION_EUROPE) && - (region != METWL_MASK_REGION_AUSTRALIA) && + if( !this->mrcRegion( region ) ) + { + return ECSrlResult::NOERROR; // これ以上チェックしない + } + + // リージョンに含まれている団体/含まれていない団体の設定をチェック + this->mrcRegionOrganization( region ); + + // リージョンに含まれている団体の設定が正しいかどうか + if( region == METWL_MASK_REGION_JAPAN ) + { + this->mrcRating( OS_TWL_PCTL_OGN_CERO ); + } + if( region == METWL_MASK_REGION_AMERICA ) + { + this->mrcRating( OS_TWL_PCTL_OGN_ESRB ); + } + if( region == METWL_MASK_REGION_EUROPE ) + { + this->mrcRating( OS_TWL_PCTL_OGN_USK ); + this->mrcRating( OS_TWL_PCTL_OGN_PEGI_GEN ); + this->mrcRating( OS_TWL_PCTL_OGN_PEGI_PRT ); + this->mrcRating( OS_TWL_PCTL_OGN_PEGI_BBFC ); + } + if( region == METWL_MASK_REGION_AUSTRALIA ) + { + this->mrcRating( OS_TWL_PCTL_OGN_OFLC ); + } + if( region == (METWL_MASK_REGION_EUROPE | METWL_MASK_REGION_AUSTRALIA) ) + { + this->mrcRating( OS_TWL_PCTL_OGN_USK ); + this->mrcRating( OS_TWL_PCTL_OGN_PEGI_GEN ); + this->mrcRating( OS_TWL_PCTL_OGN_PEGI_PRT ); + this->mrcRating( OS_TWL_PCTL_OGN_PEGI_BBFC ); + this->mrcRating( OS_TWL_PCTL_OGN_OFLC ); + } +#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + if( region == METWL_MASK_REGION_ALL ) + { + this->mrcRating( OS_TWL_PCTL_OGN_CERO ); + this->mrcRating( OS_TWL_PCTL_OGN_ESRB ); + this->mrcRating( OS_TWL_PCTL_OGN_USK ); + this->mrcRating( OS_TWL_PCTL_OGN_PEGI_GEN ); + this->mrcRating( OS_TWL_PCTL_OGN_PEGI_PRT ); + this->mrcRating( OS_TWL_PCTL_OGN_PEGI_BBFC ); + this->mrcRating( OS_TWL_PCTL_OGN_OFLC ); + } +#endif //#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + + return ECSrlResult::NOERROR; +} //mrcParentalControl() + +// PCTLチェックの一部 リージョンが正常かチェック +System::Boolean RCSrl::mrcRegion( System::UInt32 region ) +{ + System::Boolean bRegionResult = true; // リージョン設定が正常であるか + if( (region != METWL_MASK_REGION_JAPAN) && (region != METWL_MASK_REGION_AMERICA) && + (region != METWL_MASK_REGION_EUROPE) && (region != METWL_MASK_REGION_AUSTRALIA) && (region != (METWL_MASK_REGION_EUROPE | METWL_MASK_REGION_AUSTRALIA)) ) { #if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) @@ -1068,247 +1121,222 @@ ECSrlResult RCSrl::mrcTWLParentalControl(void) this->hWarnList->Add( gcnew RCMRCError( "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "仕向地の設定が不正のため、ROMデータ内のすべてのレーティング団体の情報を無視して読み込みました。本ツールを用いて修正してください。", "Parental Control", "Illigal region. In reading, therefore, settings for all rating organizations are ignored. Please set this infomation using this tool.", true ) ); - return ECSrlResult::NOERROR; // もうこれ以上チェックしない } + return bRegionResult; +} - // リージョンに含まれていない団体の設定がされていたらダメ +// PCTLチェックの一部 リージョンに含まれる団体/含まれない団体の設定をチェック +void RCSrl::mrcRegionOrganization( System::UInt32 region ) +{ + // 表示用の団体ラベル + cli::array ^ognArray = gcnew cli::array(PARENTAL_CONTROL_INFO_SIZE); + System::Int32 i; + for( i=0; i < PARENTAL_CONTROL_INFO_SIZE; i++ ) + { + switch(i) + { + case OS_TWL_PCTL_OGN_CERO: + ognArray[i] = gcnew System::String( "CERO: " ); + break; + case OS_TWL_PCTL_OGN_ESRB: + ognArray[i] = gcnew System::String( "ESRB: " ); + break; + case OS_TWL_PCTL_OGN_USK: + ognArray[i] = gcnew System::String( "USK: " ); + break; + case OS_TWL_PCTL_OGN_PEGI_GEN: + ognArray[i] = gcnew System::String( "PEGI(General): " ); + break; + case OS_TWL_PCTL_OGN_PEGI_PRT: + ognArray[i] = gcnew System::String( "PEGI(Portugal): " ); + break; + case OS_TWL_PCTL_OGN_PEGI_BBFC: + ognArray[i] = gcnew System::String( "PEGI and BBFC: " ); + break; + case OS_TWL_PCTL_OGN_OFLC: + ognArray[i] = gcnew System::String( "OFLC: " ); + break; + } + } System::String ^warnEmptyJ = gcnew System::String( "レーティング審査の必要がないソフトだとみなします。審査が必要である場合には、本ツールを用いて修正してください。" ); System::String ^warnEmptyE = gcnew System::String( "This ROM is not necessary for CERO rating. If necessary, please set this infomation using this tool." ); System::String ^warnFillJ = gcnew System::String( "リージョンに含まれない団体の情報が設定されていたため、これらの団体の情報を無視して読み込みました。本ツールを用いて修正してください。" ); System::String ^warnFillE = gcnew System::String( "Some organizations is not include in the region. In reading, therefore, settings for all rating organizations are ignored. Please set this infomation using this tool." ); - if( region == METWL_MASK_REGION_JAPAN ) + + // リージョンに含まれる団体と含まれない団体をリスト化する + System::Collections::Generic::List ^inList = gcnew System::Collections::Generic::List(); + inList->Clear(); + System::Collections::Generic::List ^exList = gcnew System::Collections::Generic::List(); + exList->Clear(); + + switch( region ) { - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_CERO ] == 0 ) + case METWL_MASK_REGION_JAPAN: + inList->Add( OS_TWL_PCTL_OGN_CERO ); // 含まれるリスト + exList->Add( OS_TWL_PCTL_OGN_ESRB ); // 含まれないリスト + exList->Add( OS_TWL_PCTL_OGN_USK ); + exList->Add( OS_TWL_PCTL_OGN_PEGI_GEN ); + exList->Add( OS_TWL_PCTL_OGN_PEGI_PRT ); + exList->Add( OS_TWL_PCTL_OGN_PEGI_BBFC ); + exList->Add( OS_TWL_PCTL_OGN_OFLC ); + break; + + case METWL_MASK_REGION_AMERICA: + exList->Add( OS_TWL_PCTL_OGN_CERO ); + inList->Add( OS_TWL_PCTL_OGN_ESRB ); + exList->Add( OS_TWL_PCTL_OGN_USK ); + exList->Add( OS_TWL_PCTL_OGN_PEGI_GEN ); + exList->Add( OS_TWL_PCTL_OGN_PEGI_PRT ); + exList->Add( OS_TWL_PCTL_OGN_PEGI_BBFC ); + exList->Add( OS_TWL_PCTL_OGN_OFLC ); + break; + + case METWL_MASK_REGION_EUROPE: + exList->Add( OS_TWL_PCTL_OGN_CERO ); + exList->Add( OS_TWL_PCTL_OGN_ESRB ); + inList->Add( OS_TWL_PCTL_OGN_USK ); + inList->Add( OS_TWL_PCTL_OGN_PEGI_GEN ); + inList->Add( OS_TWL_PCTL_OGN_PEGI_PRT ); + inList->Add( OS_TWL_PCTL_OGN_PEGI_BBFC ); + exList->Add( OS_TWL_PCTL_OGN_OFLC ); + break; + + case METWL_MASK_REGION_AUSTRALIA: + exList->Add( OS_TWL_PCTL_OGN_CERO ); + exList->Add( OS_TWL_PCTL_OGN_ESRB ); + exList->Add( OS_TWL_PCTL_OGN_USK ); + exList->Add( OS_TWL_PCTL_OGN_PEGI_GEN ); + exList->Add( OS_TWL_PCTL_OGN_PEGI_PRT ); + exList->Add( OS_TWL_PCTL_OGN_PEGI_BBFC ); + inList->Add( OS_TWL_PCTL_OGN_OFLC ); + break; + + case (METWL_MASK_REGION_EUROPE|METWL_MASK_REGION_AUSTRALIA): + exList->Add( OS_TWL_PCTL_OGN_CERO ); + exList->Add( OS_TWL_PCTL_OGN_ESRB ); + inList->Add( OS_TWL_PCTL_OGN_USK ); + inList->Add( OS_TWL_PCTL_OGN_PEGI_GEN ); + inList->Add( OS_TWL_PCTL_OGN_PEGI_PRT ); + inList->Add( OS_TWL_PCTL_OGN_PEGI_BBFC ); + inList->Add( OS_TWL_PCTL_OGN_OFLC ); + break; + +#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + case METWL_MASK_REGION_ALL: + inList->Add( OS_TWL_PCTL_OGN_CERO ); + inList->Add( OS_TWL_PCTL_OGN_ESRB ); + inList->Add( OS_TWL_PCTL_OGN_USK ); + inList->Add( OS_TWL_PCTL_OGN_PEGI_GEN ); + inList->Add( OS_TWL_PCTL_OGN_PEGI_PRT ); + inList->Add( OS_TWL_PCTL_OGN_PEGI_BBFC ); + inList->Add( OS_TWL_PCTL_OGN_OFLC ); + break; +#endif //#if defined(METWL_VER_APPTYPE_SYSTEM) || defined(METWL_VER_APPTYPE_SECURE) || defined(METWL_VER_APPTYPE_LAUNCHER) + } + + // リージョンに含まれる団体に何も設定されていないときダメ + for each ( System::Byte ogn in inList ) + { + if( this->pRomHeader->s.parental_control_rating_info[ ogn ] == 0 ) { this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "CERO: " + warnEmptyJ, - "Parental Control", "CERO: " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_CERO ); - } - if( (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_ESRB ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_USK ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_GEN ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_PRT ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_BBFC ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_OFLC ] != 0) ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, warnFillJ, - "Parental Control", warnFillE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_ESRB ); - this->clearParentalControl( OS_TWL_PCTL_OGN_USK ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_GEN ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_PRT ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_BBFC ); - this->clearParentalControl( OS_TWL_PCTL_OGN_OFLC ); + "ペアレンタルコントロール情報", 0x2f0, 0x2ff, ognArray[ogn] + warnEmptyJ, + "Parental Control", ognArray[ogn] + warnEmptyE, true ) ); + this->clearParentalControl( ogn ); } } - if( region == METWL_MASK_REGION_AMERICA ) + // リージョンに含まれない団体に何か設定されていたらダメ + System::Boolean bSet = false; + for each ( System::Byte ogn in exList ) { - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_ESRB ] == 0 ) + if( this->pRomHeader->s.parental_control_rating_info[ ogn ] != 0 ) { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "ESRB: " + warnEmptyJ, - "Parental Control", "ESRB: " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_ESRB ); - } - if( (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_CERO ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_USK ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_GEN ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_PRT ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_BBFC ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_OFLC ] != 0) ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, warnFillJ, - "Parental Control", warnFillE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_CERO ); - this->clearParentalControl( OS_TWL_PCTL_OGN_USK ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_GEN ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_PRT ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_BBFC ); - this->clearParentalControl( OS_TWL_PCTL_OGN_OFLC ); + bSet = true; + this->clearParentalControl( ogn ); } } - if( region == METWL_MASK_REGION_EUROPE ) + if( bSet ) { - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_USK ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "USK: " + warnEmptyJ, - "Parental Control", "USK: " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_USK ); - } - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_GEN ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "PEGI(General): " + warnEmptyJ, - "Parental Control", "PEGI(General): " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_GEN ); - } - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_PRT ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "PEGI(Portugal): " + warnEmptyJ, - "Parental Control", "PEGI(Portugal): " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_PRT ); - } - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_BBFC ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "PEGI and BBFC: " + warnEmptyJ, - "Parental Control", "PEGI and BBFC: " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_BBFC ); - } - if( (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_CERO ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_ESRB ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_OFLC ] != 0) ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, warnFillJ, - "Parental Control", warnFillE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_CERO ); - this->clearParentalControl( OS_TWL_PCTL_OGN_ESRB ); - this->clearParentalControl( OS_TWL_PCTL_OGN_OFLC ); - } + this->hWarnList->Add( gcnew RCMRCError( + "ペアレンタルコントロール情報", 0x2f0, 0x2ff, warnFillJ, + "Parental Control", warnFillE, true ) ); } - if( region == METWL_MASK_REGION_AUSTRALIA ) +} //mrcRegion + +// レーティング値が正常かどうかチェック +void RCSrl::mrcRating( System::Byte ogn ) +{ + System::String ^warnDisableJ = gcnew System::String( "制限が無効であるにもかかわらずレーティングが設定されていため、レーティングを無視して読み込みました。本ツールを用いて修正してください。" ); + System::String ^warnDisableE = gcnew System::String( "Rating can't be set when control isn't enable. rating setting is ignored. Please set this infomation using this tool." ); + System::String ^warnIllegalJ = gcnew System::String( "レーティング情報が不正であるため、無視して読み込みました。本ツールを用いて修正してください。" ); + System::String ^warnIllegalE = gcnew System::String( "Illegal rating. rating setting is ignored. Please set this information using this tool." ); + System::String ^warnPendingJ = gcnew System::String( "Rating Pendingが指定されています。この指定とレーティング値は同時に設定できないため、レーティング値を無視して読み込みました。" ); + System::String ^warnPendingE = gcnew System::String( "Rating Pending is setting. It is exclusive a rating age. The age is ignored." ); + + cli::array ^ognArray = gcnew cli::array(PARENTAL_CONTROL_INFO_SIZE); + System::Int32 i; + for( i=0; i < PARENTAL_CONTROL_INFO_SIZE; i++ ) { - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_OFLC ] == 0 ) + switch(i) { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "OFLC: " + warnEmptyJ, - "Parental Control", "OFLC: " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_OFLC ); - } - if( (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_CERO ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_ESRB ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_USK ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_GEN ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_PRT ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_BBFC ] != 0) ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, warnFillJ, - "Parental Control", warnFillE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_CERO ); - this->clearParentalControl( OS_TWL_PCTL_OGN_ESRB ); - this->clearParentalControl( OS_TWL_PCTL_OGN_USK ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_GEN ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_PRT ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_BBFC ); - } - } - if( region == (METWL_MASK_REGION_EUROPE | METWL_MASK_REGION_AUSTRALIA) ) - { - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_USK ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "USK: " + warnEmptyJ, - "Parental Control", "USK: " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_USK ); - } - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_GEN ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "PEGI(General): " + warnEmptyJ, - "Parental Control", "PEGI(General): " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_GEN ); - } - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_PRT ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "PEGI(Portugal): " + warnEmptyJ, - "Parental Control", "PEGI(Portugal): " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_PRT ); - } - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_BBFC ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "PEGI and BBFC: " + warnEmptyJ, - "Parental Control", "PEGI and BBFC: " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_BBFC ); - } - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_OFLC ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "OFLC: " + warnEmptyJ, - "Parental Control", "OFLC: " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_OFLC ); - } - if( (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_CERO ] != 0) || - (this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_ESRB ] != 0) ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, warnFillJ, - "Parental Control", warnFillE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_CERO ); - this->clearParentalControl( OS_TWL_PCTL_OGN_ESRB ); - } - } - if( region == METWL_MASK_REGION_ALL ) - { - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_CERO ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "CERO: " + warnEmptyJ, - "Parental Control", "CERO: " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_CERO ); - } - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_ESRB ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "ESRB: " + warnEmptyJ, - "Parental Control", "ESRB: " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_ESRB ); - } - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_USK ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "USK: " + warnEmptyJ, - "Parental Control", "USK: " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_USK ); - } - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_GEN ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "PEGI(General): " + warnEmptyJ, - "Parental Control", "PEGI(General): " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_GEN ); - } - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_PRT ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "PEGI(Portugal): " + warnEmptyJ, - "Parental Control", "PEGI(Portugal): " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_PRT ); - } - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_PEGI_BBFC ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "PEGI and BBFC: " + warnEmptyJ, - "Parental Control", "PEGI and BBFC: " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_PEGI_BBFC ); - } - if( this->pRomHeader->s.parental_control_rating_info[ OS_TWL_PCTL_OGN_OFLC ] == 0 ) - { - this->hWarnList->Add( gcnew RCMRCError( - "ペアレンタルコントロール情報", 0x2f0, 0x2ff, "OFLC: " + warnEmptyJ, - "Parental Control", "OFLC: " + warnEmptyE, true ) ); - this->clearParentalControl( OS_TWL_PCTL_OGN_OFLC ); + case OS_TWL_PCTL_OGN_CERO: + ognArray[i] = gcnew System::String( "CERO: " ); + break; + case OS_TWL_PCTL_OGN_ESRB: + ognArray[i] = gcnew System::String( "ESRB: " ); + break; + case OS_TWL_PCTL_OGN_USK: + ognArray[i] = gcnew System::String( "USK: " ); + break; + case OS_TWL_PCTL_OGN_PEGI_GEN: + ognArray[i] = gcnew System::String( "PEGI(General): " ); + break; + case OS_TWL_PCTL_OGN_PEGI_PRT: + ognArray[i] = gcnew System::String( "PEGI(Portugal): " ); + break; + case OS_TWL_PCTL_OGN_PEGI_BBFC: + ognArray[i] = gcnew System::String( "PEGI and BBFC: " ); + break; + case OS_TWL_PCTL_OGN_OFLC: + ognArray[i] = gcnew System::String( "OFLC: " ); + break; } } - // リージョンに含まれている団体の設定が正しいかどうか - if( region == METWL_MASK_REGION_JAPAN ) + if( *(this->hArrayParentalEffect[ ogn ]) == false ) { - if( *(this->hArrayParentalEffect[ OS_TWL_PCTL_OGN_CERO ]) == false ) + this->hWarnList->Add( gcnew RCMRCError( + "ペアレンタルコントロール情報", 0x2f0, 0x2ff, ognArray[ ogn ] + warnDisableJ, + "Parental Control", ognArray[ ogn ] + warnDisableE, true ) ); + this->clearParentalControl( ogn ); + } + else + { + // 間違っていたら"未審査"が返ってくる + System::String ^str = MasterEditorTWL::transRatingToString( + ogn, true, *(this->hArrayParentalRating[ogn]), false ); + + if( *(this->hArrayParentalAlways[ogn]) == false ) { + // RPが立っていないときRPとレーティング値が競合していたらダメ + if( (str != nullptr) && str->Equals( L"未審査" ) ) + { + this->hWarnList->Add( gcnew RCMRCError( + "ペアレンタルコントロール情報", 0x2f0, 0x2ff, ognArray[ ogn ] + warnIllegalJ, + "Parental Control", ognArray[ ogn ] + warnIllegalE, true ) ); + this->clearParentalControl( ogn ); + } + } + else + { + // RPが立っていたら問答無用に警告 + this->hWarnList->Add( gcnew RCMRCError( + "ペアレンタルコントロール情報", 0x2f0, 0x2ff, ognArray[ ogn ] + warnPendingJ, + "Parental Control", ognArray[ ogn ] + warnPendingE, true ) ); + this->clearParentalControl( ogn ); } } - - return ECSrlResult::NOERROR; -} +} //mrcRating() // ペアレンタルコントロールのクリア void RCSrl::clearParentalControl( System::Byte ogn ) @@ -1316,4 +1344,4 @@ void RCSrl::clearParentalControl( System::Byte ogn ) this->hArrayParentalRating[ ogn ] = gcnew System::Byte( 0x00 ); this->hArrayParentalEffect[ ogn ] = gcnew System::Boolean( false ); this->hArrayParentalAlways[ ogn ] = gcnew System::Boolean( false ); -} \ No newline at end of file +} diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/srl.h b/build/tools/MasterEditorTWL/MasterEditorTWL/srl.h index 6b2b0f77..2eceae2a 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/srl.h +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/srl.h @@ -311,6 +311,9 @@ namespace MasterEditorTWL ECSrlResult mrcNTR( FILE *fp ); ECSrlResult mrcTWL( FILE *fp ); ECSrlResult mrcTWLParentalControl(void); + System::Boolean mrcRegion( System::UInt32 region ); // @ret リージョンが正しいかどうか + void mrcRegionOrganization( System::UInt32 region ); + void mrcRating( System::Byte ogn ); // utility void clearParentalControl( System::Byte ogn );