- fix for Greek uppercase-only fonts.

In Greek for all-caps text there *must* not be any accents. As such, all accented characters now contain a default remap to the unaccented version and the accented characters in the already converted Doom Small and BigFont have been removed as these are all-caps fonts. Doom BigUpper still requires investigation how Smallcaps fonts need to be handled.
This commit is contained in:
Christoph Oelckers 2020-02-15 23:32:52 +01:00
parent 08e86b5bcc
commit 7a86e7f043
20 changed files with 12 additions and 0 deletions

View file

@ -895,7 +895,9 @@ int getAlternative(int code)
case 0x21b: case 0x21b:
return 0x163; return 0x163;
// Greek characters with equivalents in either Latin or Cyrillic. This is only suitable for uppercase fonts! // Greek characters with equivalents in either Latin or Cyrillic. This is only suitable for uppercase fonts!
case 0x386:
case 0x391: case 0x391:
return 'A'; return 'A';
@ -905,15 +907,18 @@ int getAlternative(int code)
case 0x393: case 0x393:
return 0x413; return 0x413;
case 0x388:
case 0x395: case 0x395:
return 'E'; return 'E';
case 0x396: case 0x396:
return 'Z'; return 'Z';
case 0x389:
case 0x397: case 0x397:
return 'H'; return 'H';
case 0x38a:
case 0x399: case 0x399:
return 'I'; return 'I';
@ -926,6 +931,7 @@ int getAlternative(int code)
case 0x39d: case 0x39d:
return 'N'; return 'N';
case 0x38c:
case 0x39f: case 0x39f:
return 'O'; return 'O';
@ -938,6 +944,7 @@ int getAlternative(int code)
case 0x3a4: case 0x3a4:
return 'T'; return 'T';
case 0x38e:
case 0x3a5: case 0x3a5:
return 'Y'; return 'Y';
@ -947,15 +954,20 @@ int getAlternative(int code)
case 0x3a7: case 0x3a7:
return 'X'; return 'X';
case 0x390:
case 0x3aa: case 0x3aa:
return 0xcf; return 0xcf;
case 0x3b0:
case 0x3ab: case 0x3ab:
return 0x178; return 0x178;
case 0x3bf: case 0x3bf:
return 'o'; return 'o';
case 0x38f: // Greek capital omega with tonos.
return 0x3a9;
case 0x3c2: case 0x3c2:
return 0x3c3; // Lowercase Sigma character in Greek, which changes depending on its positioning in a word; if the font is uppercase only or features a smallcaps style, the second variant of the letter will remain unused return 0x3c3; // Lowercase Sigma character in Greek, which changes depending on its positioning in a word; if the font is uppercase only or features a smallcaps style, the second variant of the letter will remain unused