From 71686e88b5b3fd048d9c2e42714a6e3caaabe926 Mon Sep 17 00:00:00 2001 From: Michael Steenbeek Date: Mon, 9 Oct 2017 17:34:04 +0200 Subject: [PATCH] Render Polish with the sprite font Fixes the sprite lookup table for the Polish characters. Switches the font settings for Polish from TTF to sprite. --- src/openrct2/drawing/font.c | 19 ++++++++++ src/openrct2/localisation/Language.cpp | 2 +- src/openrct2/localisation/localisation.h | 44 ++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/openrct2/drawing/font.c b/src/openrct2/drawing/font.c index 485d7f4ff8..44be53586c 100644 --- a/src/openrct2/drawing/font.c +++ b/src/openrct2/drawing/font.c @@ -95,6 +95,25 @@ sint32 font_sprite_get_codepoint_offset(sint32 codepoint) case FORMAT_SMALLDOWN: return 189 - 32; case FORMAT_LEFT: return 190 - 32; case FORMAT_INVERTEDQUESTION: return 191 - 32; + + case UNICODE_A_OGONEK_UC: return RCT2_A_OGONEK_UC - 32; + case UNICODE_C_ACUTE_UC: return RCT2_C_ACUTE_UC - 32; + case UNICODE_E_OGONEK_UC: return RCT2_E_OGONEK_UC - 32; + case UNICODE_N_ACUTE_UC: return RCT2_N_ACUTE_UC - 32; + case UNICODE_L_STROKE_UC: return RCT2_L_STROKE_UC - 32; + case UNICODE_S_ACUTE_UC: return RCT2_S_ACUTE_UC - 32; + case UNICODE_Z_DOT_UC: return RCT2_Z_DOT_UC - 32; + case UNICODE_Z_ACUTE_UC: return RCT2_Z_ACUTE_UC - 32; + + case UNICODE_A_OGONEK: return RCT2_A_OGONEK - 32; + case UNICODE_C_ACUTE: return RCT2_C_ACUTE - 32; + case UNICODE_E_OGONEK: return RCT2_E_OGONEK - 32; + case UNICODE_N_ACUTE: return RCT2_N_ACUTE - 32; + case UNICODE_L_STROKE: return RCT2_L_STROKE - 32; + case UNICODE_S_ACUTE: return RCT2_S_ACUTE - 32; + case UNICODE_Z_DOT: return RCT2_Z_DOT - 32; + case UNICODE_Z_ACUTE: return RCT2_Z_ACUTE - 32; + default: if (codepoint < 32 || codepoint >= 256) codepoint = '?'; return codepoint - 32; diff --git a/src/openrct2/localisation/Language.cpp b/src/openrct2/localisation/Language.cpp index 83f7ea4e12..d21b75d1aa 100644 --- a/src/openrct2/localisation/Language.cpp +++ b/src/openrct2/localisation/Language.cpp @@ -45,7 +45,7 @@ const language_descriptor LanguagesDescriptors[LANGUAGE_COUNT] = { { "hu-HU", "Hungarian", "Magyar", FONT_OPENRCT2_SPRITE, RCT2_LANGUAGE_ID_ENGLISH_UK }, // LANGUAGE_HUNGARIAN { "nl-NL", "Dutch", "Nederlands", FONT_OPENRCT2_SPRITE, RCT2_LANGUAGE_ID_DUTCH }, // LANGUAGE_DUTCH { "nb-NO", "Norwegian", "Norsk", FONT_OPENRCT2_SPRITE, RCT2_LANGUAGE_ID_ENGLISH_UK }, // LANGUAGE_NORWEGIAN - { "pl-PL", "Polish", "Polski", FONT(&TTFFontArial), RCT2_LANGUAGE_ID_ENGLISH_UK }, // LANGUAGE_POLISH + { "pl-PL", "Polish", "Polski", FONT_OPENRCT2_SPRITE, RCT2_LANGUAGE_ID_ENGLISH_UK }, // LANGUAGE_POLISH { "pt-BR", "Portuguese (BR)", u8"Português (BR)", FONT_OPENRCT2_SPRITE, RCT2_LANGUAGE_ID_PORTUGUESE }, // LANGUAGE_PORTUGUESE_BR { "ru-RU", "Russian", "Russian", FONT(&TTFFontArial), RCT2_LANGUAGE_ID_ENGLISH_UK }, // LANGUAGE_RUSSIAN { "fi-FI", "Finnish", "Suomi", FONT_OPENRCT2_SPRITE, RCT2_LANGUAGE_ID_ENGLISH_UK }, // LANGUAGE_FINNISH diff --git a/src/openrct2/localisation/localisation.h b/src/openrct2/localisation/localisation.h index 06a9dbf277..9a10b0b447 100644 --- a/src/openrct2/localisation/localisation.h +++ b/src/openrct2/localisation/localisation.h @@ -28,6 +28,50 @@ extern "C" { #endif +typedef enum RCT2Polish +{ + RCT2_A_OGONEK_UC = 0x9F, + RCT2_C_ACUTE_UC = 0xA2, + RCT2_E_OGONEK_UC = 0xA6, + RCT2_N_ACUTE_UC = 0xC6, + RCT2_L_STROKE_UC = 0xA7, + RCT2_S_ACUTE_UC = 0xD0, + RCT2_Z_DOT_UC = 0xD8, + RCT2_Z_ACUTE_UC = 0xD7, + + RCT2_A_OGONEK = 0xDD, + RCT2_C_ACUTE = 0xDE, + RCT2_E_OGONEK = 0xE6, + RCT2_N_ACUTE = 0xF0, + RCT2_L_STROKE = 0xF7, + RCT2_S_ACUTE = 0xF8, + RCT2_Z_DOT = 0xFD, + RCT2_Z_ACUTE = 0xFE, +} +RCT2Polish; + +typedef enum UnicodePolish +{ + UNICODE_A_OGONEK_UC = 260, + UNICODE_C_ACUTE_UC = 262, + UNICODE_E_OGONEK_UC = 280, + UNICODE_N_ACUTE_UC = 323, + UNICODE_L_STROKE_UC = 321, + UNICODE_S_ACUTE_UC = 346, + UNICODE_Z_DOT_UC = 379, + UNICODE_Z_ACUTE_UC = 377, + + UNICODE_A_OGONEK = 261, + UNICODE_C_ACUTE = 263, + UNICODE_E_OGONEK = 281, + UNICODE_N_ACUTE = 324, + UNICODE_L_STROKE = 322, + UNICODE_S_ACUTE = 347, + UNICODE_Z_DOT = 380, + UNICODE_Z_ACUTE = 378, +} +UnicodePolish; + bool utf8_is_format_code(sint32 codepoint); bool utf8_is_colour_code(sint32 codepoint); bool utf8_should_use_sprite_for_codepoint(sint32 codepoint);