/*****************************************************************************
 * Copyright (c) 2014-2026 OpenRCT2 developers
 *
 * For a complete list of all authors, please refer to contributors.md
 * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
 *
 * OpenRCT2 is licensed under the GNU General Public License version 3.
 *****************************************************************************/

#pragma once

#include <cstdint>

namespace OpenRCT2
{
    enum class UnicodeChar : char32_t
    {
        // Latin alphabet
        aeUc = 0xC6,
        oStrokeUc = 0xD8,
        yAcuteUc = 0xDD,
        ae = 0xE6,
        oStroke = 0xF8,
        yAcute = 0xFD,
        aBreveUc = 0x102,
        aBreve = 0x103,
        aOgonekUc = 0x104,
        aOgonek = 0x105,
        cAcuteUc = 0x106,
        cAcute = 0x107,
        cCircumflexUc = 0x108,
        cCircumflex = 0x109,
        cCaronUc = 0x10C,
        cCaron = 0x10D,
        dCaronUc = 0x10E,
        dCaron = 0x10F,
        eOgonekUc = 0x118,
        eOgonek = 0x119,
        eCaronUc = 0x11A,
        eCaron = 0x11B,
        gCircumflexUc = 0x11C,
        gCircumflex = 0x11D,
        gBreveUc = 0x11E,
        gBreve = 0x11F,
        hCircumflexUc = 0x124,
        hCircumflex = 0x125,
        iWithDotUc = 0x130,
        iWithoutDot = 0x131,
        jCircumflexUc = 0x134,
        jCircumflex = 0x135,
        lStrokeUc = 0x141,
        lStroke = 0x142,
        nAcuteUc = 0x143,
        nAcute = 0x144,
        nCaronUc = 0x147,
        nCaron = 0x148,
        oMacron = 0x14D,
        oDoubleAcuteUc = 0x150,
        oDoubleAcute = 0x151,
        oeUc = 0x152,
        oe = 0x153,
        rCaronUc = 0x158,
        rCaron = 0x159,
        sAcuteUc = 0x15A,
        sAcute = 0x15B,
        sCircumflexUc = 0x15C,
        sCircumflex = 0x15D,
        sCedillaUc = 0x15E,
        sCedilla = 0x15F,
        sCaronUc = 0x160,
        sCaron = 0x161,
        tCaronUc = 0x164,
        tCaron = 0x165,
        uBreveUc = 0x16C,
        uBreve = 0x16D,
        uRingUc = 0x16E,
        uRing = 0x16F,
        uDoubleAcuteUc = 0x170,
        uDoubleAcute = 0x171,
        wCircumflexUc = 0x174,
        wCircumflex = 0x175,
        yCircumflexUc = 0x176,
        yCircumflex = 0x177,
        zAcuteUc = 0x179,
        zAcute = 0x17A,
        zDotUc = 0x17B,
        zDot = 0x17C,
        zCaronUc = 0x17D,
        zCaron = 0x17E,
        fWithHookUc = 0x191,
        sCommaUc = 0x218,
        sComma = 0x219,
        tCommaUc = 0x21A,
        tComma = 0x21B,
        sharpSUc = 0x1E9E,

        // Cyrillic alphabet
        cyrillicIoUc = 0x401,
        cyrillicUkrainianIeUc = 0x404,
        cyrillicDzeUc = 0x0405,
        cyrillicDottedIUc = 0x0406,
        cyrillicYiUc = 0x0407,
        cyrillicJeUc = 0x0408,
        cyrillicAUc = 0x410,
        cyrillicBeUc = 0x411,
        cyrillicVeUc = 0x412,
        cyrillicGheUc = 0x413,
        cyrillicDeUc = 0x414,
        cyrillicIeUc = 0x415,
        cyrillicZheUc = 0x416,
        cyrillicZeUc = 0x417,
        cyrillicIUc = 0x418,
        cyrillicShortIUc = 0x419,
        cyrillicKaUc = 0x41A,
        cyrillicElUc = 0x41B,
        cyrillicEmUc = 0x41C,
        cyrillicEnUc = 0x41D,
        cyrillicOUc = 0x41E,
        cyrillicPeUc = 0x41F,
        cyrillicErUc = 0x420,
        cyrillicEsUc = 0x421,
        cyrillicTeUc = 0x422,
        cyrillicUUc = 0x423,
        cyrillicEfUc = 0x424,
        cyrillicHaUc = 0x425,
        cyrillicTseUc = 0x426,
        cyrillicCheUc = 0x427,
        cyrillicShaUc = 0x428,
        cyrillicShchaUc = 0x429,
        cyrillicHardSignUc = 0x42A,
        cyrillicYeruUc = 0x42B,
        cyrillicSoftSignUc = 0x42C,
        cyrillicEUc = 0x42D,
        cyrillicYuUc = 0x42E,
        cyrillicYaUc = 0x42F,

