1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-20 21:43:06 +01:00

Handle Polish in the RCT2-to-Unicode conversion

Also removed the misidentified A_MINUSCULE and CENT.
This commit is contained in:
Michael Steenbeek
2017-10-09 18:54:47 +02:00
parent 71686e88b5
commit 3c8184dfa1
5 changed files with 51 additions and 39 deletions

View File

@@ -62,10 +62,8 @@ sint32 font_sprite_get_codepoint_offset(sint32 codepoint)
switch (codepoint) {
case FORMAT_ENDQUOTES: return 34 - 32;
case FORMAT_AMINUSCULE: return 159 - 32;
case FORMAT_UP: return 160 - 32;
case FORMAT_SYMBOL_i: return 160 - 32;
case FORMAT_CENT: return 162 - 32;
case FORMAT_POUND: return 163 - 32;
case FORMAT_YEN: return 165 - 32;
@@ -173,10 +171,8 @@ bool font_supports_string_sprite(const utf8 *text)
bool supported = false;
switch (codepoint) {
case FORMAT_ENDQUOTES:
case FORMAT_AMINUSCULE:
case FORMAT_UP:
case FORMAT_SYMBOL_i:
case FORMAT_CENT:
case FORMAT_POUND:
case FORMAT_YEN:
case FORMAT_COPYRIGHT:
@@ -200,6 +196,25 @@ bool font_supports_string_sprite(const utf8 *text)
case FORMAT_SMALLDOWN:
case FORMAT_LEFT:
case FORMAT_INVERTEDQUESTION:
case UNICODE_A_OGONEK_UC:
case UNICODE_C_ACUTE_UC:
case UNICODE_E_OGONEK_UC:
case UNICODE_N_ACUTE_UC:
case UNICODE_L_STROKE_UC:
case UNICODE_S_ACUTE_UC:
case UNICODE_Z_DOT_UC:
case UNICODE_Z_ACUTE_UC:
case UNICODE_A_OGONEK:
case UNICODE_C_ACUTE:
case UNICODE_E_OGONEK:
case UNICODE_N_ACUTE:
case UNICODE_L_STROKE:
case UNICODE_S_ACUTE:
case UNICODE_Z_DOT:
case UNICODE_Z_ACUTE:
supported = true;
break;
default:

View File

@@ -269,15 +269,15 @@ static const encoding_convert_entry RCT2ToUnicodeTable[256] = {
{ 156, 156 },
{ 157, 157 },
{ 158, 158 },
{ 159, FORMAT_AMINUSCULE },
{ RCT2_A_OGONEK_UC, UNICODE_A_OGONEK_UC },
{ 160, FORMAT_UP },
{ 161, FORMAT_SYMBOL_i },
{ 162, 162 },
{ RCT2_C_ACUTE_UC, UNICODE_C_ACUTE_UC },
{ 163, FORMAT_POUND },
{ 164, 164 },
{ 165, FORMAT_YEN },
{ 166, 166 },
{ 167, 167 },
{ RCT2_E_OGONEK_UC, UNICODE_E_OGONEK_UC },
{ RCT2_L_STROKE_UC, UNICODE_L_STROKE_UC },
{ 168, 168 },
{ 169, FORMAT_COPYRIGHT },
{ 170, FORMAT_DOWN },
@@ -308,7 +308,7 @@ static const encoding_convert_entry RCT2ToUnicodeTable[256] = {
{ 195, 195 },
{ 196, 196 },
{ 197, 197 },
{ 198, 198 },
{ RCT2_N_ACUTE_UC, UNICODE_N_ACUTE_UC },
{ 199, 199 },
{ 200, 200 },
{ 201, 201 },
@@ -318,21 +318,21 @@ static const encoding_convert_entry RCT2ToUnicodeTable[256] = {
{ 205, 205 },
{ 206, 206 },
{ 207, 207 },
{ 208, 208 },
{ RCT2_S_ACUTE_UC, UNICODE_S_ACUTE_UC },
{ 209, 209 },
{ 210, 210 },
{ 211, 211 },
{ 212, 212 },
{ 213, 213 },
{ 214, 214 },
{ 215, 215 },
{ 216, 216 },
{ RCT2_Z_ACUTE_UC, UNICODE_Z_ACUTE_UC },
{ RCT2_Z_DOT_UC, UNICODE_Z_DOT_UC },
{ 217, 217 },
{ 218, 218 },
{ 219, 219 },
{ 220, 220 },
{ 221, 221 },
{ 222, 222 },
{ RCT2_A_OGONEK, UNICODE_A_OGONEK },
{ RCT2_C_ACUTE, UNICODE_C_ACUTE },
{ 223, 223 },
{ 224, 224 },
{ 225, 225 },
@@ -340,7 +340,7 @@ static const encoding_convert_entry RCT2ToUnicodeTable[256] = {
{ 227, 227 },
{ 228, 228 },
{ 229, 229 },
{ 230, 230 },
{ RCT2_E_OGONEK, UNICODE_E_OGONEK },
{ 231, 231 },
{ 232, 232 },
{ 233, 233 },
@@ -350,21 +350,21 @@ static const encoding_convert_entry RCT2ToUnicodeTable[256] = {
{ 237, 237 },
{ 238, 238 },
{ 239, 239 },
{ 240, 240 },
{ RCT2_N_ACUTE, UNICODE_N_ACUTE },
{ 241, 241 },
{ 242, 242 },
{ 243, 243 },
{ 244, 244 },
{ 245, 245 },
{ 246, 246 },
{ 247, 247 },
{ 248, 248 },
{ RCT2_L_STROKE, UNICODE_L_STROKE },
{ RCT2_S_ACUTE, UNICODE_S_ACUTE },
{ 249, 249 },
{ 250, 250 },
{ 251, 251 },
{ 252, 252 },
{ 253, 253 },
{ 254, 254 },
{ RCT2_Z_DOT, UNICODE_Z_DOT },
{ RCT2_Z_ACUTE, UNICODE_Z_ACUTE },
{ 255, 255 }
};

View File

@@ -75,7 +75,6 @@ static const format_code_token format_code_tokens[] = {
{ FORMAT_LIGHTPINK, "LIGHTPINK" },
{ FORMAT_PEARLAQUA, "PEARLAQUA" },
{ FORMAT_PALESILVER, "PALESILVER" },
{ FORMAT_AMINUSCULE, "AMINUSCULE" },
{ FORMAT_UP, "UP" },
{ FORMAT_POUND, "POUND" },
{ FORMAT_YEN, "YEN" },

View File

@@ -102,8 +102,6 @@ enum {
FORMAT_COLOUR_CODE_END = FORMAT_PALESILVER,
// Extra non-ASCII characters
FORMAT_AMINUSCULE = 159,
FORMAT_CENT = 162,
FORMAT_POUND = 163,
FORMAT_YEN = 165,
FORMAT_COPYRIGHT = 169,

View File

@@ -30,23 +30,23 @@ extern "C" {
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_UC = 159, // 0x9F
RCT2_C_ACUTE_UC = 162, // 0xA2
RCT2_E_OGONEK_UC = 166, // 0xA6
RCT2_N_ACUTE_UC = 198, // 0xC6
RCT2_L_STROKE_UC = 167, // 0xA7
RCT2_S_ACUTE_UC = 208, // 0xD0
RCT2_Z_DOT_UC = 216, // 0xD8
RCT2_Z_ACUTE_UC = 215, // 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,
RCT2_A_OGONEK = 221, // 0xDD
RCT2_C_ACUTE = 222, // 0xDE
RCT2_E_OGONEK = 230, // 0xE6
RCT2_N_ACUTE = 240, // 0xF0
RCT2_L_STROKE = 247, // 0xF7
RCT2_S_ACUTE = 248, // 0xF8
RCT2_Z_DOT = 253, // 0xFD
RCT2_Z_ACUTE = 254, // 0xFE
}
RCT2Polish;