mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
サルベージライブラリの年齢判定と国判定に対応
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@789 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
758c7b6702
commit
04f49ef7be
@ -23,6 +23,9 @@
|
||||
#include <nn/act/act_ResultPrivate.h>
|
||||
#include <nn/actslv/actslv_Api.h>
|
||||
#include <nn/fs/fs_ApiSysSaveData.h>
|
||||
#include <nn/cfg/CTR/cfg_ApiSys.h>
|
||||
|
||||
#include "AgeChecker.h"
|
||||
|
||||
namespace ConsoleRestore
|
||||
{
|
||||
@ -142,12 +145,42 @@ nn::Result ActCompleter::ExecImpl()
|
||||
// サルベージ終了をシステムに通知
|
||||
s_EndEvent.Signal();
|
||||
|
||||
if(nn::cfg::GetRegion() == nn::cfg::CFG_REGION_AMERICA)
|
||||
// COPPA判定とPIN判定の準備
|
||||
nn::cfg::CfgRegionCode region = nn::cfg::GetRegion();
|
||||
u8 age = nn::act::GetAgeAtSalvage();
|
||||
nn::cfg::CfgCountryCode country;
|
||||
|
||||
NN_UTIL_RETURN_IF_FAILED_2(
|
||||
nn::act::GetCountryCodeAtSalvage(reinterpret_cast<u32*>(&country)),
|
||||
nn::act::FinalizeAdmin(),
|
||||
common::FinalizeNetwork());
|
||||
|
||||
AgeChecker ageChecker;
|
||||
|
||||
if(region == nn::cfg::CFG_REGION_AMERICA)
|
||||
{
|
||||
|
||||
if(ageChecker.IsCoppaRequired(age, region, country))
|
||||
{
|
||||
// COPPA対象の年齢なら復元する
|
||||
s_ApprovalId = nn::act::GetSalvagedApprovalId();
|
||||
NN_UTIL_RETURN_IF_FAILED_2(
|
||||
SaveApprovalId(),
|
||||
nn::act::FinalizeAdmin(),
|
||||
common::FinalizeNetwork());
|
||||
}
|
||||
}
|
||||
|
||||
// PIN必須ならフラグを立てる
|
||||
if(ageChecker.IsPinRestrictionRequired(age, region, country))
|
||||
{
|
||||
// COPPA対象の年齢なら復元する
|
||||
s_ApprovalId = nn::act::GetSalvagedApprovalId();
|
||||
NN_UTIL_RETURN_IF_FAILED_2(
|
||||
SaveApprovalId(),
|
||||
nn::cfg::CTR::system::SetForceParentalControlFlag(true),
|
||||
nn::act::FinalizeAdmin(),
|
||||
common::FinalizeNetwork());
|
||||
|
||||
NN_UTIL_RETURN_IF_FAILED_2(
|
||||
nn::cfg::CTR::system::FlushConfig(),
|
||||
nn::act::FinalizeAdmin(),
|
||||
common::FinalizeNetwork());
|
||||
}
|
||||
|
||||
@ -47,7 +47,6 @@ bool AgeChecker::IsPinRestrictionRequired(u32 age, CfgRegionCode region, CfgCoun
|
||||
{
|
||||
return age < PIN_REQUIRED_AGE_IN_AUSTRALIA_AND_NEW_ZEALAND;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
return age < PIN_REQUIRED_AGE_IN_EUROPE;
|
||||
|
||||
@ -34,6 +34,7 @@ SOURCES[] =
|
||||
RegionIdModifier.cpp
|
||||
PreinstallImporter.cpp
|
||||
ActCompleter.cpp
|
||||
AgeChecker.cpp
|
||||
../common/Util.cpp
|
||||
../common/DrawSystemState.cpp
|
||||
../common/FileTransfer.cpp
|
||||
|
||||
Loading…
Reference in New Issue
Block a user