mirror of
https://github.com/SMGCommunity/Petari.git
synced 2026-11-10 17:49:24 -10:00
71 lines
2.6 KiB
C++
71 lines
2.6 KiB
C++
#pragma once
|
|
|
|
#include <revolution/types.h>
|
|
|
|
#define REGION_EU 0
|
|
#define REGION_JP 1
|
|
#define REGION_US 2
|
|
#define REGION_CN 3
|
|
#define REGION_KR 4
|
|
#define REGION_SHIFT 0x4
|
|
#define REGION_SHIFT_EU (REGION_EU << REGION_SHIFT)
|
|
#define REGION_SHIFT_JP (REGION_JP << REGION_SHIFT)
|
|
#define REGION_SHIFT_US (REGION_US << REGION_SHIFT)
|
|
#define REGION_SHIFT_CN (REGION_CN << REGION_SHIFT)
|
|
#define REGION_SHIFT_KR (REGION_KR << REGION_SHIFT)
|
|
#define REGION_MASK (0xF << REGION_SHIFT)
|
|
|
|
#define LANGUAGE_JPJAPANESE (REGION_SHIFT_JP | SC_LANG_JAPANESE)
|
|
#define LANGUAGE_USENGLISH (REGION_SHIFT_US | SC_LANG_ENGLISH)
|
|
#define LANGUAGE_USSPANISH (REGION_SHIFT_US | SC_LANG_SPANISH)
|
|
#define LANGUAGE_USFRENCH (REGION_SHIFT_US | SC_LANG_FRENCH)
|
|
#define LANGUAGE_EUENGLISH (REGION_SHIFT_EU | SC_LANG_ENGLISH)
|
|
#define LANGUAGE_EUSPANISH (REGION_SHIFT_EU | SC_LANG_SPANISH)
|
|
#define LANGUAGE_EUFRENCH (REGION_SHIFT_EU | SC_LANG_FRENCH)
|
|
#define LANGUAGE_EUGERMAN (REGION_SHIFT_EU | SC_LANG_GERMAN)
|
|
#define LANGUAGE_EUITALIAN (REGION_SHIFT_EU | SC_LANG_ITALIAN)
|
|
#define LANGUAGE_EUDUTCH (REGION_SHIFT_EU | SC_LANG_DUTCH)
|
|
#define LANGUAGE_CNSIMPCHINESE (REGION_SHIFT_CN | SC_LANG_SIMP_CHINESE)
|
|
#define LANGUAGE_KRKOREAN (REGION_SHIFT_KR | SC_LANG_KOREAN)
|
|
#define LANGUAGE_MASK (~REGION_MASK)
|
|
|
|
/// @brief A regional variant of a language.
|
|
struct Language {
|
|
/// @brief The region-language identifier.
|
|
u32 mId;
|
|
|
|
/// @brief The region-language label.
|
|
const char* mName;
|
|
};
|
|
|
|
namespace MR {
|
|
/// @brief Returns the region-language identifier based on the console's language setting.
|
|
/// @return The region-language identifier.
|
|
u32 getDecidedLanguageFromIPL();
|
|
|
|
/// @brief Returns the working region-language identifier.
|
|
/// @return The region-language identifier.
|
|
u32 getLanguage() NO_INLINE;
|
|
|
|
/// @brief Extracts the console's language setting from the working region-language identifier.
|
|
/// @return The console's language setting.
|
|
u32 getLanguageFromIPL();
|
|
|
|
/// @brief Returns the region-language label.
|
|
/// @return The pointer to the null-terminated label.
|
|
const char* getCurrentLanguagePrefix();
|
|
|
|
/// @brief Returns the region label.
|
|
/// @return The pointer to the null-terminated label.
|
|
const char* getCurrentRegionPrefix();
|
|
|
|
/// @brief Returns the number of region-language pairs.
|
|
/// @return The number of region-language pairs.
|
|
u32 getLanguageNum();
|
|
|
|
/// @brief Returns the region-language label by index.
|
|
/// @param index The position in the lookup table.
|
|
/// @return The pointer to the null-terminated label.
|
|
const char* getLanguagePrefixByIndex(u32 index);
|
|
}; // namespace MR
|