#pragma once
#include "helpers.hpp"

// Used for CFG::SecureInfoGetRegion
enum class Regions : u32 {
	Japan = 0,
	USA = 1,
	Europe = 2,
	Australia = 3,
	China = 4,
	Korea = 5,
	Taiwan = 6
};

// Used for the language field in the NAND user data
enum class LanguageCodes : u32 {
	JP = 0,
	EN = 1,
	FR = 2,
	DE = 3,
	IT = 4,
	ES = 5,
	ZH = 6,
	KO = 7,
	NL = 8,
	PT = 9,
	RU = 10,
	TW = 11,

	Japanese = JP,
	English = EN,
	French = FR,
	German = DE,
	Italian = IT,
	Spanish = ES,
	Chinese = ZH,
	Korean = KO,
	Dutch = NL,
	Portuguese = PT,
	Russian = RU,
	Taiwanese = TW
};

enum class CountryCodes : u32 {
    JP = 1,
    AI = 8,
    AG = 9,
    AR = 10,
    AW = 11,
    BS = 12,
    BB = 13,
    BZ = 14,
    BO = 15,
    BR = 16,
    VG = 17,
    CA = 18,
    KY = 19,
    CL = 20,
    CO = 21,
    CR = 22,
    DM = 23,
    DO = 24,
    EC = 25,
    SV = 26,
    GF = 27,
    GD = 28,
    GP = 29,
    GT = 30,
    GY = 31,
    HT = 32,
    HN = 33,
    JM = 34,
    MQ = 35,
    MX = 36,
    MS = 37,
    AN = 38,
    NI = 39,
    PA = 40,
    PY = 41,
    PE = 42,
    KN = 43,
    LC = 44,
    VC = 45,
    SR = 46,
    TT = 47,
    TC = 48,
    US = 49,
    UY = 50,
    VI = 51,
    VE = 52,
    AL = 64,
    AU = 65,
    AT = 66,
    BE = 67,
    BA = 68,
    BW = 69,
    BG = 70,
    HR = 71,
    CY = 72,
    CZ = 73,
    DK = 74,
    EE = 75,
    FI = 76,
    FR = 77,
    DE = 78,
    GR = 79,
    HU = 80,
    IS = 81,
    IE = 82,
    IT = 83,
    LV = 84,
    LS = 85,
    LI = 86,
    LT = 87,
    LU = 88,
    MK = 89,
    MT = 90,
    ME = 91,
    MZ = 92,
    NA = 93,
    NL = 94,
    NZ = 95,
    NO = 96,
    PL = 97,
    PT = 98,
    RO = 99,
    RU = 100,
    RS = 101,
    SK = 102,
    SI = 103,
    ZA = 104,
    ES = 105,
    SZ = 106,
    SE = 107,
    CH = 108,
    TR = 109,
    GB = 110,
    ZM = 111,
    ZW = 112,
    AZ = 113,
    MR = 114,
    ML = 115,
    NE = 116,
    TD = 117,
    SD = 118,
    ER = 119,
    DJ = 120,
    SO = 121,
    AD = 122,
    GI = 123,
    GG = 124,
    IM = 125,
    JE = 126,
    MC = 127,
    TW = 128,
    KR = 136,
    HK = 144,
    MO = 145,
    ID = 152,
    SG = 153,
    TH = 154,
    PH = 155,
    MY = 156,
    CN = 160,
    AE = 168,
    IND = 169, // We can't use the 2-letter country code for India because the Windows SDK does #define IN...
    EG = 170,
    OM = 171,
    QA = 172,
    KW = 173,
    SA = 174,
    SY = 175,
    BH = 176,
    JO = 177,
    SM = 184,
    VA = 185,
    BM = 186,
};