Move System Applets into a new category and deselect by default

As they are known to cause problems with Mii Maker and games like Tomodachi Life.
This commit is contained in:
zhupengfei
2020-11-28 15:39:59 +08:00
parent e238015e82
commit 2688a6ef61
4 changed files with 62 additions and 35 deletions
+5 -2
View File
@@ -84,6 +84,7 @@ bool SDMCImporter::ImportContent(const ContentSpecifier& specifier,
case ContentType::Sysdata:
return ImportSysdata(specifier.id, callback);
case ContentType::SystemTitle:
case ContentType::SystemApplet:
return ImportNandTitle(specifier, callback);
default:
UNREACHABLE();
@@ -720,9 +721,10 @@ void SDMCImporter::ListNandTitle(std::vector<ContentSpecifier>& out) const {
const auto& [name, extdata_id, encryption, seed_crypto, icon] =
LoadTitleData(ncch);
const auto type = (id >> 32) == 0x00040030 ? ContentType::SystemApplet
: ContentType::SystemTitle;
out.push_back(
{ContentType::SystemTitle, id,
FileUtil::Exists(citra_path + "content/"),
{type, id, FileUtil::Exists(citra_path + "content/"),
FileUtil::GetDirectoryTreeSize(directory + virtual_name + "/content/"),
name, extdata_id, encryption, seed_crypto, icon});
} while (false);
@@ -883,6 +885,7 @@ void SDMCImporter::DeleteContent(const ContentSpecifier& specifier) {
case ContentType::Sysdata:
return DeleteSysdata(specifier.id);
case ContentType::SystemTitle:
case ContentType::SystemApplet:
return DeleteNandTitle(specifier.id);
default:
UNREACHABLE();
+10 -6
View File
@@ -28,6 +28,7 @@ enum class ContentType {
SystemArchive,
Sysdata,
SystemTitle,
SystemApplet, // This should belong to System Title, but they cause problems so a new category.
};
/**
@@ -110,8 +111,9 @@ public:
* Blocks, but can be aborted on another thread if needed.
* @return true on success, false otherwise
*/
bool ImportContent(const ContentSpecifier& specifier,
const ProgressCallback& callback = [](std::size_t, std::size_t) {});
bool ImportContent(
const ContentSpecifier& specifier,
const ProgressCallback& callback = [](std::size_t, std::size_t) {});
/**
* Aborts current importing.
@@ -123,8 +125,9 @@ public:
* Blocks, but can be aborted on another thread.
* @return true on success, false otherwise
*/
bool DumpCXI(const ContentSpecifier& specifier, const std::string& destination,
const ProgressCallback& callback = [](std::size_t, std::size_t) {});
bool DumpCXI(
const ContentSpecifier& specifier, const std::string& destination,
const ProgressCallback& callback = [](std::size_t, std::size_t) {});
/**
* Aborts current CXI dumping.
@@ -136,8 +139,9 @@ public:
* Blocks, but can be aborted on another thread.
* @return true on success, false otherwise
*/
bool BuildCIA(const ContentSpecifier& specifier, const std::string& destination,
const ProgressCallback& callback = [](std::size_t, std::size_t) {});
bool BuildCIA(
const ContentSpecifier& specifier, const std::string& destination,
const ProgressCallback& callback = [](std::size_t, std::size_t) {});
/**
* Aborts current CIA building