summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys/submission_package.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/file_sys/submission_package.cpp')
-rw-r--r--src/core/file_sys/submission_package.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/core/file_sys/submission_package.cpp b/src/core/file_sys/submission_package.cpp
index bde879861..11264878d 100644
--- a/src/core/file_sys/submission_package.cpp
+++ b/src/core/file_sys/submission_package.cpp
@@ -2,9 +2,15 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <algorithm>
+#include <cstring>
+#include <string_view>
+
#include <fmt/ostream.h>
-#include "common/assert.h"
+
#include "common/hex_util.h"
+#include "common/logging/log.h"
+#include "core/crypto/key_manager.h"
#include "core/file_sys/content_archive.h"
#include "core/file_sys/nca_metadata.h"
#include "core/file_sys/partition_filesystem.h"
@@ -13,8 +19,8 @@
namespace FileSys {
NSP::NSP(VirtualFile file_)
- : file(std::move(file_)),
- pfs(std::make_shared<PartitionFilesystem>(file)), status{Loader::ResultStatus::Success} {
+ : file(std::move(file_)), status{Loader::ResultStatus::Success},
+ pfs(std::make_shared<PartitionFilesystem>(file)) {
if (pfs->GetStatus() != Loader::ResultStatus::Success) {
status = pfs->GetStatus();
return;
@@ -60,8 +66,11 @@ NSP::NSP(VirtualFile file_)
for (const auto& outer_file : files) {
if (outer_file->GetName().substr(outer_file->GetName().size() - 9) == ".cnmt.nca") {
const auto nca = std::make_shared<NCA>(outer_file);
- if (nca->GetStatus() != Loader::ResultStatus::Success)
+ if (nca->GetStatus() != Loader::ResultStatus::Success) {
+ program_status[nca->GetTitleId()] = nca->GetStatus();
continue;
+ }
+
const auto section0 = nca->GetSubdirectories()[0];
for (const auto& inner_file : section0->GetFiles()) {