diff --git a/resources/g2/font/latin/oe-bold.png b/resources/g2/font/latin/oe-bold.png new file mode 100644 index 0000000000..3adb863d11 Binary files /dev/null and b/resources/g2/font/latin/oe-bold.png differ diff --git a/resources/g2/font/latin/oe-small.png b/resources/g2/font/latin/oe-small.png new file mode 100644 index 0000000000..668d3e7376 Binary files /dev/null and b/resources/g2/font/latin/oe-small.png differ diff --git a/resources/g2/font/latin/oe-tiny.png b/resources/g2/font/latin/oe-tiny.png new file mode 100644 index 0000000000..1478452210 Binary files /dev/null and b/resources/g2/font/latin/oe-tiny.png differ diff --git a/resources/g2/font/latin/oe-uc-bold.png b/resources/g2/font/latin/oe-uc-bold.png new file mode 100644 index 0000000000..fd7d9926ec Binary files /dev/null and b/resources/g2/font/latin/oe-uc-bold.png differ diff --git a/resources/g2/font/latin/oe-uc-small.png b/resources/g2/font/latin/oe-uc-small.png new file mode 100644 index 0000000000..146b2c769e Binary files /dev/null and b/resources/g2/font/latin/oe-uc-small.png differ diff --git a/resources/g2/font/latin/oe-uc-tiny.png b/resources/g2/font/latin/oe-uc-tiny.png new file mode 100644 index 0000000000..1e58a81fe5 Binary files /dev/null and b/resources/g2/font/latin/oe-uc-tiny.png differ diff --git a/resources/g2/sprites.json b/resources/g2/sprites.json index 6343ff1cbe..6250ec5297 100644 --- a/resources/g2/sprites.json +++ b/resources/g2/sprites.json @@ -844,6 +844,18 @@ "palette": "keep", "forceBmp": true }, + { + "path": "font/latin/oe-uc-small.png", + "y_offset": 0, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/latin/oe-small.png", + "y_offset": 2, + "palette": "keep", + "forceBmp": true + }, { "path": "font/latin/u-double-acute-uc-small.png", "y_offset": 0, @@ -1409,6 +1421,18 @@ "palette": "keep", "forceBmp": true }, + { + "path": "font/latin/oe-uc-bold.png", + "y_offset": 0, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/latin/oe-bold.png", + "y_offset": 2, + "palette": "keep", + "forceBmp": true + }, { "path": "font/latin/u-double-acute-uc-bold.png", "y_offset": 0, @@ -1982,6 +2006,18 @@ "palette": "keep", "forceBmp": true }, + { + "path": "font/latin/oe-uc-tiny.png", + "y_offset": 0, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/latin/oe-tiny.png", + "y_offset": 1, + "palette": "keep", + "forceBmp": true + }, { "path": "font/latin/u-double-acute-uc-tiny.png", "y_offset": 0, diff --git a/src/openrct2/drawing/Font.cpp b/src/openrct2/drawing/Font.cpp index 24573ecf09..c68b4dcd0a 100644 --- a/src/openrct2/drawing/Font.cpp +++ b/src/openrct2/drawing/Font.cpp @@ -64,6 +64,8 @@ static const std::unordered_map codepointOffsetMap = { { UnicodeChar::o_macron, CSChar::o_circumflex - CS_SPRITE_FONT_OFFSET }, // No visual difference { UnicodeChar::o_double_acute_uc, SPR_G2_O_DOUBLE_ACUTE_UPPER - SPR_CHAR_START }, { UnicodeChar::o_double_acute, SPR_G2_O_DOUBLE_ACUTE_LOWER - SPR_CHAR_START }, + { UnicodeChar::oe_uc, SPR_G2_OE_UPPER - SPR_CHAR_START }, + { UnicodeChar::oe, SPR_G2_OE_LOWER - SPR_CHAR_START }, { UnicodeChar::r_caron_uc, SPR_G2_R_CARON_UPPER - SPR_CHAR_START }, { UnicodeChar::r_caron, SPR_G2_R_CARON_LOWER - SPR_CHAR_START }, { UnicodeChar::s_acute_uc, CSChar::s_acute_uc - CS_SPRITE_FONT_OFFSET }, diff --git a/src/openrct2/localisation/FormatCodes.h b/src/openrct2/localisation/FormatCodes.h index 9e70f682bd..82a092c847 100644 --- a/src/openrct2/localisation/FormatCodes.h +++ b/src/openrct2/localisation/FormatCodes.h @@ -174,6 +174,8 @@ namespace UnicodeChar 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; diff --git a/src/openrct2/sprites.h b/src/openrct2/sprites.h index 6efc5e0347..87b9c8ee91 100644 --- a/src/openrct2/sprites.h +++ b/src/openrct2/sprites.h @@ -946,30 +946,34 @@ enum SPR_G2_O_DOUBLE_ACUTE_UPPER = SPR_G2_CHAR_BEGIN + 66, SPR_G2_O_DOUBLE_ACUTE_LOWER = SPR_G2_CHAR_BEGIN + 67, - SPR_G2_U_DOUBLE_ACUTE_UPPER = SPR_G2_CHAR_BEGIN + 68, - SPR_G2_U_DOUBLE_ACUTE_LOWER = SPR_G2_CHAR_BEGIN + 69, - SPR_G2_D_CARON_UPPER = SPR_G2_CHAR_BEGIN + 70, - SPR_G2_D_CARON_LOWER = SPR_G2_CHAR_BEGIN + 71, - SPR_G2_E_CARON_UPPER = SPR_G2_CHAR_BEGIN + 72, - SPR_G2_E_CARON_LOWER = SPR_G2_CHAR_BEGIN + 73, - SPR_G2_N_CARON_UPPER = SPR_G2_CHAR_BEGIN + 74, - SPR_G2_N_CARON_LOWER = SPR_G2_CHAR_BEGIN + 75, - SPR_G2_R_CARON_UPPER = SPR_G2_CHAR_BEGIN + 76, - SPR_G2_R_CARON_LOWER = SPR_G2_CHAR_BEGIN + 77, - SPR_G2_S_CARON_UPPER = SPR_G2_CHAR_BEGIN + 78, - SPR_G2_S_CARON_LOWER = SPR_G2_CHAR_BEGIN + 79, - SPR_G2_T_CARON_UPPER = SPR_G2_CHAR_BEGIN + 80, - SPR_G2_T_CARON_LOWER = SPR_G2_CHAR_BEGIN + 81, - SPR_G2_U_RING_UPPER = SPR_G2_CHAR_BEGIN + 82, - SPR_G2_U_RING_LOWER = SPR_G2_CHAR_BEGIN + 83, - SPR_G2_Z_CARON_UPPER = SPR_G2_CHAR_BEGIN + 84, - SPR_G2_Z_CARON_LOWER = SPR_G2_CHAR_BEGIN + 85, + SPR_G2_OE_UPPER, + SPR_G2_OE_LOWER, - SPR_G2_ROUBLE_SIGN = SPR_G2_CHAR_BEGIN + 86, + SPR_G2_U_DOUBLE_ACUTE_UPPER, + SPR_G2_U_DOUBLE_ACUTE_LOWER, - SPR_G2_J = SPR_G2_CHAR_BEGIN + 87, - SPR_G2_L = SPR_G2_CHAR_BEGIN + 88, + SPR_G2_D_CARON_UPPER, + SPR_G2_D_CARON_LOWER, + SPR_G2_E_CARON_UPPER, + SPR_G2_E_CARON_LOWER, + SPR_G2_N_CARON_UPPER, + SPR_G2_N_CARON_LOWER, + SPR_G2_R_CARON_UPPER, + SPR_G2_R_CARON_LOWER, + SPR_G2_S_CARON_UPPER, + SPR_G2_S_CARON_LOWER, + SPR_G2_T_CARON_UPPER, + SPR_G2_T_CARON_LOWER, + SPR_G2_U_RING_UPPER, + SPR_G2_U_RING_LOWER, + SPR_G2_Z_CARON_UPPER, + SPR_G2_Z_CARON_LOWER, + + SPR_G2_ROUBLE_SIGN, + + SPR_G2_J, + SPR_G2_L, SPR_G2_C_CIRCUMFLEX_UPPER, SPR_G2_C_CIRCUMFLEX_LOWER,