        cyrillicA = 0x430,
        cyrillicBe = 0x431,
        cyrillicVe = 0x432,
        cyrillicGhe = 0x433,
        cyrillicDe = 0x434,
        cyrillicIe = 0x435,
        cyrillicZhe = 0x436,
        cyrillicZe = 0x437,
        cyrillicI = 0x438,
        cyrillicShortI = 0x439,
        cyrillicKa = 0x43A,
        cyrillicEl = 0x43B,
        cyrillicEm = 0x43C,
        cyrillicEn = 0x43D,
        cyrillicO = 0x43E,
        cyrillicPe = 0x43F,
        cyrillicEr = 0x440,
        cyrillicEs = 0x441,
        cyrillicTe = 0x442,
        cyrillicU = 0x443,
        cyrillicEf = 0x444,
        cyrillicHa = 0x445,
        cyrillicTse = 0x446,
        cyrillicChe = 0x447,
        cyrillicSha = 0x448,
        cyrillicShcha = 0x449,
        cyrillicHardSign = 0x44A,
        cyrillicYeru = 0x44B,
        cyrillicSoftSign = 0x44C,
        cyrillicE = 0x44D,
        cyrillicYu = 0x44E,
        cyrillicYa = 0x44F,

        cyrillicIo = 0x451,
        cyrillicUkrainianIe = 0x454,
        cyrillicDze = 0x0455,
        cyrillicDottedI = 0x0456,
        cyrillicYi = 0x0457,
        cyrillicJe = 0x0458,

        cyrillicGheUpturnUc = 0x490,
        cyrillicGheUpturn = 0x491,

        // Punctuation
        leftBrace = 0x7B,
        verticalBar = 0x7C,
        rightBrace = 0x7D,
        tilde = 0x7E,
        nonBreakingSpace = 0xA0,
        leftguillemet = 0xAB,
        rightguillemet = 0xBB,
        interpunct = 0xB7,
        multiplicationSign = 0xD7,
        enDash = 0x2013,
        emDash = 0x2014,
        singleQuoteOpen = 0x2018,
        singleQuoteEnd = 0x2019,
        singleGermanQuoteOpen = 0x201A,
        germanQuoteOpen = 0x201E,
        bullet = 0x2022,
        ellipsis = 0x2026,
        narrowNonBreakingSpace = 0x202F,
        quoteOpen = 0x201C,
        quoteClose = 0x201D,

        // Currency
        guilder = 0x192,
        euro = 0x20AC,
        won = 0x20A9,
        hryvnia = 0x20B4,
        rouble = 0x20BD,

        // Dingbats
        up = 0x25B2,
        smallUp = 0x25B4,
        right = 0x25B6,
        down = 0x25BC,
        smallDown = 0x25BE,
        left = 0x25C0,
        air = 0x2601,
        tick = 0x2713,
        dingbatMultiply = 0x2715,
        plus = 0x2795,
        minus = 0x2796,

        // Emoji
        cross = 0x274C,
        variationSelector = 0xFE0F,
        water = 0x1F30A,
        eye = 0x1F441,
        road = 0x1F6E3,
        railway = 0x1F6E4,

        // Misc
        superscriptMinusOne = 0x207B,
    };
} // namespace OpenRCT2
