summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bunnei2018-09-20 10:13:23 -0400
committerGravatar GitHub2018-09-20 10:13:23 -0400
commit0931a711de3518fd417b1ea48ae6cd013d113192 (patch)
treea7f93e360e28338480caaaa72ebd890d6738dd44
parentMerge pull request #1361 from lioncash/nax (diff)
parentcontrol_metadata: Remove unnecessary else within GetLanguageEntry() (diff)
downloadyuzu-0931a711de3518fd417b1ea48ae6cd013d113192.tar.gz
yuzu-0931a711de3518fd417b1ea48ae6cd013d113192.tar.xz
yuzu-0931a711de3518fd417b1ea48ae6cd013d113192.zip
Merge pull request #1363 from lioncash/control
control_metadata: Move language name array definition to the cpp file
-rw-r--r--src/core/file_sys/control_metadata.cpp24
-rw-r--r--src/core/file_sys/control_metadata.h7
2 files changed, 17 insertions, 14 deletions
diff --git a/src/core/file_sys/control_metadata.cpp b/src/core/file_sys/control_metadata.cpp
index e76bf77bf..f11b91399 100644
--- a/src/core/file_sys/control_metadata.cpp
+++ b/src/core/file_sys/control_metadata.cpp
@@ -8,6 +8,14 @@
8 8
9namespace FileSys { 9namespace FileSys {
10 10
11const std::array<const char*, 15> LANGUAGE_NAMES = {
12 "AmericanEnglish", "BritishEnglish", "Japanese",
13 "French", "German", "LatinAmericanSpanish",
14 "Spanish", "Italian", "Dutch",
15 "CanadianFrench", "Portugese", "Russian",
16 "Korean", "Taiwanese", "Chinese",
17};
18
11std::string LanguageEntry::GetApplicationName() const { 19std::string LanguageEntry::GetApplicationName() const {
12 return Common::StringFromFixedZeroTerminatedBuffer(application_name.data(), 0x200); 20 return Common::StringFromFixedZeroTerminatedBuffer(application_name.data(), 0x200);
13} 21}
@@ -23,15 +31,15 @@ NACP::NACP(VirtualFile file) : raw(std::make_unique<RawNACP>()) {
23const LanguageEntry& NACP::GetLanguageEntry(Language language) const { 31const LanguageEntry& NACP::GetLanguageEntry(Language language) const {
24 if (language != Language::Default) { 32 if (language != Language::Default) {
25 return raw->language_entries.at(static_cast<u8>(language)); 33 return raw->language_entries.at(static_cast<u8>(language));
26 } else {
27 for (const auto& language_entry : raw->language_entries) {
28 if (!language_entry.GetApplicationName().empty())
29 return language_entry;
30 }
31
32 // Fallback to English
33 return GetLanguageEntry(Language::AmericanEnglish);
34 } 34 }
35
36 for (const auto& language_entry : raw->language_entries) {
37 if (!language_entry.GetApplicationName().empty())
38 return language_entry;
39 }
40
41 // Fallback to English
42 return GetLanguageEntry(Language::AmericanEnglish);
35} 43}
36 44
37std::string NACP::GetApplicationName(Language language) const { 45std::string NACP::GetApplicationName(Language language) const {
diff --git a/src/core/file_sys/control_metadata.h b/src/core/file_sys/control_metadata.h
index 8a510bf46..319bae821 100644
--- a/src/core/file_sys/control_metadata.h
+++ b/src/core/file_sys/control_metadata.h
@@ -66,12 +66,7 @@ enum class Language : u8 {
66 Default = 255, 66 Default = 255,
67}; 67};
68 68
69static constexpr std::array<const char*, 15> LANGUAGE_NAMES = { 69extern const std::array<const char*, 15> LANGUAGE_NAMES;
70 "AmericanEnglish", "BritishEnglish", "Japanese",
71 "French", "German", "LatinAmericanSpanish",
72 "Spanish", "Italian", "Dutch",
73 "CanadianFrench", "Portugese", "Russian",
74 "Korean", "Taiwanese", "Chinese"};
75 70
76// A class representing the format used by NX metadata files, typically named Control.nacp. 71// A class representing the format used by NX metadata files, typically named Control.nacp.
77// These store application name, dev name, title id, and other miscellaneous data. 72// These store application name, dev name, title id, and other miscellaneous data.