Deltarune (Chapter 3) script viewer

← back to main script listing

gml_GlobalScript_string_to_hiragana

(view raw script w/o annotations or w/e)
1
function string_to_hiragana(arg0)
2
{
3
    var str = arg0;
4
    var result = "";
5
    var lastch = "";
6
    for (var i = 1; i <= string_length(str); i++)
7
    {
8
        var ch = ord(string_char_at(str, i));
9
        if (ch >= 12449 && ch <= 12534)
10
        {
11
            ch -= 96;
12
        }
13
        else if (ch >= 65377 && ch <= 65439)
14
        {
15
            var halfkata = "。「」、・をぁぃぅぇぉャュョッーあいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわん゛゜";
16
            ch = ord(string_char_at(halfkata, ch - 65376));
17
            if (lastch != "")
18
            {
19
                if (ch == 12443)
20
                {
21
                    var daku_from = "かきくけこさしすせそたちつてとはひふへほ";
22
                    var daku_to = "がぎぐげござじずぜぞだぢづでどばびぶべぼ";
23
                    var pos = string_pos(lastch, daku_from);
24
                    if (pos != 0)
25
                        ch = ord(string_char_at(daku_to, pos));
26
                }
27
                else if (ch == 12444)
28
                {
29
                    var handaku_from = "はひふへほ";
30
                    var handaku_to = "ぱぴぷぺぽ";
31
                    var pos = string_pos(lastch, handaku_from);
32
                    if (pos != 0)
33
                        ch = ord(string_char_at(handaku_to, pos));
34
                }
35
            }
36
        }
37
        lastch = chr(ch);
38
        result += lastch;
39
    }
40
    return result;
41
}