Use Morrowind's fonts

This commit is contained in:
scrawl 2013-06-06 22:13:30 +02:00
parent 8bd712cc95
commit daab4f55a3
17 changed files with 579 additions and 70 deletions

View file

@ -46,7 +46,7 @@ void writeMissing(bool last)
int write_table(const std::string &charset, const std::string &tableName)
{
// Write table header
cout << "static char " << tableName << "[] =\n{\n";
cout << "static signed char " << tableName << "[] =\n{\n";
// Open conversion system
iconv_t cd = iconv_open ("UTF-8", charset.c_str());
@ -106,6 +106,8 @@ int main()
"\n";
write_table("WINDOWS-1252", "windows_1252");
write_table("CP437", "cp437");
// Close namespace
cout << "\n}\n\n";

View file

@ -790,6 +790,265 @@ static signed char windows_1252[] =
2, -61, -66, 0, 0, 0,
2, -61, -65, 0, 0, 0
};
static signed char cp437[] =
{
1, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0,
1, 2, 0, 0, 0, 0,
1, 3, 0, 0, 0, 0,
1, 4, 0, 0, 0, 0,
1, 5, 0, 0, 0, 0,
1, 6, 0, 0, 0, 0,
1, 7, 0, 0, 0, 0,
1, 8, 0, 0, 0, 0,
1, 9, 0, 0, 0, 0,
1, 10, 0, 0, 0, 0,
1, 11, 0, 0, 0, 0,
1, 12, 0, 0, 0, 0,
1, 13, 0, 0, 0, 0,
1, 14, 0, 0, 0, 0,
1, 15, 0, 0, 0, 0,
1, 16, 0, 0, 0, 0,
1, 17, 0, 0, 0, 0,
1, 18, 0, 0, 0, 0,
1, 19, 0, 0, 0, 0,
1, 20, 0, 0, 0, 0,
1, 21, 0, 0, 0, 0,
1, 22, 0, 0, 0, 0,
1, 23, 0, 0, 0, 0,
1, 24, 0, 0, 0, 0,
1, 25, 0, 0, 0, 0,
1, 26, 0, 0, 0, 0,
1, 27, 0, 0, 0, 0,
1, 28, 0, 0, 0, 0,
1, 29, 0, 0, 0, 0,
1, 30, 0, 0, 0, 0,
1, 31, 0, 0, 0, 0,
1, 32, 0, 0, 0, 0,
1, 33, 0, 0, 0, 0,
1, 34, 0, 0, 0, 0,
1, 35, 0, 0, 0, 0,
1, 36, 0, 0, 0, 0,
1, 37, 0, 0, 0, 0,
1, 38, 0, 0, 0, 0,
1, 39, 0, 0, 0, 0,
1, 40, 0, 0, 0, 0,
1, 41, 0, 0, 0, 0,
1, 42, 0, 0, 0, 0,
1, 43, 0, 0, 0, 0,
1, 44, 0, 0, 0, 0,
1, 45, 0, 0, 0, 0,
1, 46, 0, 0, 0, 0,
1, 47, 0, 0, 0, 0,
1, 48, 0, 0, 0, 0,
1, 49, 0, 0, 0, 0,
1, 50, 0, 0, 0, 0,
1, 51, 0, 0, 0, 0,
1, 52, 0, 0, 0, 0,
1, 53, 0, 0, 0, 0,
1, 54, 0, 0, 0, 0,
1, 55, 0, 0, 0, 0,
1, 56, 0, 0, 0, 0,
1, 57, 0, 0, 0, 0,
1, 58, 0, 0, 0, 0,
1, 59, 0, 0, 0, 0,
1, 60, 0, 0, 0, 0,
1, 61, 0, 0, 0, 0,
1, 62, 0, 0, 0, 0,
1, 63, 0, 0, 0, 0,
1, 64, 0, 0, 0, 0,
1, 65, 0, 0, 0, 0,
1, 66, 0, 0, 0, 0,
1, 67, 0, 0, 0, 0,
1, 68, 0, 0, 0, 0,
1, 69, 0, 0, 0, 0,
1, 70, 0, 0, 0, 0,
1, 71, 0, 0, 0, 0,
1, 72, 0, 0, 0, 0,
1, 73, 0, 0, 0, 0,
1, 74, 0, 0, 0, 0,
1, 75, 0, 0, 0, 0,
1, 76, 0, 0, 0, 0,
1, 77, 0, 0, 0, 0,
1, 78, 0, 0, 0, 0,
1, 79, 0, 0, 0, 0,
1, 80, 0, 0, 0, 0,
1, 81, 0, 0, 0, 0,
1, 82, 0, 0, 0, 0,
1, 83, 0, 0, 0, 0,
1, 84, 0, 0, 0, 0,
1, 85, 0, 0, 0, 0,
1, 86, 0, 0, 0, 0,
1, 87, 0, 0, 0, 0,
1, 88, 0, 0, 0, 0,
1, 89, 0, 0, 0, 0,
1, 90, 0, 0, 0, 0,
1, 91, 0, 0, 0, 0,
1, 92, 0, 0, 0, 0,
1, 93, 0, 0, 0, 0,
1, 94, 0, 0, 0, 0,
1, 95, 0, 0, 0, 0,
1, 96, 0, 0, 0, 0,
1, 97, 0, 0, 0, 0,
1, 98, 0, 0, 0, 0,
1, 99, 0, 0, 0, 0,
1, 100, 0, 0, 0, 0,
1, 101, 0, 0, 0, 0,
1, 102, 0, 0, 0, 0,
1, 103, 0, 0, 0, 0,
1, 104, 0, 0, 0, 0,
1, 105, 0, 0, 0, 0,
1, 106, 0, 0, 0, 0,
1, 107, 0, 0, 0, 0,
1, 108, 0, 0, 0, 0,
1, 109, 0, 0, 0, 0,
1, 110, 0, 0, 0, 0,
1, 111, 0, 0, 0, 0,
1, 112, 0, 0, 0, 0,
1, 113, 0, 0, 0, 0,
1, 114, 0, 0, 0, 0,
1, 115, 0, 0, 0, 0,
1, 116, 0, 0, 0, 0,
1, 117, 0, 0, 0, 0,
1, 118, 0, 0, 0, 0,
1, 119, 0, 0, 0, 0,
1, 120, 0, 0, 0, 0,
1, 121, 0, 0, 0, 0,
1, 122, 0, 0, 0, 0,
1, 123, 0, 0, 0, 0,
1, 124, 0, 0, 0, 0,
1, 125, 0, 0, 0, 0,
1, 126, 0, 0, 0, 0,
1, 127, 0, 0, 0, 0,
2, -61, -121, 0, 0, 0,
2, -61, -68, 0, 0, 0,
2, -61, -87, 0, 0, 0,
2, -61, -94, 0, 0, 0,
2, -61, -92, 0, 0, 0,
2, -61, -96, 0, 0, 0,
2, -61, -91, 0, 0, 0,
2, -61, -89, 0, 0, 0,
2, -61, -86, 0, 0, 0,
2, -61, -85, 0, 0, 0,
2, -61, -88, 0, 0, 0,
2, -61, -81, 0, 0, 0,
2, -61, -82, 0, 0, 0,
2, -61, -84, 0, 0, 0,
2, -61, -124, 0, 0, 0,
2, -61, -123, 0, 0, 0,
2, -61, -119, 0, 0, 0,
2, -61, -90, 0, 0, 0,
2, -61, -122, 0, 0, 0,
2, -61, -76, 0, 0, 0,
2, -61, -74, 0, 0, 0,
2, -61, -78, 0, 0, 0,
2, -61, -69, 0, 0, 0,
2, -61, -71, 0, 0, 0,
2, -61, -65, 0, 0, 0,
2, -61, -106, 0, 0, 0,
2, -61, -100, 0, 0, 0,
2, -62, -94, 0, 0, 0,
2, -62, -93, 0, 0, 0,
2, -62, -91, 0, 0, 0,
3, -30, -126, -89, 0, 0,
2, -58, -110, 0, 0, 0,
2, -61, -95, 0, 0, 0,
2, -61, -83, 0, 0, 0,
2, -61, -77, 0, 0, 0,
2, -61, -70, 0, 0, 0,
2, -61, -79, 0, 0, 0,
2, -61, -111, 0, 0, 0,
2, -62, -86, 0, 0, 0,
2, -62, -70, 0, 0, 0,
2, -62, -65, 0, 0, 0,
3, -30, -116, -112, 0, 0,
2, -62, -84, 0, 0, 0,
2, -62, -67, 0, 0, 0,
2, -62, -68, 0, 0, 0,
2, -62, -95, 0, 0, 0,
2, -62, -85, 0, 0, 0,
2, -62, -69, 0, 0, 0,
3, -30, -106, -111, 0, 0,
3, -30, -106, -110, 0, 0,
3, -30, -106, -109, 0, 0,
3, -30, -108, -126, 0, 0,
3, -30, -108, -92, 0, 0,
3, -30, -107, -95, 0, 0,
3, -30, -107, -94, 0, 0,
3, -30, -107, -106, 0, 0,
3, -30, -107, -107, 0, 0,
3, -30, -107, -93, 0, 0,
3, -30, -107, -111, 0, 0,
3, -30, -107, -105, 0, 0,
3, -30, -107, -99, 0, 0,
3, -30, -107, -100, 0, 0,
3, -30, -107, -101, 0, 0,
3, -30, -108, -112, 0, 0,
3, -30, -108, -108, 0, 0,
3, -30, -108, -76, 0, 0,
3, -30, -108, -84, 0, 0,
3, -30, -108, -100, 0, 0,
3, -30, -108, -128, 0, 0,
3, -30, -108, -68, 0, 0,
3, -30, -107, -98, 0, 0,
3, -30, -107, -97, 0, 0,
3, -30, -107, -102, 0, 0,
3, -30, -107, -108, 0, 0,
3, -30, -107, -87, 0, 0,
3, -30, -107, -90, 0, 0,
3, -30, -107, -96, 0, 0,
3, -30, -107, -112, 0, 0,
3, -30, -107, -84, 0, 0,
3, -30, -107, -89, 0, 0,
3, -30, -107, -88, 0, 0,
3, -30, -107, -92, 0, 0,
3, -30, -107, -91, 0, 0,
3, -30, -107, -103, 0, 0,
3, -30, -107, -104, 0, 0,
3, -30, -107, -110, 0, 0,
3, -30, -107, -109, 0, 0,
3, -30, -107, -85, 0, 0,
3, -30, -107, -86, 0, 0,
3, -30, -108, -104, 0, 0,
3, -30, -108, -116, 0, 0,
3, -30, -106, -120, 0, 0,
3, -30, -106, -124, 0, 0,
3, -30, -106, -116, 0, 0,
3, -30, -106, -112, 0, 0,
3, -30, -106, -128, 0, 0,
2, -50, -79, 0, 0, 0,
2, -61, -97, 0, 0, 0,
2, -50, -109, 0, 0, 0,
2, -49, -128, 0, 0, 0,
2, -50, -93, 0, 0, 0,
2, -49, -125, 0, 0, 0,
2, -62, -75, 0, 0, 0,
2, -49, -124, 0, 0, 0,
2, -50, -90, 0, 0, 0,
2, -50, -104, 0, 0, 0,
2, -50, -87, 0, 0, 0,
2, -50, -76, 0, 0, 0,
3, -30, -120, -98, 0, 0,
2, -49, -122, 0, 0, 0,
2, -50, -75, 0, 0, 0,
3, -30, -120, -87, 0, 0,
3, -30, -119, -95, 0, 0,
2, -62, -79, 0, 0, 0,
3, -30, -119, -91, 0, 0,
3, -30, -119, -92, 0, 0,
3, -30, -116, -96, 0, 0,
3, -30, -116, -95, 0, 0,
2, -61, -73, 0, 0, 0,
3, -30, -119, -120, 0, 0,
2, -62, -80, 0, 0, 0,
3, -30, -120, -103, 0, 0,
2, -62, -73, 0, 0, 0,
3, -30, -120, -102, 0, 0,
3, -30, -127, -65, 0, 0,
2, -62, -78, 0, 0, 0,
3, -30, -106, -96, 0, 0,
2, -62, -96, 0, 0, 0
};
}

View file

@ -63,6 +63,12 @@ Utf8Encoder::Utf8Encoder(const FromType sourceEncoding):
translationArray = ToUTF8::windows_1251;
break;
}
case ToUTF8::CP437:
{
translationArray = ToUTF8::cp437;
break;
}
default:
{
assert(0);

View file

@ -12,8 +12,9 @@ namespace ToUTF8
{
WINDOWS_1250, // Central ane Eastern European languages
WINDOWS_1251, // Cyrillic languages
WINDOWS_1252 // Used by English version of Morrowind (and
WINDOWS_1252, // Used by English version of Morrowind (and
// probably others)
CP437 // Used for fonts (*.fnt) if data files encoding is 1252. Otherwise, uses the same encoding as the data files.
};
FromType calculateEncoding(const std::string& encodingName);