summaryrefslogtreecommitdiffstats
path: root/src/core/loader/xci.cpp
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2020-11-18 13:53:10 +0100
committerLioncash <mathew1800@gmail.com>2020-11-18 15:36:48 +0100
commit6f8a06bac58790d20dae3c1adb4de3b441f07b30 (patch)
treeef5e2942aa0aacbebb683da91ee6d4bd19ec15e9 /src/core/loader/xci.cpp
parentMerge pull request #4866 from Morph1984/mjolnir-p3-prod (diff)
downloadyuzu-6f8a06bac58790d20dae3c1adb4de3b441f07b30.tar
yuzu-6f8a06bac58790d20dae3c1adb4de3b441f07b30.tar.gz
yuzu-6f8a06bac58790d20dae3c1adb4de3b441f07b30.tar.bz2
yuzu-6f8a06bac58790d20dae3c1adb4de3b441f07b30.tar.lz
yuzu-6f8a06bac58790d20dae3c1adb4de3b441f07b30.tar.xz
yuzu-6f8a06bac58790d20dae3c1adb4de3b441f07b30.tar.zst
yuzu-6f8a06bac58790d20dae3c1adb4de3b441f07b30.zip
Diffstat (limited to 'src/core/loader/xci.cpp')
-rw-r--r--src/core/loader/xci.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/core/loader/xci.cpp b/src/core/loader/xci.cpp
index 25e83af0f..536e721fc 100644
--- a/src/core/loader/xci.cpp
+++ b/src/core/loader/xci.cpp
@@ -20,18 +20,24 @@
namespace Loader {
-AppLoader_XCI::AppLoader_XCI(FileSys::VirtualFile file)
+AppLoader_XCI::AppLoader_XCI(FileSys::VirtualFile file,
+ const Service::FileSystem::FileSystemController& fsc,
+ const FileSys::ContentProvider& content_provider)
: AppLoader(file), xci(std::make_unique<FileSys::XCI>(file)),
nca_loader(std::make_unique<AppLoader_NCA>(xci->GetProgramNCAFile())) {
- if (xci->GetStatus() != ResultStatus::Success)
+ if (xci->GetStatus() != ResultStatus::Success) {
return;
+ }
const auto control_nca = xci->GetNCAByType(FileSys::NCAContentType::Control);
- if (control_nca == nullptr || control_nca->GetStatus() != ResultStatus::Success)
+ if (control_nca == nullptr || control_nca->GetStatus() != ResultStatus::Success) {
return;
+ }
- std::tie(nacp_file, icon_file) =
- FileSys::PatchManager(xci->GetProgramTitleID()).ParseControlNCA(*control_nca);
+ std::tie(nacp_file, icon_file) = [this, &content_provider, &control_nca, &fsc] {
+ const FileSys::PatchManager pm{xci->GetProgramTitleID(), fsc, content_provider};
+ return pm.ParseControlNCA(*control_nca);
+ }();
}
AppLoader_XCI::~AppLoader_XCI() = default;