Do hankaku-zenkaku conversion after Unicode conversion

As a bonus, Unicode character literal syntax can be used now.
This commit is contained in:
kichikuou
2021-09-04 10:42:16 +09:00
parent ddd1be04ef
commit d3c89aa697
2 changed files with 338 additions and 337 deletions
+338 -335
View File
@@ -9,7 +9,341 @@
#include "utfsjis.h"
#include "texthook.h"
static bool antialias = true;
namespace {
bool antialias = true;
int convert_to_zenkaku(int code)
{
switch(code) {
case u' ': return u' ';
case u'!': return u'!';
case u'"': return u'”';
case u'#': return u'#';
case u'$': return u'$';
case u'%': return u'%';
case u'&': return u'&';
case u'\'': return u'’';
case u'(': return u'(';
case u')': return u')';
case u'*': return u'*';
case u'+': return u'+';
case u',': return u',';
case u'-': return u'-';
case u'.': return u'.';
case u'/': return u'/';
case u'0': return u'0';
case u'1': return u'1';
case u'2': return u'2';
case u'3': return u'3';
case u'4': return u'4';
case u'5': return u'5';
case u'6': return u'6';
case u'7': return u'7';
case u'8': return u'8';
case u'9': return u'9';
case u':': return u':';
case u';': return u';';
case u'<': return u'<';
case u'=': return u'=';
case u'>': return u'>';
case u'?': return u'?';
case u'@': return u'@';
case u'A': return u'A';
case u'B': return u'B';
case u'C': return u'C';
case u'D': return u'D';
case u'E': return u'E';
case u'F': return u'F';
case u'G': return u'G';
case u'H': return u'H';
case u'I': return u'I';
case u'J': return u'J';
case u'K': return u'K';
case u'L': return u'L';
case u'M': return u'M';
case u'N': return u'N';
case u'O': return u'O';
case u'P': return u'P';
case u'Q': return u'Q';
case u'R': return u'R';
case u'S': return u'S';
case u'T': return u'T';
case u'U': return u'U';
case u'V': return u'V';
case u'W': return u'W';
case u'X': return u'X';
case u'Y': return u'Y';
case u'Z': return u'Z';
case u'[': return u'[';
case u'\\': return u'¥';
case u']': return u']';
case u'^': return u'^';
case u'_': return u'_';
case u'`': return u'‘';
case u'a': return u'a';
case u'b': return u'b';
case u'c': return u'c';
case u'd': return u'd';
case u'e': return u'e';
case u'f': return u'f';
case u'g': return u'g';
case u'h': return u'h';
case u'i': return u'i';
case u'j': return u'j';
case u'k': return u'k';
case u'l': return u'l';
case u'm': return u'm';
case u'n': return u'n';
case u'o': return u'o';
case u'p': return u'p';
case u'q': return u'q';
case u'r': return u'r';
case u's': return u's';
case u't': return u't';
case u'u': return u'u';
case u'v': return u'v';
case u'w': return u'w';
case u'x': return u'x';
case u'y': return u'y';
case u'z': return u'z';
case u'{': return u'{';
case u'|': return u'|';
case u'}': return u'}';
case u'~': return u'~';
case u'。': return u'。';
case u'「': return u'「';
case u'」': return u'」';
case u'、': return u'、';
case u'・': return u'・';
case u'ヲ': return u'を';
case u'ァ': return u'ぁ';
case u'ィ': return u'ぃ';
case u'ゥ': return u'ぅ';
case u'ェ': return u'ぇ';
case u'ォ': return u'ぉ';
case u'ャ': return u'ゃ';
case u'ュ': return u'ゅ';
case u'ョ': return u'ょ';
case u'ッ': return u'っ';
case u'ー': return u'ー';
case u'ア': return u'あ';
case u'イ': return u'い';
case u'ウ': return u'う';
case u'エ': return u'え';
case u'オ': return u'お';
case u'カ': return u'か';
case u'キ': return u'き';
case u'ク': return u'く';
case u'ケ': return u'け';
case u'コ': return u'こ';
case u'サ': return u'さ';
case u'シ': return u'し';
case u'ス': return u'す';
case u'セ': return u'せ';
case u'ソ': return u'そ';
case u'タ': return u'た';
case u'チ': return u'ち';
case u'ツ': return u'つ';
case u'テ': return u'て';
case u'ト': return u'と';
case u'ナ': return u'な';
case u'ニ': return u'に';
case u'ヌ': return u'ぬ';
case u'ネ': return u'ね';
case u'ノ': return u'の';
case u'ハ': return u'は';
case u'ヒ': return u'ひ';
case u'フ': return u'ふ';
case u'ヘ': return u'へ';
case u'ホ': return u'ほ';
case u'マ': return u'ま';
case u'ミ': return u'み';
case u'ム': return u'む';
case u'メ': return u'め';
case u'モ': return u'も';
case u'ヤ': return u'や';
case u'ユ': return u'ゆ';
case u'ヨ': return u'よ';
case u'ラ': return u'ら';
case u'リ': return u'り';
case u'ル': return u'る';
case u'レ': return u'れ';
case u'ロ': return u'ろ';
case u'ワ': return u'わ';
case u'ン': return u'ん';
case u'゙': return u'゛';
case u'゚': return u'゜';
}
return code;
}
int convert_to_hankaku(int code)
{
switch(code) {
case u' ': return u' ';
case u'!': return u'!';
case u'”': return u'"';
case u'#': return u'#';
case u'$': return u'$';
case u'%': return u'%';
case u'&': return u'&';
case u'’': return u'\'';
case u'(': return u'(';
case u')': return u')';
case u'*': return u'*';
case u'+': return u'+';
case u',': return u',';
case u'-': return u'-';
case u'.': return u'.';
case u'/': return u'/';
case u'0': return u'0';
case u'1': return u'1';
case u'2': return u'2';
case u'3': return u'3';
case u'4': return u'4';
case u'5': return u'5';
case u'6': return u'6';
case u'7': return u'7';
case u'8': return u'8';
case u'9': return u'9';
case u':': return u':';
case u';': return u';';
case u'<': return u'<';
case u'=': return u'=';
case u'>': return u'>';
case u'?': return u'?';
case u'@': return u'@';
case u'A': return u'A';
case u'B': return u'B';
case u'C': return u'C';
case u'D': return u'D';
case u'E': return u'E';
case u'F': return u'F';
case u'G': return u'G';
case u'H': return u'H';
case u'I': return u'I';
case u'J': return u'J';
case u'K': return u'K';
case u'L': return u'L';
case u'M': return u'M';
case u'N': return u'N';
case u'O': return u'O';
case u'P': return u'P';
case u'Q': return u'Q';
case u'R': return u'R';
case u'S': return u'S';
case u'T': return u'T';
case u'U': return u'U';
case u'V': return u'V';
case u'W': return u'W';
case u'X': return u'X';
case u'Y': return u'Y';
case u'Z': return u'Z';
case u'[': return u'[';
case u'¥': return u'\\';
case u']': return u']';
case u'^': return u'^';
case u'_': return u'_';
case u'‘': return u'`';
case u'a': return u'a';
case u'b': return u'b';
case u'c': return u'c';
case u'd': return u'd';
case u'e': return u'e';
case u'f': return u'f';
case u'g': return u'g';
case u'h': return u'h';
case u'i': return u'i';
case u'j': return u'j';
case u'k': return u'k';
case u'l': return u'l';
case u'm': return u'm';
case u'n': return u'n';
case u'o': return u'o';
case u'p': return u'p';
case u'q': return u'q';
case u'r': return u'r';
case u's': return u's';
case u't': return u't';
case u'u': return u'u';
case u'v': return u'v';
case u'w': return u'w';
case u'x': return u'x';
case u'y': return u'y';
case u'z': return u'z';
case u'{': return u'{';
case u'|': return u'|';
case u'}': return u'}';
case u'~': return u'~';
case u'。': return u'。';
case u'「': return u'「';
case u'」': return u'」';
case u'、': return u'、';
case u'・': return u'・';
case u'を': return u'ヲ';
case u'ぁ': return u'ァ';
case u'ぃ': return u'ィ';
case u'ぅ': return u'ゥ';
case u'ぇ': return u'ェ';
case u'ぉ': return u'ォ';
case u'ゃ': return u'ャ';
case u'ゅ': return u'ュ';
case u'ょ': return u'ョ';
case u'っ': return u'ッ';
case u'ー': return u'ー';
case u'あ': return u'ア';
case u'い': return u'イ';
case u'う': return u'ウ';
case u'え': return u'エ';
case u'お': return u'オ';
case u'か': return u'カ';
case u'き': return u'キ';
case u'く': return u'ク';
case u'け': return u'ケ';
case u'こ': return u'コ';
case u'さ': return u'サ';
case u'し': return u'シ';
case u'す': return u'ス';
case u'せ': return u'セ';
case u'そ': return u'ソ';
case u'た': return u'タ';
case u'ち': return u'チ';
case u'つ': return u'ツ';
case u'て': return u'テ';
case u'と': return u'ト';
case u'な': return u'ナ';
case u'に': return u'ニ';
case u'ぬ': return u'ヌ';
case u'ね': return u'ネ';
case u'の': return u'ノ';
case u'は': return u'ハ';
case u'ひ': return u'ヒ';
case u'ふ': return u'フ';
case u'へ': return u'ヘ';
case u'ほ': return u'ホ';
case u'ま': return u'マ';
case u'み': return u'ミ';
case u'む': return u'ム';
case u'め': return u'メ';
case u'も': return u'モ';
case u'や': return u'ヤ';
case u'ゆ': return u'ユ';
case u'よ': return u'ヨ';
case u'ら': return u'ラ';
case u'り': return u'リ';
case u'る': return u'ル';
case u'れ': return u'レ';
case u'ろ': return u'ロ';
case u'わ': return u'ワ';
case u'ん': return u'ン';
case u'゛': return u'゙';
case u'゜': return u'゚';
}
return code;
}
} // namespace
void AGS::draw_text(const char* string, bool text_wait)
{
@@ -57,15 +391,14 @@ void AGS::draw_text(const char* string, bool text_wait)
if(is_2byte_message(c)) {
code = (code << 8) | (uint8)string[p++];
}
code = sjis_to_unicode(code);
if(draw_hankaku) {
code = convert_hankaku(code);
code = convert_to_hankaku(code);
} else {
code = convert_zenkaku(code);
code = convert_to_zenkaku(code);
}
code = sjis_to_unicode(code);
// 文字出力
if (GAIJI_FIRST <= code && code <= GAIJI_LAST) {
// Use unadjusted dest_y here.
@@ -213,336 +546,6 @@ void AGS::draw_gaiji(int dest, int dest_x, int dest_y, uint16 code, int size, ui
}
}
uint16 AGS::convert_zenkaku(uint16 code)
{
switch(code) {
case 0x20: return 0x8140; // ' '
case 0x21: return 0x8149; // '!'
case 0x22: return 0x8168; // '”'
case 0x23: return 0x8194; // '#'
case 0x24: return 0x8190; // '$'
case 0x25: return 0x8193; // '%'
case 0x26: return 0x8195; // '&'
case 0x27: return 0x8166; // '’'
case 0x28: return 0x8169; // '('
case 0x29: return 0x816a; // ')'
case 0x2a: return 0x8196; // '*'
case 0x2b: return 0x817b; // '+'
case 0x2c: return 0x8143; // ','
case 0x2d: return 0x817c; // '−'
case 0x2e: return 0x8144; // '.'
case 0x2f: return 0x815e; // '/'
case 0x30: return 0x824f; // '0'
case 0x31: return 0x8250; // '1'
case 0x32: return 0x8251; // '2'
case 0x33: return 0x8252; // '3'
case 0x34: return 0x8253; // '4'
case 0x35: return 0x8254; // '5'
case 0x36: return 0x8255; // '6'
case 0x37: return 0x8256; // '7'
case 0x38: return 0x8257; // '8'
case 0x39: return 0x8258; // '9'
case 0x3a: return 0x8146; // ':'
case 0x3b: return 0x8147; // ';'
case 0x3c: return 0x8183; // '<'
case 0x3d: return 0x8181; // '='
case 0x3e: return 0x8184; // '>'
case 0x3f: return 0x8148; // '?'
case 0x40: return 0x8197; // '@'
case 0x41: return 0x8260; // 'A'
case 0x42: return 0x8261; // 'B'
case 0x43: return 0x8262; // 'C'
case 0x44: return 0x8263; // 'D'
case 0x45: return 0x8264; // 'E'
case 0x46: return 0x8265; // 'F'
case 0x47: return 0x8266; // 'G'
case 0x48: return 0x8267; // 'H'
case 0x49: return 0x8268; // 'I'
case 0x4a: return 0x8269; // 'J'
case 0x4b: return 0x826a; // 'K'
case 0x4c: return 0x826b; // 'L'
case 0x4d: return 0x826c; // 'M'
case 0x4e: return 0x826d; // 'N'
case 0x4f: return 0x826e; // 'O'
case 0x50: return 0x826f; // 'P'
case 0x51: return 0x8270; // 'Q'
case 0x52: return 0x8271; // 'R'
case 0x53: return 0x8272; // 'S'
case 0x54: return 0x8273; // 'T'
case 0x55: return 0x8274; // 'U'
case 0x56: return 0x8275; // 'V'
case 0x57: return 0x8276; // 'W'
case 0x58: return 0x8277; // 'X'
case 0x59: return 0x8278; // 'Y'
case 0x5a: return 0x8279; // 'Z'
case 0x5b: return 0x816d; // '['
case 0x5c: return 0x818f; // '¥'
case 0x5d: return 0x816e; // ']'
case 0x5e: return 0x814f; // '^'
case 0x5f: return 0x8151; // '_'
case 0x60: return 0x8165; // '‘'
case 0x61: return 0x8281; // 'a'
case 0x62: return 0x8282; // 'b'
case 0x63: return 0x8283; // 'c'
case 0x64: return 0x8284; // 'd'
case 0x65: return 0x8285; // 'e'
case 0x66: return 0x8286; // 'f'
case 0x67: return 0x8287; // 'g'
case 0x68: return 0x8288; // 'h'
case 0x69: return 0x8289; // 'i'
case 0x6a: return 0x828a; // 'j'
case 0x6b: return 0x828b; // 'k'
case 0x6c: return 0x828c; // 'l'
case 0x6d: return 0x828d; // 'm'
case 0x6e: return 0x828e; // 'n'
case 0x6f: return 0x828f; // 'o'
case 0x70: return 0x8290; // 'p'
case 0x71: return 0x8291; // 'q'
case 0x72: return 0x8292; // 'r'
case 0x73: return 0x8293; // 's'
case 0x74: return 0x8294; // 't'
case 0x75: return 0x8295; // 'u'
case 0x76: return 0x8296; // 'v'
case 0x77: return 0x8297; // 'w'
case 0x78: return 0x8298; // 'x'
case 0x79: return 0x8299; // 'y'
case 0x7a: return 0x829a; // 'z'
case 0x7b: return 0x816f; // '{'
case 0x7c: return 0x8162; // '|'
case 0x7d: return 0x8170; // '}'
case 0x7e: return 0x8160; // '〜'
case 0xa1: return 0x8142; // '。'
case 0xa2: return 0x8175; // '「'
case 0xa3: return 0x8176; // '」'
case 0xa4: return 0x8141; // '、'
case 0xa5: return 0x8145; // '・'
case 0xa6: return 0x82f0; // 'を'
case 0xa7: return 0x829f; // 'ぁ'
case 0xa8: return 0x82a1; // 'ぃ'
case 0xa9: return 0x82a3; // 'ぅ'
case 0xaa: return 0x82a5; // 'ぇ'
case 0xab: return 0x82a7; // 'ぉ'
case 0xac: return 0x82e1; // 'ゃ'
case 0xad: return 0x82e3; // 'ゅ'
case 0xae: return 0x82e5; // 'ょ'
case 0xaf: return 0x82c1; // 'っ'
case 0xb0: return 0x815b; // 'ー'
case 0xb1: return 0x82a0; // 'あ'
case 0xb2: return 0x82a2; // 'い'
case 0xb3: return 0x82a4; // 'う'
case 0xb4: return 0x82a6; // 'え'
case 0xb5: return 0x82a8; // 'お'
case 0xb6: return 0x82a9; // 'か'
case 0xb7: return 0x82ab; // 'き'
case 0xb8: return 0x82ad; // 'く'
case 0xb9: return 0x82af; // 'け'
case 0xba: return 0x82b1; // 'こ'
case 0xbb: return 0x82b3; // 'さ'
case 0xbc: return 0x82b5; // 'し'
case 0xbd: return 0x82b7; // 'す'
case 0xbe: return 0x82b9; // 'せ'
case 0xbf: return 0x82bb; // 'そ'
case 0xc0: return 0x82bd; // 'た'
case 0xc1: return 0x82bf; // 'ち'
case 0xc2: return 0x82c2; // 'つ'
case 0xc3: return 0x82c4; // 'て'
case 0xc4: return 0x82c6; // 'と'
case 0xc5: return 0x82c8; // 'な'
case 0xc6: return 0x82c9; // 'に'
case 0xc7: return 0x82ca; // 'ぬ'
case 0xc8: return 0x82cb; // 'ね'
case 0xc9: return 0x82cc; // 'の'
case 0xca: return 0x82cd; // 'は'
case 0xcb: return 0x82d0; // 'ひ'
case 0xcc: return 0x82d3; // 'ふ'
case 0xcd: return 0x82d6; // 'へ'
case 0xce: return 0x82d9; // 'ほ'
case 0xcf: return 0x82dc; // 'ま'
case 0xd0: return 0x82dd; // 'み'
case 0xd1: return 0x82de; // 'む'
case 0xd2: return 0x82df; // 'め'
case 0xd3: return 0x82e0; // 'も'
case 0xd4: return 0x82e2; // 'や'
case 0xd5: return 0x82e4; // 'ゆ'
case 0xd6: return 0x82e6; // 'よ'
case 0xd7: return 0x82e7; // 'ら'
case 0xd8: return 0x82e8; // 'り'
case 0xd9: return 0x82e9; // 'る'
case 0xda: return 0x82ea; // 'れ'
case 0xdb: return 0x82eb; // 'ろ'
case 0xdc: return 0x82ed; // 'わ'
case 0xdd: return 0x82f1; // 'ん'
case 0xde: return 0x814a; // '゛'
case 0xdf: return 0x814b; // '゜'
}
return code;
}
uint16 AGS::convert_hankaku(uint16 code)
{
switch(code) {
case 0x8140: return 0x20; // ' '
case 0x8149: return 0x21; // '!'
case 0x8168: return 0x22; // '”'
case 0x8194: return 0x23; // '#'
case 0x8190: return 0x24; // '$'
case 0x8193: return 0x25; // '%'
case 0x8195: return 0x26; // '&'
case 0x8166: return 0x27; // '’'
case 0x8169: return 0x28; // '('
case 0x816a: return 0x29; // ')'
case 0x8196: return 0x2a; // '*'
case 0x817b: return 0x2b; // '+'
case 0x8143: return 0x2c; // ','
case 0x817c: return 0x2d; // '−'
case 0x8144: return 0x2e; // '.'
case 0x815e: return 0x2f; // '/'
case 0x824f: return 0x30; // '0'
case 0x8250: return 0x31; // '1'
case 0x8251: return 0x32; // '2'
case 0x8252: return 0x33; // '3'
case 0x8253: return 0x34; // '4'
case 0x8254: return 0x35; // '5'
case 0x8255: return 0x36; // '6'
case 0x8256: return 0x37; // '7'
case 0x8257: return 0x38; // '8'
case 0x8258: return 0x39; // '9'
case 0x8146: return 0x3a; // ':'
case 0x8147: return 0x3b; // ';'
case 0x8183: return 0x3c; // '<'
case 0x8181: return 0x3d; // '='
case 0x8184: return 0x3e; // '>'
case 0x8148: return 0x3f; // '?'
case 0x8197: return 0x40; // '@'
case 0x8260: return 0x41; // 'A'
case 0x8261: return 0x42; // 'B'
case 0x8262: return 0x43; // 'C'
case 0x8263: return 0x44; // 'D'
case 0x8264: return 0x45; // 'E'
case 0x8265: return 0x46; // 'F'
case 0x8266: return 0x47; // 'G'
case 0x8267: return 0x48; // 'H'
case 0x8268: return 0x49; // 'I'
case 0x8269: return 0x4a; // 'J'
case 0x826a: return 0x4b; // 'K'
case 0x826b: return 0x4c; // 'L'
case 0x826c: return 0x4d; // 'M'
case 0x826d: return 0x4e; // 'N'
case 0x826e: return 0x4f; // 'O'
case 0x826f: return 0x50; // 'P'
case 0x8270: return 0x51; // 'Q'
case 0x8271: return 0x52; // 'R'
case 0x8272: return 0x53; // 'S'
case 0x8273: return 0x54; // 'T'
case 0x8274: return 0x55; // 'U'
case 0x8275: return 0x56; // 'V'
case 0x8276: return 0x57; // 'W'
case 0x8277: return 0x58; // 'X'
case 0x8278: return 0x59; // 'Y'
case 0x8279: return 0x5a; // 'Z'
case 0x816d: return 0x5b; // '['
case 0x818f: return 0x5c; // '¥'
case 0x816e: return 0x5d; // ']'
case 0x814f: return 0x5e; // '^'
case 0x8151: return 0x5f; // '_'
case 0x8165: return 0x60; // '‘'
case 0x8281: return 0x61; // 'a'
case 0x8282: return 0x62; // 'b'
case 0x8283: return 0x63; // 'c'
case 0x8284: return 0x64; // 'd'
case 0x8285: return 0x65; // 'e'
case 0x8286: return 0x66; // 'f'
case 0x8287: return 0x67; // 'g'
case 0x8288: return 0x68; // 'h'
case 0x8289: return 0x69; // 'i'
case 0x828a: return 0x6a; // 'j'
case 0x828b: return 0x6b; // 'k'
case 0x828c: return 0x6c; // 'l'
case 0x828d: return 0x6d; // 'm'
case 0x828e: return 0x6e; // 'n'
case 0x828f: return 0x6f; // 'o'
case 0x8290: return 0x70; // 'p'
case 0x8291: return 0x71; // 'q'
case 0x8292: return 0x72; // 'r'
case 0x8293: return 0x73; // 's'
case 0x8294: return 0x74; // 't'
case 0x8295: return 0x75; // 'u'
case 0x8296: return 0x76; // 'v'
case 0x8297: return 0x77; // 'w'
case 0x8298: return 0x78; // 'x'
case 0x8299: return 0x79; // 'y'
case 0x829a: return 0x7a; // 'z'
case 0x816f: return 0x7b; // '{'
case 0x8162: return 0x7c; // '|'
case 0x8170: return 0x7d; // '}'
case 0x8160: return 0x7e; // '〜'
case 0x8142: return 0xa1; // '。'
case 0x8175: return 0xa2; // '「'
case 0x8176: return 0xa3; // '」'
case 0x8141: return 0xa4; // '、'
case 0x8145: return 0xa5; // '・'
case 0x82f0: return 0xa6; // 'を'
case 0x829f: return 0xa7; // 'ぁ'
case 0x82a1: return 0xa8; // 'ぃ'
case 0x82a3: return 0xa9; // 'ぅ'
case 0x82a5: return 0xaa; // 'ぇ'
case 0x82a7: return 0xab; // 'ぉ'
case 0x82e1: return 0xac; // 'ゃ'
case 0x82e3: return 0xad; // 'ゅ'
case 0x82e5: return 0xae; // 'ょ'
case 0x82c1: return 0xaf; // 'っ'
case 0x815b: return 0xb0; // 'ー'
case 0x82a0: return 0xb1; // 'あ'
case 0x82a2: return 0xb2; // 'い'
case 0x82a4: return 0xb3; // 'う'
case 0x82a6: return 0xb4; // 'え'
case 0x82a8: return 0xb5; // 'お'
case 0x82a9: return 0xb6; // 'か'
case 0x82ab: return 0xb7; // 'き'
case 0x82ad: return 0xb8; // 'く'
case 0x82af: return 0xb9; // 'け'
case 0x82b1: return 0xba; // 'こ'
case 0x82b3: return 0xbb; // 'さ'
case 0x82b5: return 0xbc; // 'し'
case 0x82b7: return 0xbd; // 'す'
case 0x82b9: return 0xbe; // 'せ'
case 0x82bb: return 0xbf; // 'そ'
case 0x82bd: return 0xc0; // 'た'
case 0x82bf: return 0xc1; // 'ち'
case 0x82c2: return 0xc2; // 'つ'
case 0x82c4: return 0xc3; // 'て'
case 0x82c6: return 0xc4; // 'と'
case 0x82c8: return 0xc5; // 'な'
case 0x82c9: return 0xc6; // 'に'
case 0x82ca: return 0xc7; // 'ぬ'
case 0x82cb: return 0xc8; // 'ね'
case 0x82cc: return 0xc9; // 'の'
case 0x82cd: return 0xca; // 'は'
case 0x82d0: return 0xcb; // 'ひ'
case 0x82d3: return 0xcc; // 'ふ'
case 0x82d6: return 0xcd; // 'へ'
case 0x82d9: return 0xce; // 'ほ'
case 0x82dc: return 0xcf; // 'ま'
case 0x82dd: return 0xd0; // 'み'
case 0x82de: return 0xd1; // 'む'
case 0x82df: return 0xd2; // 'め'
case 0x82e0: return 0xd3; // 'も'
case 0x82e2: return 0xd4; // 'や'
case 0x82e4: return 0xd5; // 'ゆ'
case 0x82e6: return 0xd6; // 'よ'
case 0x82e7: return 0xd7; // 'ら'
case 0x82e8: return 0xd8; // 'り'
case 0x82e9: return 0xd9; // 'る'
case 0x82ea: return 0xda; // 'れ'
case 0x82eb: return 0xdb; // 'ろ'
case 0x82ed: return 0xdc; // 'わ'
case 0x82f1: return 0xdd; // 'ん'
case 0x814a: return 0xde; // '゛'
case 0x814b: return 0xdf; // '゜'
}
return code;
}
extern "C" {
void EMSCRIPTEN_KEEPALIVE ags_setAntialiasedStringMode(int on) {