diff --git a/data/language/en-GB.txt b/data/language/en-GB.txt index 340e36422b..cbdc1c56c0 100644 --- a/data/language/en-GB.txt +++ b/data/language/en-GB.txt @@ -2345,7 +2345,7 @@ STR_2337 :Deutschmark (DM) STR_2338 :Yen ({YEN}) STR_2339 :Peseta (Pts) STR_2340 :Lira (L) -STR_2341 :Guilders (fl.) +STR_2341 :Guilders (ƒ) STR_2342 :Krona (kr) STR_2343 :Euros ({EURO}) STR_2344 :Imperial diff --git a/distribution/changelog.txt b/distribution/changelog.txt index c60ba6feaf..f11e482ba0 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -4,9 +4,9 @@ - Feature: [#6998] Guests now wait for passing vehicles before crossing railway tracks. - Feature: [#7694] Debug option to visualize paths that the game detects as wide. - Feature: [#7771] Danish translation. -- Feature: [#7802] Add sprite font glyphs for Russian. +- Feature: [#7797, #7802, #7821] Add sprite font glyphs for Danish, Norwegian, Russian, Turkish and Catalan. - Fix: [#3177] Wrong keys displayed in shortcut menu. -- Fix: [#4039] Add sprite font glyph for German opening quotation mark. +- Fix: [#4039] No sprite font glyph for German opening quotation mark. - Fix: [#7533] Screenshot is incorrectly named/file is not generated in CJK language. - Fix: [#7628] Always-researched items can be modified in the inventory list. - Fix: [#7643] No Money scenarios with funding set to zero. @@ -23,7 +23,7 @@ - Fix: [#7773] Once research has been completed, player is still charged for research. - Fix: [#7786] Crash when importing a track design. - Fix: [#7793] Duplicate private keys generated. -- Fix: [#7797] Add sprite font glyphs for Æ and Ø, needed for Norwegian and Danish. +- Fix: [#7817] No sprite font glyph for interpunct. 0.2.0 (2018-06-10) ------------------------------------------------------------------------ diff --git a/resources/g2/font/g-breve-bold.png b/resources/g2/font/g-breve-bold.png new file mode 100644 index 0000000000..bee63f5345 Binary files /dev/null and b/resources/g2/font/g-breve-bold.png differ diff --git a/resources/g2/font/g-breve-small.png b/resources/g2/font/g-breve-small.png new file mode 100644 index 0000000000..6cc6d7d564 Binary files /dev/null and b/resources/g2/font/g-breve-small.png differ diff --git a/resources/g2/font/g-breve-tiny.png b/resources/g2/font/g-breve-tiny.png new file mode 100644 index 0000000000..ef6bca05f7 Binary files /dev/null and b/resources/g2/font/g-breve-tiny.png differ diff --git a/resources/g2/font/g-breve-uc-bold.png b/resources/g2/font/g-breve-uc-bold.png new file mode 100644 index 0000000000..f05631f1c4 Binary files /dev/null and b/resources/g2/font/g-breve-uc-bold.png differ diff --git a/resources/g2/font/g-breve-uc-small.png b/resources/g2/font/g-breve-uc-small.png new file mode 100644 index 0000000000..5baa42d680 Binary files /dev/null and b/resources/g2/font/g-breve-uc-small.png differ diff --git a/resources/g2/font/g-breve-uc-tiny.png b/resources/g2/font/g-breve-uc-tiny.png new file mode 100644 index 0000000000..623092cdb5 Binary files /dev/null and b/resources/g2/font/g-breve-uc-tiny.png differ diff --git a/resources/g2/font/guilder-bold.png b/resources/g2/font/guilder-bold.png new file mode 100644 index 0000000000..ee37c74ec1 Binary files /dev/null and b/resources/g2/font/guilder-bold.png differ diff --git a/resources/g2/font/guilder-small.png b/resources/g2/font/guilder-small.png new file mode 100644 index 0000000000..9294807041 Binary files /dev/null and b/resources/g2/font/guilder-small.png differ diff --git a/resources/g2/font/guilder-tiny.png b/resources/g2/font/guilder-tiny.png new file mode 100644 index 0000000000..c7ed827b10 Binary files /dev/null and b/resources/g2/font/guilder-tiny.png differ diff --git a/resources/g2/font/i-with-dot-uc-bold.png b/resources/g2/font/i-with-dot-uc-bold.png new file mode 100644 index 0000000000..220fbe009a Binary files /dev/null and b/resources/g2/font/i-with-dot-uc-bold.png differ diff --git a/resources/g2/font/i-with-dot-uc-small.png b/resources/g2/font/i-with-dot-uc-small.png new file mode 100644 index 0000000000..9262c3c9be Binary files /dev/null and b/resources/g2/font/i-with-dot-uc-small.png differ diff --git a/resources/g2/font/i-with-dot-uc-tiny.png b/resources/g2/font/i-with-dot-uc-tiny.png new file mode 100644 index 0000000000..394e0dc0a2 Binary files /dev/null and b/resources/g2/font/i-with-dot-uc-tiny.png differ diff --git a/resources/g2/font/i-without-dot-bold.png b/resources/g2/font/i-without-dot-bold.png new file mode 100644 index 0000000000..e76174aeed Binary files /dev/null and b/resources/g2/font/i-without-dot-bold.png differ diff --git a/resources/g2/font/i-without-dot-small.png b/resources/g2/font/i-without-dot-small.png new file mode 100644 index 0000000000..a96fc162ec Binary files /dev/null and b/resources/g2/font/i-without-dot-small.png differ diff --git a/resources/g2/font/i-without-dot-tiny.png b/resources/g2/font/i-without-dot-tiny.png new file mode 100644 index 0000000000..6a55979885 Binary files /dev/null and b/resources/g2/font/i-without-dot-tiny.png differ diff --git a/resources/g2/font/interpunct-bold.png b/resources/g2/font/interpunct-bold.png new file mode 100644 index 0000000000..9f6982b726 Binary files /dev/null and b/resources/g2/font/interpunct-bold.png differ diff --git a/resources/g2/font/interpunct-small.png b/resources/g2/font/interpunct-small.png new file mode 100644 index 0000000000..8e0846b989 Binary files /dev/null and b/resources/g2/font/interpunct-small.png differ diff --git a/resources/g2/font/interpunct-tiny.png b/resources/g2/font/interpunct-tiny.png new file mode 100644 index 0000000000..a1fc02cdd6 Binary files /dev/null and b/resources/g2/font/interpunct-tiny.png differ diff --git a/resources/g2/font/s-cedilla-bold.png b/resources/g2/font/s-cedilla-bold.png new file mode 100644 index 0000000000..c041b2b1d0 Binary files /dev/null and b/resources/g2/font/s-cedilla-bold.png differ diff --git a/resources/g2/font/s-cedilla-small.png b/resources/g2/font/s-cedilla-small.png new file mode 100644 index 0000000000..a3e039c00e Binary files /dev/null and b/resources/g2/font/s-cedilla-small.png differ diff --git a/resources/g2/font/s-cedilla-tiny.png b/resources/g2/font/s-cedilla-tiny.png new file mode 100644 index 0000000000..87506ba672 Binary files /dev/null and b/resources/g2/font/s-cedilla-tiny.png differ diff --git a/resources/g2/font/s-cedilla-uc-bold.png b/resources/g2/font/s-cedilla-uc-bold.png new file mode 100644 index 0000000000..4de3d02b2b Binary files /dev/null and b/resources/g2/font/s-cedilla-uc-bold.png differ diff --git a/resources/g2/font/s-cedilla-uc-small.png b/resources/g2/font/s-cedilla-uc-small.png new file mode 100644 index 0000000000..fe23aa3ffe Binary files /dev/null and b/resources/g2/font/s-cedilla-uc-small.png differ diff --git a/resources/g2/font/s-cedilla-uc-tiny.png b/resources/g2/font/s-cedilla-uc-tiny.png new file mode 100644 index 0000000000..877e0328e2 Binary files /dev/null and b/resources/g2/font/s-cedilla-uc-tiny.png differ diff --git a/resources/g2/sprites.json b/resources/g2/sprites.json index 601e0201f7..fc40afc72e 100644 --- a/resources/g2/sprites.json +++ b/resources/g2/sprites.json @@ -698,6 +698,54 @@ "palette": "keep", "forceBmp": true }, + { + "path": "font/guilder-small.png", + "y_offset": 0, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/g-breve-uc-small.png", + "y_offset": -1, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/i-with-dot-uc-small.png", + "y_offset": -1, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/s-cedilla-uc-small.png", + "y_offset": 0, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/g-breve-small.png", + "y_offset": 0, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/i-without-dot-small.png", + "y_offset": 2, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/s-cedilla-small.png", + "y_offset": 2, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/interpunct-small.png", + "y_offset": 3, + "palette": "keep", + "forceBmp": true + }, { "path": "font/ae-uc-bold.png", "y_offset": 0, @@ -957,6 +1005,54 @@ "palette": "keep", "forceBmp": true }, + { + "path": "font/guilder-bold.png", + "y_offset": 0, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/g-breve-uc-bold.png", + "y_offset": -1, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/i-with-dot-uc-bold.png", + "y_offset": -1, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/s-cedilla-uc-bold.png", + "y_offset": 0, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/g-breve-bold.png", + "y_offset": 0, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/i-without-dot-bold.png", + "y_offset": 2, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/s-cedilla-bold.png", + "y_offset": 2, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/interpunct-bold.png", + "y_offset": 3, + "palette": "keep", + "forceBmp": true + }, { "path": "font/ae-uc-tiny.png", "y_offset": 0, @@ -1223,5 +1319,53 @@ "y_offset": 4, "palette": "keep", "forceBmp": true + }, + { + "path": "font/guilder-tiny.png", + "y_offset": 1, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/g-breve-uc-tiny.png", + "y_offset": -1, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/i-with-dot-uc-tiny.png", + "y_offset": -1, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/s-cedilla-uc-tiny.png", + "y_offset": 0, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/g-breve-tiny.png", + "y_offset": 0, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/i-without-dot-tiny.png", + "y_offset": 2, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/s-cedilla-tiny.png", + "y_offset": 1, + "palette": "keep", + "forceBmp": true + }, + { + "path": "font/interpunct-tiny.png", + "y_offset": 2, + "palette": "keep", + "forceBmp": true } ] diff --git a/src/openrct2/drawing/Font.cpp b/src/openrct2/drawing/Font.cpp index 3279e020e4..aa32206de3 100644 --- a/src/openrct2/drawing/Font.cpp +++ b/src/openrct2/drawing/Font.cpp @@ -333,6 +333,30 @@ int32_t font_sprite_get_codepoint_offset(int32_t codepoint) case FORMAT_GERMAN_SINGLE_OPENQUOTE: return 12; + case UNICODE_GUILDER_SIGN: + return SPR_G2_GUILDER_SIGN - SPR_CHAR_START; + + // Turkish + case UNICODE_G_BREVE_UC: + return SPR_G2_G_BREVE_UPPER - SPR_CHAR_START; + case UNICODE_I_WITH_DOT_UC: + return SPR_G2_I_WITH_DOT_UPPER - SPR_CHAR_START; + case UNICODE_S_CEDILLA_UC: + return SPR_G2_S_CEDILLA_UPPER - SPR_CHAR_START; + case UNICODE_G_BREVE: + return SPR_G2_G_BREVE_LOWER - SPR_CHAR_START; + case UNICODE_I_WITHOUT_DOT: + return SPR_G2_I_WITHOUT_DOT_LOWER - SPR_CHAR_START; + case UNICODE_S_CEDILLA: + return SPR_G2_S_CEDILLA_LOWER - SPR_CHAR_START; + + case UNICODE_INTERPUNCT: + return SPR_G2_INTERPUNCT - SPR_CHAR_START; + + // This is to catch capitalised versions of the guilder sign + case UNICODE_F_WITH_HOOK_UC: + return 'F' - 32; + default: if (codepoint < 32 || codepoint >= 256) codepoint = '?'; @@ -493,6 +517,17 @@ bool font_supports_string_sprite(const utf8* text) case FORMAT_SINGLE_ENDQUOTE: case FORMAT_GERMAN_SINGLE_OPENQUOTE: + case UNICODE_GUILDER_SIGN: + + case UNICODE_G_BREVE_UC: + case UNICODE_I_WITH_DOT_UC: + case UNICODE_S_CEDILLA_UC: + case UNICODE_G_BREVE: + case UNICODE_I_WITHOUT_DOT: + case UNICODE_S_CEDILLA: + + case UNICODE_INTERPUNCT: + supported = true; break; default: diff --git a/src/openrct2/localisation/Currency.cpp b/src/openrct2/localisation/Currency.cpp index 0322681dba..aa802d0106 100644 --- a/src/openrct2/localisation/Currency.cpp +++ b/src/openrct2/localisation/Currency.cpp @@ -22,7 +22,7 @@ currency_descriptor CurrencyDescriptors[CURRENCY_END] = { { "JPY", 1000, CURRENCY_PREFIX, "\xC2\xA5", CURRENCY_SUFFIX, "YEN", STR_YEN }, // Japanese Yen { "ESP", 10, CURRENCY_SUFFIX, "Pts", CURRENCY_SUFFIX, "Pts", STR_PESETA }, // Spanish Peseta { "ITL", 1000, CURRENCY_PREFIX, "L", CURRENCY_PREFIX, "L", STR_LIRA }, // Italian Lira - { "NLG", 10, CURRENCY_PREFIX, "\xC6\x92", CURRENCY_PREFIX, "fl.", STR_GUILDERS }, // Dutch Guilder + { "NLG", 10, CURRENCY_PREFIX, "\xC6\x92 ", CURRENCY_PREFIX, "fl.", STR_GUILDERS }, // Dutch Guilder { "SEK", 10, CURRENCY_SUFFIX, " kr", CURRENCY_SUFFIX, " kr", STR_KRONA }, // Swedish Krona { "EUR", 10, CURRENCY_PREFIX, "\xE2\x82\xAC", CURRENCY_SUFFIX, "EUR", STR_EUROS }, // Euro { "KRW", 10000, CURRENCY_PREFIX, "\xE2\x82\xA9", CURRENCY_PREFIX, "W", STR_WON }, // South Korean Won diff --git a/src/openrct2/localisation/FormatCodes.h b/src/openrct2/localisation/FormatCodes.h index 5443702f96..bd2f997360 100644 --- a/src/openrct2/localisation/FormatCodes.h +++ b/src/openrct2/localisation/FormatCodes.h @@ -179,6 +179,11 @@ enum UnicodePolish UNICODE_Z_ACUTE = 378, }; +enum UnicodeCatalan +{ + UNICODE_INTERPUNCT = 183, +}; + enum UnicodeGerman { UNICODE_CAPITAL_SHARP_S = 0x1E9E, @@ -265,10 +270,28 @@ enum UnicodeCyrillic }; +enum UnicodeTurkish +{ + UNICODE_G_BREVE_UC = 286, + UNICODE_G_BREVE = 287, + UNICODE_I_WITH_DOT_UC = 304, + UNICODE_I_WITHOUT_DOT = 305, + UNICODE_S_CEDILLA_UC = 350, + UNICODE_S_CEDILLA = 351, +}; + enum UnicodeDingbats { UNICODE_DINGBATS_PLUS = 0x2795, UNICODE_DINGBATS_MINUS = 0x2796, }; +enum UnicodeCurrency +{ + UNICODE_GUILDER_SIGN = 402, + + // Not a currency sign, but the guilder sign will be capitalised to this. + UNICODE_F_WITH_HOOK_UC = 401, +}; + #endif diff --git a/src/openrct2/localisation/Language.cpp b/src/openrct2/localisation/Language.cpp index 871bea46d6..0cdbd1ef92 100644 --- a/src/openrct2/localisation/Language.cpp +++ b/src/openrct2/localisation/Language.cpp @@ -43,7 +43,7 @@ const language_descriptor LanguagesDescriptors[LANGUAGE_COUNT] = { "nb-NO", "Norwegian", "Norsk", FAMILY_OPENRCT2_SPRITE, RCT2_LANGUAGE_ID_ENGLISH_UK }, // LANGUAGE_NORWEGIAN { "pl-PL", "Polish", "Polski", FAMILY_OPENRCT2_SPRITE, RCT2_LANGUAGE_ID_ENGLISH_UK }, // LANGUAGE_POLISH { "pt-BR", "Portuguese (BR)", u8"Português (BR)", FAMILY_OPENRCT2_SPRITE, RCT2_LANGUAGE_ID_PORTUGUESE }, // LANGUAGE_PORTUGUESE_BR - { "ru-RU", "Russian", "Russian", FAMILY_OPENRCT2_SPRITE, RCT2_LANGUAGE_ID_ENGLISH_UK }, // LANGUAGE_RUSSIAN + { "ru-RU", "Russian", u8"Русский", FAMILY_OPENRCT2_SPRITE, RCT2_LANGUAGE_ID_ENGLISH_UK }, // LANGUAGE_RUSSIAN { "fi-FI", "Finnish", "Suomi", FAMILY_OPENRCT2_SPRITE, RCT2_LANGUAGE_ID_ENGLISH_UK }, // LANGUAGE_FINNISH { "sv-SE", "Swedish", "Svenska", FAMILY_OPENRCT2_SPRITE, RCT2_LANGUAGE_ID_SWEDISH }, // LANGUAGE_SWEDISH }; diff --git a/src/openrct2/sprites.h b/src/openrct2/sprites.h index bd791b9737..c496b15e4d 100644 --- a/src/openrct2/sprites.h +++ b/src/openrct2/sprites.h @@ -896,7 +896,18 @@ enum SPR_G2_GERMAN_OPENQUOTES = SPR_G2_CHAR_BEGIN + 49, - SPR_G2_CHAR_END = SPR_G2_GERMAN_OPENQUOTES, + SPR_G2_GUILDER_SIGN = SPR_G2_CHAR_BEGIN + 50, + + SPR_G2_G_BREVE_UPPER = SPR_G2_CHAR_BEGIN + 51, + SPR_G2_I_WITH_DOT_UPPER = SPR_G2_CHAR_BEGIN + 52, + SPR_G2_S_CEDILLA_UPPER = SPR_G2_CHAR_BEGIN + 53, + SPR_G2_G_BREVE_LOWER = SPR_G2_CHAR_BEGIN + 54, + SPR_G2_I_WITHOUT_DOT_LOWER = SPR_G2_CHAR_BEGIN + 55, + SPR_G2_S_CEDILLA_LOWER = SPR_G2_CHAR_BEGIN + 56, + + SPR_G2_INTERPUNCT = SPR_G2_CHAR_BEGIN + 57, + + SPR_G2_CHAR_END = SPR_G2_INTERPUNCT, SPR_G2_GLYPH_COUNT = (SPR_G2_CHAR_END - SPR_G2_CHAR_BEGIN) + 1, // 0x60000, chosen because it's a round hex number