diff options
author | bunnei <bunneidev@gmail.com> | 2020-08-25 16:07:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-25 16:07:33 +0200 |
commit | dd828607e0d8c1f25fe024bab77dafa9c9a4d62c (patch) | |
tree | d09a4074ad088a7083ebc81b55fdb0efd44349a4 /src/core/file_sys | |
parent | Merge pull request #4548 from lioncash/color (diff) | |
parent | registered_cache: Make use of ends_with for string suffix checking (diff) | |
download | yuzu-dd828607e0d8c1f25fe024bab77dafa9c9a4d62c.tar yuzu-dd828607e0d8c1f25fe024bab77dafa9c9a4d62c.tar.gz yuzu-dd828607e0d8c1f25fe024bab77dafa9c9a4d62c.tar.bz2 yuzu-dd828607e0d8c1f25fe024bab77dafa9c9a4d62c.tar.lz yuzu-dd828607e0d8c1f25fe024bab77dafa9c9a4d62c.tar.xz yuzu-dd828607e0d8c1f25fe024bab77dafa9c9a4d62c.tar.zst yuzu-dd828607e0d8c1f25fe024bab77dafa9c9a4d62c.zip |
Diffstat (limited to 'src/core/file_sys')
-rw-r--r-- | src/core/file_sys/registered_cache.cpp | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/src/core/file_sys/registered_cache.cpp b/src/core/file_sys/registered_cache.cpp index e42b677f7..da01002d5 100644 --- a/src/core/file_sys/registered_cache.cpp +++ b/src/core/file_sys/registered_cache.cpp @@ -257,8 +257,7 @@ std::vector<NcaID> PlaceholderCache::List() const { for (const auto& sdir : dir->GetSubdirectories()) { for (const auto& file : sdir->GetFiles()) { const auto name = file->GetName(); - if (name.length() == 36 && name[32] == '.' && name[33] == 'n' && name[34] == 'c' && - name[35] == 'a') { + if (name.length() == 36 && name.ends_with(".nca")) { out.push_back(Common::HexStringToArray<0x10>(name.substr(0, 32))); } } @@ -621,25 +620,25 @@ InstallResult RegisteredCache::InstallEntry(const NSP& nsp, bool overwrite_if_ex InstallResult RegisteredCache::InstallEntry(const NCA& nca, TitleType type, bool overwrite_if_exists, const VfsCopyFunction& copy) { - CNMTHeader header{ - nca.GetTitleId(), // Title ID - 0, // Ignore/Default title version - type, // Type - {}, // Padding - 0x10, // Default table offset - 1, // 1 Content Entry - 0, // No Meta Entries - {}, // Padding - {}, // Reserved 1 - 0, // Is committed - 0, // Required download system version - {}, // Reserved 2 + const CNMTHeader header{ + .title_id = nca.GetTitleId(), + .title_version = 0, + .type = type, + .reserved = {}, + .table_offset = 0x10, + .number_content_entries = 1, + .number_meta_entries = 0, + .attributes = 0, + .reserved2 = {}, + .is_committed = 0, + .required_download_system_version = 0, + .reserved3 = {}, }; - OptionalHeader opt_header{0, 0}; + const OptionalHeader opt_header{0, 0}; ContentRecord c_rec{{}, {}, {}, GetCRTypeFromNCAType(nca.GetType()), {}}; const auto& data = nca.GetBaseFile()->ReadBytes(0x100000); mbedtls_sha256_ret(data.data(), data.size(), c_rec.hash.data(), 0); - memcpy(&c_rec.nca_id, &c_rec.hash, 16); + std::memcpy(&c_rec.nca_id, &c_rec.hash, 16); const CNMT new_cnmt(header, opt_header, {c_rec}, {}); if (!RawInstallYuzuMeta(new_cnmt)) { return InstallResult::ErrorMetaFailed; |