Просмотр исходного кода

Merge pull request #777 from lioncash/lang

set: Amend return value of GetAvailableLanguageCodes()
bunnei 8 лет назад
Родитель
Сommit
a85366a40c
2 измененных файлов с 31 добавлено и 23 удалено
  1. 30 23
      src/core/hle/service/set/set.cpp
  2. 1 0
      src/core/hle/service/set/set.h

+ 30 - 23
src/core/hle/service/set/set.cpp

@@ -11,44 +11,51 @@
 
 namespace Service::Set {
 
+constexpr std::array<LanguageCode, 17> available_language_codes = {{
+    LanguageCode::JA,
+    LanguageCode::EN_US,
+    LanguageCode::FR,
+    LanguageCode::DE,
+    LanguageCode::IT,
+    LanguageCode::ES,
+    LanguageCode::ZH_CN,
+    LanguageCode::KO,
+    LanguageCode::NL,
+    LanguageCode::PT,
+    LanguageCode::RU,
+    LanguageCode::ZH_TW,
+    LanguageCode::EN_GB,
+    LanguageCode::FR_CA,
+    LanguageCode::ES_419,
+    LanguageCode::ZH_HANS,
+    LanguageCode::ZH_HANT,
+}};
+
 void SET::GetAvailableLanguageCodes(Kernel::HLERequestContext& ctx) {
-    static constexpr std::array<LanguageCode, 17> available_language_codes = {{
-        LanguageCode::JA,
-        LanguageCode::EN_US,
-        LanguageCode::FR,
-        LanguageCode::DE,
-        LanguageCode::IT,
-        LanguageCode::ES,
-        LanguageCode::ZH_CN,
-        LanguageCode::KO,
-        LanguageCode::NL,
-        LanguageCode::PT,
-        LanguageCode::RU,
-        LanguageCode::ZH_TW,
-        LanguageCode::EN_GB,
-        LanguageCode::FR_CA,
-        LanguageCode::ES_419,
-        LanguageCode::ZH_HANS,
-        LanguageCode::ZH_HANT,
-    }};
     ctx.WriteBuffer(available_language_codes);
 
-    IPC::ResponseBuilder rb{ctx, 4};
+    IPC::ResponseBuilder rb{ctx, 3};
     rb.Push(RESULT_SUCCESS);
-    rb.Push(static_cast<u64>(available_language_codes.size()));
+    rb.Push(static_cast<u32>(available_language_codes.size()));
 
     LOG_DEBUG(Service_SET, "called");
 }
 
+void SET::GetAvailableLanguageCodeCount(Kernel::HLERequestContext& ctx) {
+    IPC::ResponseBuilder rb{ctx, 3};
+    rb.Push(RESULT_SUCCESS);
+    rb.Push(static_cast<u32>(available_language_codes.size()));
+}
+
 SET::SET() : ServiceFramework("set") {
     static const FunctionInfo functions[] = {
         {0, nullptr, "GetLanguageCode"},
         {1, &SET::GetAvailableLanguageCodes, "GetAvailableLanguageCodes"},
         {2, nullptr, "MakeLanguageCode"},
-        {3, nullptr, "GetAvailableLanguageCodeCount"},
+        {3, &SET::GetAvailableLanguageCodeCount, "GetAvailableLanguageCodeCount"},
         {4, nullptr, "GetRegionCode"},
         {5, &SET::GetAvailableLanguageCodes, "GetAvailableLanguageCodes2"},
-        {6, nullptr, "GetAvailableLanguageCodeCount2"},
+        {6, &SET::GetAvailableLanguageCodeCount, "GetAvailableLanguageCodeCount2"},
         {7, nullptr, "GetKeyCodeMap"},
         {8, nullptr, "GetQuestFlag"},
     };

+ 1 - 0
src/core/hle/service/set/set.h

@@ -36,6 +36,7 @@ public:
 
 private:
     void GetAvailableLanguageCodes(Kernel::HLERequestContext& ctx);
+    void GetAvailableLanguageCodeCount(Kernel::HLERequestContext& ctx);
 };
 
 } // namespace Service::Set