diff --git a/src/openrct2/core/UnicodeChar.h b/src/openrct2/core/UnicodeChar.h new file mode 100644 index 0000000000..eda8bf6d9c --- /dev/null +++ b/src/openrct2/core/UnicodeChar.h @@ -0,0 +1,230 @@ +/***************************************************************************** + * Copyright (c) 2014-2024 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 + +namespace UnicodeChar +{ + // Latin alphabet + constexpr char32_t j = 0x6A; + constexpr char32_t l = 0x6C; + constexpr char32_t ae_uc = 0xC6; + constexpr char32_t o_stroke_uc = 0xD8; + constexpr char32_t y_acute_uc = 0xDD; + constexpr char32_t ae = 0xE6; + constexpr char32_t o_stroke = 0xF8; + constexpr char32_t y_acute = 0xFD; + constexpr char32_t a_breve_uc = 0x102; + constexpr char32_t a_breve = 0x103; + constexpr char32_t a_ogonek_uc = 0x104; + constexpr char32_t a_ogonek = 0x105; + constexpr char32_t c_acute_uc = 0x106; + constexpr char32_t c_acute = 0x107; + constexpr char32_t c_circumflex_uc = 0x108; + constexpr char32_t c_circumflex = 0x109; + constexpr char32_t c_caron_uc = 0x10C; + constexpr char32_t c_caron = 0x10D; + constexpr char32_t d_caron_uc = 0x10E; + constexpr char32_t d_caron = 0x10F; + constexpr char32_t e_ogonek_uc = 0x118; + constexpr char32_t e_ogonek = 0x119; + constexpr char32_t e_caron_uc = 0x11A; + constexpr char32_t e_caron = 0x11B; + constexpr char32_t g_circumflex_uc = 0x11C; + constexpr char32_t g_circumflex = 0x11D; + constexpr char32_t g_breve_uc = 0x11E; + constexpr char32_t g_breve = 0x11F; + constexpr char32_t h_circumflex_uc = 0x124; + constexpr char32_t h_circumflex = 0x125; + constexpr char32_t i_with_dot_uc = 0x130; + constexpr char32_t i_without_dot = 0x131; + constexpr char32_t j_circumflex_uc = 0x134; + constexpr char32_t j_circumflex = 0x135; + constexpr char32_t l_stroke_uc = 0x141; + constexpr char32_t l_stroke = 0x142; + constexpr char32_t n_acute_uc = 0x143; + constexpr char32_t n_acute = 0x144; + constexpr char32_t n_caron_uc = 0x147; + constexpr char32_t n_caron = 0x148; + constexpr char32_t o_macron = 0x14D; + constexpr char32_t o_double_acute_uc = 0x150; + constexpr char32_t o_double_acute = 0x151; + constexpr char32_t oe_uc = 0x152; + constexpr char32_t oe = 0x153; + constexpr char32_t r_caron_uc = 0x158; + constexpr char32_t r_caron = 0x159; + constexpr char32_t s_acute_uc = 0x15A; + constexpr char32_t s_acute = 0x15B; + constexpr char32_t s_circumflex_uc = 0x15C; + constexpr char32_t s_circumflex = 0x15D; + constexpr char32_t s_cedilla_uc = 0x15E; + constexpr char32_t s_cedilla = 0x15F; + constexpr char32_t s_caron_uc = 0x160; + constexpr char32_t s_caron = 0x161; + constexpr char32_t t_caron_uc = 0x164; + constexpr char32_t t_caron = 0x165; + constexpr char32_t u_breve_uc = 0x16C; + constexpr char32_t u_breve = 0x16D; + constexpr char32_t u_ring_uc = 0x16E; + constexpr char32_t u_ring = 0x16F; + constexpr char32_t u_double_acute_uc = 0x170; + constexpr char32_t u_double_acute = 0x171; + constexpr char32_t w_circumflex_uc = 0x174; + constexpr char32_t w_circumflex = 0x175; + constexpr char32_t y_circumflex_uc = 0x176; + constexpr char32_t y_circumflex = 0x177; + constexpr char32_t z_acute_uc = 0x179; + constexpr char32_t z_acute = 0x17A; + constexpr char32_t z_dot_uc = 0x17B; + constexpr char32_t z_dot = 0x17C; + constexpr char32_t z_caron_uc = 0x17D; + constexpr char32_t z_caron = 0x17E; + constexpr char32_t f_with_hook_uc = 0x191; + constexpr char32_t s_comma_uc = 0x218; + constexpr char32_t s_comma = 0x219; + constexpr char32_t t_comma_uc = 0x21A; + constexpr char32_t t_comma = 0x21B; + constexpr char32_t sharp_s_uc = 0x1E9E; + + // Cyrillic alphabet + constexpr char32_t cyrillic_io_uc = 0x401; + constexpr char32_t cyrillic_ukrainian_ie_uc = 0x404; + constexpr char32_t cyrillic_dze_uc = 0x0405; + constexpr char32_t cyrillic_dotted_i_uc = 0x0406; + constexpr char32_t cyrillic_yi_uc = 0x0407; + constexpr char32_t cyrillic_je_uc = 0x0408; + constexpr char32_t cyrillic_a_uc = 0x410; + constexpr char32_t cyrillic_be_uc = 0x411; + constexpr char32_t cyrillic_ve_uc = 0x412; + constexpr char32_t cyrillic_ghe_uc = 0x413; + constexpr char32_t cyrillic_de_uc = 0x414; + constexpr char32_t cyrillic_ie_uc = 0x415; + constexpr char32_t cyrillic_zhe_uc = 0x416; + constexpr char32_t cyrillic_ze_uc = 0x417; + constexpr char32_t cyrillic_i_uc = 0x418; + constexpr char32_t cyrillic_short_i_uc = 0x419; + constexpr char32_t cyrillic_ka_uc = 0x41A; + constexpr char32_t cyrillic_el_uc = 0x41B; + constexpr char32_t cyrillic_em_uc = 0x41C; + constexpr char32_t cyrillic_en_uc = 0x41D; + constexpr char32_t cyrillic_o_uc = 0x41E; + constexpr char32_t cyrillic_pe_uc = 0x41F; + constexpr char32_t cyrillic_er_uc = 0x420; + constexpr char32_t cyrillic_es_uc = 0x421; + constexpr char32_t cyrillic_te_uc = 0x422; + constexpr char32_t cyrillic_u_uc = 0x423; + constexpr char32_t cyrillic_ef_uc = 0x424; + constexpr char32_t cyrillic_ha_uc = 0x425; + constexpr char32_t cyrillic_tse_uc = 0x426; + constexpr char32_t cyrillic_che_uc = 0x427; + constexpr char32_t cyrillic_sha_uc = 0x428; + constexpr char32_t cyrillic_shcha_uc = 0x429; + constexpr char32_t cyrillic_hard_sign_uc = 0x42A; + constexpr char32_t cyrillic_yeru_uc = 0x42B; + constexpr char32_t cyrillic_soft_sign_uc = 0x42C; + constexpr char32_t cyrillic_e_uc = 0x42D; + constexpr char32_t cyrillic_yu_uc = 0x42E; + constexpr char32_t cyrillic_ya_uc = 0x42F; + + constexpr char32_t cyrillic_a = 0x430; + constexpr char32_t cyrillic_be = 0x431; + constexpr char32_t cyrillic_ve = 0x432; + constexpr char32_t cyrillic_ghe = 0x433; + constexpr char32_t cyrillic_de = 0x434; + constexpr char32_t cyrillic_ie = 0x435; + constexpr char32_t cyrillic_zhe = 0x436; + constexpr char32_t cyrillic_ze = 0x437; + constexpr char32_t cyrillic_i = 0x438; + constexpr char32_t cyrillic_short_i = 0x439; + constexpr char32_t cyrillic_ka = 0x43A; + constexpr char32_t cyrillic_el = 0x43B; + constexpr char32_t cyrillic_em = 0x43C; + constexpr char32_t cyrillic_en = 0x43D; + constexpr char32_t cyrillic_o = 0x43E; + constexpr char32_t cyrillic_pe = 0x43F; + constexpr char32_t cyrillic_er = 0x440; + constexpr char32_t cyrillic_es = 0x441; + constexpr char32_t cyrillic_te = 0x442; + constexpr char32_t cyrillic_u = 0x443; + constexpr char32_t cyrillic_ef = 0x444; + constexpr char32_t cyrillic_ha = 0x445; + constexpr char32_t cyrillic_tse = 0x446; + constexpr char32_t cyrillic_che = 0x447; + constexpr char32_t cyrillic_sha = 0x448; + constexpr char32_t cyrillic_shcha = 0x449; + constexpr char32_t cyrillic_hard_sign = 0x44A; + constexpr char32_t cyrillic_yeru = 0x44B; + constexpr char32_t cyrillic_soft_sign = 0x44C; + constexpr char32_t cyrillic_e = 0x44D; + constexpr char32_t cyrillic_yu = 0x44E; + constexpr char32_t cyrillic_ya = 0x44F; + + constexpr char32_t cyrillic_io = 0x451; + constexpr char32_t cyrillic_ukrainian_ie = 0x454; + constexpr char32_t cyrillic_dze = 0x0455; + constexpr char32_t cyrillic_dotted_i = 0x0456; + constexpr char32_t cyrillic_yi = 0x0457; + constexpr char32_t cyrillic_je = 0x0458; + + constexpr char32_t cyrillic_ghe_upturn_uc = 0x490; + constexpr char32_t cyrillic_ghe_upturn = 0x491; + + // Punctuation + constexpr char32_t left_brace = 0x7B; + constexpr char32_t vertical_bar = 0x7C; + constexpr char32_t right_brace = 0x7D; + constexpr char32_t tilde = 0x7E; + constexpr char32_t non_breaking_space = 0xA0; + constexpr char32_t leftguillemet = 0xAB; + constexpr char32_t rightguillemet = 0xBB; + constexpr char32_t interpunct = 0xB7; + constexpr char32_t multiplication_sign = 0xD7; + constexpr char32_t en_dash = 0x2013; + constexpr char32_t em_dash = 0x2014; + constexpr char32_t single_quote_open = 0x2018; + constexpr char32_t single_quote_end = 0x2019; + constexpr char32_t single_german_quote_open = 0x201A; + constexpr char32_t german_quote_open = 0x201E; + constexpr char32_t bullet = 0x2022; + constexpr char32_t ellipsis = 0x2026; + constexpr char32_t narrow_non_breaking_space = 0x202F; + constexpr char32_t quote_open = 0x201C; + constexpr char32_t quote_close = 0x201D; + + // Currency + constexpr char32_t guilder = 0x192; + constexpr char32_t euro = 0x20AC; + constexpr char32_t rouble = 0x20BD; + + // Dingbats + constexpr char32_t up = 0x25B2; + constexpr char32_t small_up = 0x25B4; + constexpr char32_t right = 0x25B6; + constexpr char32_t down = 0x25BC; + constexpr char32_t small_down = 0x25BE; + constexpr char32_t left = 0x25C0; + constexpr char32_t air = 0x2601; + constexpr char32_t tick = 0x2713; + constexpr char32_t plus = 0x2795; + constexpr char32_t minus = 0x2796; + + // Emoji + constexpr char32_t cross = 0x274C; + constexpr char32_t variation_selector = 0xFE0F; + constexpr char32_t water = 0x1F30A; + constexpr char32_t eye = 0x1F441; + constexpr char32_t road = 0x1F6E3; + constexpr char32_t railway = 0x1F6E4; + + // Misc + constexpr char32_t superscript_minus_one = 0x207B; + +}; // namespace UnicodeChar diff --git a/src/openrct2/drawing/Drawing.String.cpp b/src/openrct2/drawing/Drawing.String.cpp index 3fb1cc6284..ceb37d1bb6 100644 --- a/src/openrct2/drawing/Drawing.String.cpp +++ b/src/openrct2/drawing/Drawing.String.cpp @@ -11,6 +11,7 @@ #include "../config/Config.h" #include "../core/String.hpp" #include "../core/UTF8.h" +#include "../core/UnicodeChar.h" #include "../drawing/IDrawingContext.h" #include "../drawing/IDrawingEngine.h" #include "../drawing/Text.h" diff --git a/src/openrct2/drawing/Font.cpp b/src/openrct2/drawing/Font.cpp index c69ffd24a9..0e4e00ffd4 100644 --- a/src/openrct2/drawing/Font.cpp +++ b/src/openrct2/drawing/Font.cpp @@ -11,8 +11,9 @@ #include "../Diagnostic.h" #include "../core/UTF8.h" -#include "../localisation/FormatCodes.h" +#include "../core/UnicodeChar.h" #include "../localisation/LocalisationService.h" +#include "../rct12/CSChar.h" #include "../sprites.h" #include "../util/Util.h" #include "Drawing.h" diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 01194dd7ca..721609f1e9 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -227,6 +227,7 @@ + @@ -387,6 +388,7 @@ + diff --git a/src/openrct2/localisation/FormatCodes.h b/src/openrct2/localisation/FormatCodes.h index 57e8842d74..d8df550f49 100644 --- a/src/openrct2/localisation/FormatCodes.h +++ b/src/openrct2/localisation/FormatCodes.h @@ -9,7 +9,6 @@ #pragma once -#include #include enum class FormatToken @@ -81,264 +80,3 @@ bool FormatTokenTakesArgument(FormatToken token); bool FormatTokenIsColour(FormatToken token); size_t FormatTokenGetTextColourIndex(FormatToken token); FormatToken FormatTokenFromTextColour(size_t textColour); - -namespace CSChar -{ - constexpr char32_t quote_close = 0x22; - - constexpr char32_t a_ogonek_uc = 0x9F; - constexpr char32_t up = 0xA0; - - constexpr char32_t c_acute_uc = 0xA2; - constexpr char32_t e_ogonek_uc = 0xA6; - constexpr char32_t l_stroke_uc = 0xA7; - - constexpr char32_t down = 0xAA; - constexpr char32_t tick = 0xAC; - constexpr char32_t cross = 0xAD; - constexpr char32_t right = 0xAF; - constexpr char32_t railway = 0xB1; - constexpr char32_t quote_open = 0xB4; - constexpr char32_t euro = 0xB5; - constexpr char32_t road = 0xB6; - constexpr char32_t air = 0xB7; - constexpr char32_t water = 0xB8; - constexpr char32_t superscript_minus_one = 0xB9; - constexpr char32_t bullet = 0xBA; - constexpr char32_t small_up = 0xBC; - constexpr char32_t small_down = 0xBD; - constexpr char32_t left = 0xBE; - - constexpr char32_t n_acute_uc = 0xC6; - constexpr char32_t s_acute_uc = 0xD0; - constexpr char32_t z_acute_uc = 0xD7; - constexpr char32_t z_dot_uc = 0xD8; - constexpr char32_t a_ogonek = 0xDD; - constexpr char32_t c_acute = 0xDE; - constexpr char32_t e_ogonek = 0xE6; - constexpr char32_t n_acute = 0xF0; - constexpr char32_t o_circumflex = 0xF4; - constexpr char32_t l_stroke = 0xF7; - constexpr char32_t s_acute = 0xF8; - constexpr char32_t z_acute = 0xFE; - - constexpr char32_t z_dot = 0xFD; -} // namespace CSChar - -namespace UnicodeChar -{ - // Latin alphabet - constexpr char32_t j = 0x6A; - constexpr char32_t l = 0x6C; - constexpr char32_t ae_uc = 0xC6; - constexpr char32_t o_stroke_uc = 0xD8; - constexpr char32_t y_acute_uc = 0xDD; - constexpr char32_t ae = 0xE6; - constexpr char32_t o_stroke = 0xF8; - constexpr char32_t y_acute = 0xFD; - constexpr char32_t a_breve_uc = 0x102; - constexpr char32_t a_breve = 0x103; - constexpr char32_t a_ogonek_uc = 0x104; - constexpr char32_t a_ogonek = 0x105; - constexpr char32_t c_acute_uc = 0x106; - constexpr char32_t c_acute = 0x107; - constexpr char32_t c_circumflex_uc = 0x108; - constexpr char32_t c_circumflex = 0x109; - constexpr char32_t c_caron_uc = 0x10C; - constexpr char32_t c_caron = 0x10D; - constexpr char32_t d_caron_uc = 0x10E; - constexpr char32_t d_caron = 0x10F; - constexpr char32_t e_ogonek_uc = 0x118; - constexpr char32_t e_ogonek = 0x119; - constexpr char32_t e_caron_uc = 0x11A; - constexpr char32_t e_caron = 0x11B; - constexpr char32_t g_circumflex_uc = 0x11C; - constexpr char32_t g_circumflex = 0x11D; - constexpr char32_t g_breve_uc = 0x11E; - constexpr char32_t g_breve = 0x11F; - constexpr char32_t h_circumflex_uc = 0x124; - constexpr char32_t h_circumflex = 0x125; - constexpr char32_t i_with_dot_uc = 0x130; - constexpr char32_t i_without_dot = 0x131; - constexpr char32_t j_circumflex_uc = 0x134; - constexpr char32_t j_circumflex = 0x135; - constexpr char32_t l_stroke_uc = 0x141; - constexpr char32_t l_stroke = 0x142; - constexpr char32_t n_acute_uc = 0x143; - constexpr char32_t n_acute = 0x144; - constexpr char32_t n_caron_uc = 0x147; - constexpr char32_t n_caron = 0x148; - constexpr char32_t o_macron = 0x14D; - constexpr char32_t o_double_acute_uc = 0x150; - constexpr char32_t o_double_acute = 0x151; - constexpr char32_t oe_uc = 0x152; - constexpr char32_t oe = 0x153; - constexpr char32_t r_caron_uc = 0x158; - constexpr char32_t r_caron = 0x159; - constexpr char32_t s_acute_uc = 0x15A; - constexpr char32_t s_acute = 0x15B; - constexpr char32_t s_circumflex_uc = 0x15C; - constexpr char32_t s_circumflex = 0x15D; - constexpr char32_t s_cedilla_uc = 0x15E; - constexpr char32_t s_cedilla = 0x15F; - constexpr char32_t s_caron_uc = 0x160; - constexpr char32_t s_caron = 0x161; - constexpr char32_t t_caron_uc = 0x164; - constexpr char32_t t_caron = 0x165; - constexpr char32_t u_breve_uc = 0x16C; - constexpr char32_t u_breve = 0x16D; - constexpr char32_t u_ring_uc = 0x16E; - constexpr char32_t u_ring = 0x16F; - constexpr char32_t u_double_acute_uc = 0x170; - constexpr char32_t u_double_acute = 0x171; - constexpr char32_t w_circumflex_uc = 0x174; - constexpr char32_t w_circumflex = 0x175; - constexpr char32_t y_circumflex_uc = 0x176; - constexpr char32_t y_circumflex = 0x177; - constexpr char32_t z_acute_uc = 0x179; - constexpr char32_t z_acute = 0x17A; - constexpr char32_t z_dot_uc = 0x17B; - constexpr char32_t z_dot = 0x17C; - constexpr char32_t z_caron_uc = 0x17D; - constexpr char32_t z_caron = 0x17E; - constexpr char32_t f_with_hook_uc = 0x191; - constexpr char32_t s_comma_uc = 0x218; - constexpr char32_t s_comma = 0x219; - constexpr char32_t t_comma_uc = 0x21A; - constexpr char32_t t_comma = 0x21B; - constexpr char32_t sharp_s_uc = 0x1E9E; - - // Cyrillic alphabet - constexpr char32_t cyrillic_io_uc = 0x401; - constexpr char32_t cyrillic_ukrainian_ie_uc = 0x404; - constexpr char32_t cyrillic_dze_uc = 0x0405; - constexpr char32_t cyrillic_dotted_i_uc = 0x0406; - constexpr char32_t cyrillic_yi_uc = 0x0407; - constexpr char32_t cyrillic_je_uc = 0x0408; - constexpr char32_t cyrillic_a_uc = 0x410; - constexpr char32_t cyrillic_be_uc = 0x411; - constexpr char32_t cyrillic_ve_uc = 0x412; - constexpr char32_t cyrillic_ghe_uc = 0x413; - constexpr char32_t cyrillic_de_uc = 0x414; - constexpr char32_t cyrillic_ie_uc = 0x415; - constexpr char32_t cyrillic_zhe_uc = 0x416; - constexpr char32_t cyrillic_ze_uc = 0x417; - constexpr char32_t cyrillic_i_uc = 0x418; - constexpr char32_t cyrillic_short_i_uc = 0x419; - constexpr char32_t cyrillic_ka_uc = 0x41A; - constexpr char32_t cyrillic_el_uc = 0x41B; - constexpr char32_t cyrillic_em_uc = 0x41C; - constexpr char32_t cyrillic_en_uc = 0x41D; - constexpr char32_t cyrillic_o_uc = 0x41E; - constexpr char32_t cyrillic_pe_uc = 0x41F; - constexpr char32_t cyrillic_er_uc = 0x420; - constexpr char32_t cyrillic_es_uc = 0x421; - constexpr char32_t cyrillic_te_uc = 0x422; - constexpr char32_t cyrillic_u_uc = 0x423; - constexpr char32_t cyrillic_ef_uc = 0x424; - constexpr char32_t cyrillic_ha_uc = 0x425; - constexpr char32_t cyrillic_tse_uc = 0x426; - constexpr char32_t cyrillic_che_uc = 0x427; - constexpr char32_t cyrillic_sha_uc = 0x428; - constexpr char32_t cyrillic_shcha_uc = 0x429; - constexpr char32_t cyrillic_hard_sign_uc = 0x42A; - constexpr char32_t cyrillic_yeru_uc = 0x42B; - constexpr char32_t cyrillic_soft_sign_uc = 0x42C; - constexpr char32_t cyrillic_e_uc = 0x42D; - constexpr char32_t cyrillic_yu_uc = 0x42E; - constexpr char32_t cyrillic_ya_uc = 0x42F; - - constexpr char32_t cyrillic_a = 0x430; - constexpr char32_t cyrillic_be = 0x431; - constexpr char32_t cyrillic_ve = 0x432; - constexpr char32_t cyrillic_ghe = 0x433; - constexpr char32_t cyrillic_de = 0x434; - constexpr char32_t cyrillic_ie = 0x435; - constexpr char32_t cyrillic_zhe = 0x436; - constexpr char32_t cyrillic_ze = 0x437; - constexpr char32_t cyrillic_i = 0x438; - constexpr char32_t cyrillic_short_i = 0x439; - constexpr char32_t cyrillic_ka = 0x43A; - constexpr char32_t cyrillic_el = 0x43B; - constexpr char32_t cyrillic_em = 0x43C; - constexpr char32_t cyrillic_en = 0x43D; - constexpr char32_t cyrillic_o = 0x43E; - constexpr char32_t cyrillic_pe = 0x43F; - constexpr char32_t cyrillic_er = 0x440; - constexpr char32_t cyrillic_es = 0x441; - constexpr char32_t cyrillic_te = 0x442; - constexpr char32_t cyrillic_u = 0x443; - constexpr char32_t cyrillic_ef = 0x444; - constexpr char32_t cyrillic_ha = 0x445; - constexpr char32_t cyrillic_tse = 0x446; - constexpr char32_t cyrillic_che = 0x447; - constexpr char32_t cyrillic_sha = 0x448; - constexpr char32_t cyrillic_shcha = 0x449; - constexpr char32_t cyrillic_hard_sign = 0x44A; - constexpr char32_t cyrillic_yeru = 0x44B; - constexpr char32_t cyrillic_soft_sign = 0x44C; - constexpr char32_t cyrillic_e = 0x44D; - constexpr char32_t cyrillic_yu = 0x44E; - constexpr char32_t cyrillic_ya = 0x44F; - - constexpr char32_t cyrillic_io = 0x451; - constexpr char32_t cyrillic_ukrainian_ie = 0x454; - constexpr char32_t cyrillic_dze = 0x0455; - constexpr char32_t cyrillic_dotted_i = 0x0456; - constexpr char32_t cyrillic_yi = 0x0457; - constexpr char32_t cyrillic_je = 0x0458; - - constexpr char32_t cyrillic_ghe_upturn_uc = 0x490; - constexpr char32_t cyrillic_ghe_upturn = 0x491; - - // Punctuation - constexpr char32_t left_brace = 0x7B; - constexpr char32_t vertical_bar = 0x7C; - constexpr char32_t right_brace = 0x7D; - constexpr char32_t tilde = 0x7E; - constexpr char32_t non_breaking_space = 0xA0; - constexpr char32_t leftguillemet = 0xAB; - constexpr char32_t rightguillemet = 0xBB; - constexpr char32_t interpunct = 0xB7; - constexpr char32_t multiplication_sign = 0xD7; - constexpr char32_t en_dash = 0x2013; - constexpr char32_t em_dash = 0x2014; - constexpr char32_t single_quote_open = 0x2018; - constexpr char32_t single_quote_end = 0x2019; - constexpr char32_t single_german_quote_open = 0x201A; - constexpr char32_t german_quote_open = 0x201E; - constexpr char32_t bullet = 0x2022; - constexpr char32_t ellipsis = 0x2026; - constexpr char32_t narrow_non_breaking_space = 0x202F; - constexpr char32_t quote_open = 0x201C; - constexpr char32_t quote_close = 0x201D; - - // Currency - constexpr char32_t guilder = 0x192; - constexpr char32_t euro = 0x20AC; - constexpr char32_t rouble = 0x20BD; - - // Dingbats - constexpr char32_t up = 0x25B2; - constexpr char32_t small_up = 0x25B4; - constexpr char32_t right = 0x25B6; - constexpr char32_t down = 0x25BC; - constexpr char32_t small_down = 0x25BE; - constexpr char32_t left = 0x25C0; - constexpr char32_t air = 0x2601; - constexpr char32_t tick = 0x2713; - constexpr char32_t plus = 0x2795; - constexpr char32_t minus = 0x2796; - - // Emoji - constexpr char32_t cross = 0x274C; - constexpr char32_t variation_selector = 0xFE0F; - constexpr char32_t water = 0x1F30A; - constexpr char32_t eye = 0x1F441; - constexpr char32_t road = 0x1F6E3; - constexpr char32_t railway = 0x1F6E4; - - // Misc - constexpr char32_t superscript_minus_one = 0x207B; - -}; // namespace UnicodeChar diff --git a/src/openrct2/rct12/CSChar.h b/src/openrct2/rct12/CSChar.h new file mode 100644 index 0000000000..763ace841c --- /dev/null +++ b/src/openrct2/rct12/CSChar.h @@ -0,0 +1,55 @@ +/***************************************************************************** + * Copyright (c) 2014-2024 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 + +namespace CSChar +{ + constexpr char32_t quote_close = 0x22; + + constexpr char32_t a_ogonek_uc = 0x9F; + constexpr char32_t up = 0xA0; + + constexpr char32_t c_acute_uc = 0xA2; + constexpr char32_t e_ogonek_uc = 0xA6; + constexpr char32_t l_stroke_uc = 0xA7; + + constexpr char32_t down = 0xAA; + constexpr char32_t tick = 0xAC; + constexpr char32_t cross = 0xAD; + constexpr char32_t right = 0xAF; + constexpr char32_t railway = 0xB1; + constexpr char32_t quote_open = 0xB4; + constexpr char32_t euro = 0xB5; + constexpr char32_t road = 0xB6; + constexpr char32_t air = 0xB7; + constexpr char32_t water = 0xB8; + constexpr char32_t superscript_minus_one = 0xB9; + constexpr char32_t bullet = 0xBA; + constexpr char32_t small_up = 0xBC; + constexpr char32_t small_down = 0xBD; + constexpr char32_t left = 0xBE; + + constexpr char32_t n_acute_uc = 0xC6; + constexpr char32_t s_acute_uc = 0xD0; + constexpr char32_t z_acute_uc = 0xD7; + constexpr char32_t z_dot_uc = 0xD8; + constexpr char32_t a_ogonek = 0xDD; + constexpr char32_t c_acute = 0xDE; + constexpr char32_t e_ogonek = 0xE6; + constexpr char32_t n_acute = 0xF0; + constexpr char32_t o_circumflex = 0xF4; + constexpr char32_t l_stroke = 0xF7; + constexpr char32_t s_acute = 0xF8; + constexpr char32_t z_acute = 0xFE; + + constexpr char32_t z_dot = 0xFD; +} // namespace CSChar diff --git a/src/openrct2/rct12/CSStringConverter.cpp b/src/openrct2/rct12/CSStringConverter.cpp index a9e7229135..a17239ad3c 100644 --- a/src/openrct2/rct12/CSStringConverter.cpp +++ b/src/openrct2/rct12/CSStringConverter.cpp @@ -10,8 +10,10 @@ #include "CSStringConverter.h" #include "../core/String.hpp" +#include "../core/UnicodeChar.h" #include "../localisation/FormatCodes.h" #include "../localisation/Language.h" +#include "../rct12/CSChar.h" #include #include