From 20fe5a29d36b90edb37867c6ad699621f8033feb Mon Sep 17 00:00:00 2001 From: Michael Steenbeek Date: Sun, 18 Jun 2023 23:44:44 +0200 Subject: [PATCH] =?UTF-8?q?Add=20missing=20Ukrainian=20letters=20(=D0=84?= =?UTF-8?q?=D1=94=20and=20=D2=90=D2=91)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- distribution/changelog.txt | 2 +- resources/g2/font/cyrillic/U1028-bold.png | Bin 0 -> 148 bytes resources/g2/font/cyrillic/U1028-small.png | Bin 0 -> 141 bytes resources/g2/font/cyrillic/U1028-tiny.png | Bin 0 -> 128 bytes resources/g2/font/cyrillic/U1108-bold.png | Bin 0 -> 135 bytes resources/g2/font/cyrillic/U1108-small.png | Bin 0 -> 131 bytes resources/g2/font/cyrillic/U1108-tiny.png | Bin 0 -> 125 bytes resources/g2/font/cyrillic/U1168-bold.png | Bin 0 -> 129 bytes resources/g2/font/cyrillic/U1168-small.png | Bin 0 -> 129 bytes resources/g2/font/cyrillic/U1168-tiny.png | Bin 0 -> 131 bytes resources/g2/font/cyrillic/U1169-bold.png | Bin 0 -> 129 bytes resources/g2/font/cyrillic/U1169-small.png | Bin 0 -> 128 bytes resources/g2/font/cyrillic/U1169-tiny.png | Bin 0 -> 128 bytes resources/g2/sprites.json | 67 +++++++++++++++++++++ src/openrct2/drawing/Font.cpp | 6 +- src/openrct2/localisation/FormatCodes.h | 5 ++ src/openrct2/sprites.h | 4 ++ 17 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 resources/g2/font/cyrillic/U1028-bold.png create mode 100644 resources/g2/font/cyrillic/U1028-small.png create mode 100644 resources/g2/font/cyrillic/U1028-tiny.png create mode 100644 resources/g2/font/cyrillic/U1108-bold.png create mode 100644 resources/g2/font/cyrillic/U1108-small.png create mode 100644 resources/g2/font/cyrillic/U1108-tiny.png create mode 100644 resources/g2/font/cyrillic/U1168-bold.png create mode 100644 resources/g2/font/cyrillic/U1168-small.png create mode 100644 resources/g2/font/cyrillic/U1168-tiny.png create mode 100644 resources/g2/font/cyrillic/U1169-bold.png create mode 100644 resources/g2/font/cyrillic/U1169-small.png create mode 100644 resources/g2/font/cyrillic/U1169-tiny.png 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 0000000000000000000000000000000000000000..c45cd60f13fa49303ff7d494d98a6e896505fb28 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRQ#0(^*v*+jnDV_kI5ZC|z|93F_|Ig52Z2Z3^ ziq8$Cu)rg-n1O-s2naJy)#j513hH^fIEHXsPfmzBc;JBKu>%XFsu~h+U1H`5el01n qY;ID*46c;sBNm4xC1(6LU|_hllG`n_E)L#0(@^7p<8Gq<8{+LR|m<|KGvz|35>AvGMJA<>Naa0y#mWWqLEW(MN| WmIsgJlP!U&7(8A5T-G@yGywntC?g~Q literal 0 HcmV?d00001 diff --git a/resources/g2/font/cyrillic/U1108-bold.png b/resources/g2/font/cyrillic/U1108-bold.png new file mode 100644 index 0000000000000000000000000000000000000000..8afe168c79d6aecc6ac960825f2c00ada098134a GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H#0(@ovUsNgDV_kI5ZC|z|93F_|Ig52Z2Z3^ ziq8!w&RO6QS45vshx;QG*p? d1|Q@Z7(#{F?WAvGMaX-CC7lmitqc)I$ztaD0e0svUtBG~`{ literal 0 HcmV?d00001 diff --git a/resources/g2/font/cyrillic/U1108-tiny.png b/resources/g2/font/cyrillic/U1108-tiny.png new file mode 100644 index 0000000000000000000000000000000000000000..ea56e96c5e7762224191dde1196529572fec5328 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1h#0(_MrtY}`q<8{+LR|m<|KGvz|35>AvGMAvGMq<8{+LR|m<|KGvz|35>AvGM<*jP3tGB8Bl WW8)9sdgL!q8H1;*pUXO@geCwQmLyXE literal 0 HcmV?d00001 diff --git a/resources/g2/font/cyrillic/U1169-small.png b/resources/g2/font/cyrillic/U1169-small.png new file mode 100644 index 0000000000000000000000000000000000000000..d31f148a2d075f194e7c05f1792306af8b2ae3ca GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1k#0(_c5A*Q?DV_kI5ZC|z|93F_|Ig52Z2Z3^ ziq8$CsK6t#n1O-s2naJy)#j513QBppIEHXsPfkcmxL|X@;48!78n!k|j}r}y3;~s_ V4Y$h~G=ZuZJYD@<);T3K0RW=xA~gU2 literal 0 HcmV?d00001 diff --git a/resources/g2/font/cyrillic/U1169-tiny.png b/resources/g2/font/cyrillic/U1169-tiny.png new file mode 100644 index 0000000000000000000000000000000000000000..1f9a2dcbfe5436ddd17c889e0f1bbb5d06deb1d7 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1h#0(_MrtY}`q<8{+LR|m<|KGvz|35>AvGMMemOMOcJPb;; W%xi)f?t}wXF?hQAxvX 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,