diff --git a/distribution/changelog.txt b/distribution/changelog.txt index f6f4be745f..45f376f0cb 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -3,7 +3,7 @@ - Feature: [#15660] Ability to show window buttons on the left. - Feature: [OpenMusic#41] Official Title Theme by Allister Brimble. - Improved: [#20119, #20243] Add new colour presets to several roller coasters (using the new colours). -- Improved: [#20393] Add Cyrillic characters Ѕѕ, Іі, Її, and Јј to the sprite font. +- Improved: [#20393, #20410] Add Cyrillic characters Ґґ, Ѕѕ, Єє, Іі, Її, and Јј to the sprite font. - Change: [#20110] Fix a few RCT1 build height parity discrepancies. - Fix: [#6152] Camera and UI are no longer locked at 40 Hz, providing a smoother experience. - Fix: [#19823] Parkobj: disallow overriding objects of different object types. diff --git a/resources/g2/font/cyrillic/U1028-bold.png b/resources/g2/font/cyrillic/U1028-bold.png new file mode 100644 index 0000000000..c45cd60f13 Binary files /dev/null and b/resources/g2/font/cyrillic/U1028-bold.png differ diff --git a/resources/g2/font/cyrillic/U1028-small.png b/resources/g2/font/cyrillic/U1028-small.png new file mode 100644 index 0000000000..02134fe4b3 Binary files /dev/null and b/resources/g2/font/cyrillic/U1028-small.png differ diff --git a/resources/g2/font/cyrillic/U1028-tiny.png b/resources/g2/font/cyrillic/U1028-tiny.png new file mode 100644 index 0000000000..0d7fcb643d Binary files /dev/null and b/resources/g2/font/cyrillic/U1028-tiny.png differ diff --git a/resources/g2/font/cyrillic/U1108-bold.png b/resources/g2/font/cyrillic/U1108-bold.png new file mode 100644 index 0000000000..8afe168c79 Binary files /dev/null and b/resources/g2/font/cyrillic/U1108-bold.png differ diff --git a/resources/g2/font/cyrillic/U1108-small.png b/resources/g2/font/cyrillic/U1108-small.png new file mode 100644 index 0000000000..409f17816b Binary files /dev/null and b/resources/g2/font/cyrillic/U1108-small.png differ diff --git a/resources/g2/font/cyrillic/U1108-tiny.png b/resources/g2/font/cyrillic/U1108-tiny.png new file mode 100644 index 0000000000..ea56e96c5e Binary files /dev/null and b/resources/g2/font/cyrillic/U1108-tiny.png differ diff --git a/resources/g2/font/cyrillic/U1168-bold.png b/resources/g2/font/cyrillic/U1168-bold.png new file mode 100644 index 0000000000..41e80b811a Binary files /dev/null and b/resources/g2/font/cyrillic/U1168-bold.png differ diff --git a/resources/g2/font/cyrillic/U1168-small.png b/resources/g2/font/cyrillic/U1168-small.png new file mode 100644 index 0000000000..bdcdd2018d Binary files /dev/null and b/resources/g2/font/cyrillic/U1168-small.png differ diff --git a/resources/g2/font/cyrillic/U1168-tiny.png b/resources/g2/font/cyrillic/U1168-tiny.png new file mode 100644 index 0000000000..98c4fef6b7 Binary files /dev/null and b/resources/g2/font/cyrillic/U1168-tiny.png differ diff --git a/resources/g2/font/cyrillic/U1169-bold.png b/resources/g2/font/cyrillic/U1169-bold.png new file mode 100644 index 0000000000..1c434bba46 Binary files /dev/null and b/resources/g2/font/cyrillic/U1169-bold.png differ diff --git a/resources/g2/font/cyrillic/U1169-small.png b/resources/g2/font/cyrillic/U1169-small.png new file mode 100644 index 0000000000..d31f148a2d Binary files /dev/null and b/resources/g2/font/cyrillic/U1169-small.png differ diff --git a/resources/g2/font/cyrillic/U1169-tiny.png b/resources/g2/font/cyrillic/U1169-tiny.png new file mode 100644 index 0000000000..1f9a2dcbfe Binary files /dev/null and b/resources/g2/font/cyrillic/U1169-tiny.png differ diff --git a/resources/g2/sprites.json b/resources/g2/sprites.json index 6e725bb749..30e04cda64 100644 --- a/resources/g2/sprites.json +++ b/resources/g2/sprites.json @@ -602,6 +602,11 @@ "palette": "keep", "forceBmp": true }, + { + "path": "font/cyrillic/U1028-small.png", + "palette": "keep", + "forceBmp": true + }, { "path": "font/cyrillic/U1041-small.png", "palette": "keep", @@ -829,6 +834,23 @@ "palette": "keep", "forceBmp": true }, + { + "path": "font/cyrillic/U1108-small.png", + "y_offset": 2, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/cyrillic/U1168-small.png", + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/cyrillic/U1169-small.png", + "y_offset": 1, + "palette": "keep", + "forceBmp": true + }, { "path": "font/german-openquotes-small.png", "y_offset": 6, @@ -1231,6 +1253,11 @@ "palette": "keep", "forceBmp": true }, + { + "path": "font/cyrillic/U1028-bold.png", + "palette": "keep", + "forceBmp": true + }, { "path": "font/cyrillic/U1041-bold.png", "palette": "keep", @@ -1458,6 +1485,23 @@ "palette": "keep", "forceBmp": true }, + { + "path": "font/cyrillic/U1108-bold.png", + "y_offset": 2, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/cyrillic/U1168-bold.png", + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/cyrillic/U1169-bold.png", + "y_offset": 1, + "palette": "keep", + "forceBmp": true + }, { "path": "font/german-openquotes-bold.png", "y_offset": 5, @@ -1859,6 +1903,11 @@ "palette": "keep", "forceBmp": true }, + { + "path": "font/cyrillic/U1028-tiny.png", + "palette": "keep", + "forceBmp": true + }, { "path": "font/cyrillic/U1041-tiny.png", "palette": "keep", @@ -1976,6 +2025,7 @@ }, { "path": "font/cyrillic/U1075-tiny.png", + "y_offset": 1, "palette": "keep", "forceBmp": true }, @@ -2096,6 +2146,23 @@ "palette": "keep", "forceBmp": true }, + { + "path": "font/cyrillic/U1108-tiny.png", + "y_offset": 1, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/cyrillic/U1168-tiny.png", + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/cyrillic/U1169-tiny.png", + "y_offset": 1, + "palette": "keep", + "forceBmp": true + }, { "path": "font/german-openquotes-tiny.png", "y_offset": 4, diff --git a/src/openrct2/drawing/Font.cpp b/src/openrct2/drawing/Font.cpp index 413bf593a4..12b2d7c47a 100644 --- a/src/openrct2/drawing/Font.cpp +++ b/src/openrct2/drawing/Font.cpp @@ -117,6 +117,7 @@ static const std::unordered_map codepointOffsetMap = { // Cyrillic alphabet { UnicodeChar::cyrillic_io_uc, 203 - CS_SPRITE_FONT_OFFSET }, // Looks just like Ë + { UnicodeChar::cyrillic_ukrainian_ie_uc, SPR_G2_CYRILLIC_UKRAINIAN_IE_UPPER - SPR_CHAR_START }, { UnicodeChar::cyrillic_dze_uc, 'S' - CS_SPRITE_FONT_OFFSET }, { UnicodeChar::cyrillic_dotted_i_uc, 'I' - CS_SPRITE_FONT_OFFSET }, { UnicodeChar::cyrillic_yi_uc, 207 - CS_SPRITE_FONT_OFFSET }, // Looks just like Ï @@ -186,11 +187,14 @@ static const std::unordered_map codepointOffsetMap = { { UnicodeChar::cyrillic_e, SPR_G2_CYRILLIC_E_LOWER - SPR_CHAR_START }, { UnicodeChar::cyrillic_yu, SPR_G2_CYRILLIC_YU_LOWER - SPR_CHAR_START }, { UnicodeChar::cyrillic_ya, SPR_G2_CYRILLIC_YA_LOWER - SPR_CHAR_START }, - { UnicodeChar::cyrillic_io, 235 - CS_SPRITE_FONT_OFFSET }, // Looks just like ë + { UnicodeChar::cyrillic_io, 235 - CS_SPRITE_FONT_OFFSET }, // Looks just like ë + { UnicodeChar::cyrillic_ukrainian_ie, SPR_G2_CYRILLIC_UKRAINIAN_IE_LOWER - SPR_CHAR_START }, // Looks just like ë { UnicodeChar::cyrillic_dze, 's' - CS_SPRITE_FONT_OFFSET }, { UnicodeChar::cyrillic_dotted_i, 'i' - CS_SPRITE_FONT_OFFSET }, { UnicodeChar::cyrillic_yi, 239 - CS_SPRITE_FONT_OFFSET }, // Looks just like ï { UnicodeChar::cyrillic_je, 'j' - CS_SPRITE_FONT_OFFSET }, + { UnicodeChar::cyrillic_ghe_upturn_uc, SPR_G2_CYRILLIC_GHE_UPTURN_UPPER - SPR_CHAR_START }, + { UnicodeChar::cyrillic_ghe_upturn, SPR_G2_CYRILLIC_GHE_UPTURN_LOWER - SPR_CHAR_START }, // Punctuation { UnicodeChar::left_brace, SPR_G2_LEFT_BRACE - SPR_CHAR_START }, diff --git a/src/openrct2/localisation/FormatCodes.h b/src/openrct2/localisation/FormatCodes.h index 010a4960c4..79f3cea190 100644 --- a/src/openrct2/localisation/FormatCodes.h +++ b/src/openrct2/localisation/FormatCodes.h @@ -213,6 +213,7 @@ namespace UnicodeChar // 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; @@ -284,11 +285,15 @@ namespace UnicodeChar 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; diff --git a/src/openrct2/sprites.h b/src/openrct2/sprites.h index a5f47a2228..7ff7f7a8fa 100644 --- a/src/openrct2/sprites.h +++ b/src/openrct2/sprites.h @@ -1043,6 +1043,7 @@ enum SPR_G2_O_STROKE_UPPER, SPR_G2_O_STROKE_LOWER, + SPR_G2_CYRILLIC_UKRAINIAN_IE_UPPER, SPR_G2_CYRILLIC_BE_UPPER, SPR_G2_CYRILLIC_GHE_UPPER, SPR_G2_CYRILLIC_DE_UPPER, @@ -1089,6 +1090,9 @@ enum SPR_G2_CYRILLIC_E_LOWER, SPR_G2_CYRILLIC_YU_LOWER, SPR_G2_CYRILLIC_YA_LOWER, + SPR_G2_CYRILLIC_UKRAINIAN_IE_LOWER, + SPR_G2_CYRILLIC_GHE_UPTURN_UPPER, + SPR_G2_CYRILLIC_GHE_UPTURN_LOWER, SPR_G2_GERMAN_OPENQUOTES,