Undertale script viewer

← back to main script listing

gml_Script_scr_kanatype_append

(view raw script w/o annotations or w/e)
1
var oldstring = argument0;
2
var newchar = argument1;
3
var len = strlen(oldstring);
4
if (!(newchar >= "a" && newchar <= "z"))
5
{
6
    if (oldstring != "" && string_char_at(oldstring, len) == "n")
7
        oldstring = substr(oldstring, 1, len - 1) + "ん";
8
    if (newchar == "-")
9
        newchar = "ー";
10
    if (newchar == "/")
11
        newchar = "・";
12
    if (newchar == "[")
13
        newchar = "「";
14
    if (newchar == "]")
15
        newchar = "」";
16
    return oldstring + newchar;
17
}
18
if (oldstring == "")
19
    return newchar;
20
var lastchar = string_char_at(oldstring, len);
21
if (!(lastchar >= "a" && lastchar <= "z"))
22
{
23
    if (newchar == "a")
24
        newchar = "あ";
25
    if (newchar == "i")
26
        newchar = "い";
27
    if (newchar == "u")
28
        newchar = "う";
29
    if (newchar == "e")
30
        newchar = "え";
31
    if (newchar == "o")
32
        newchar = "お";
33
    return oldstring + newchar;
34
}
35
if (!(newchar == "a" || newchar == "i" || newchar == "u" || newchar == "e" || newchar == "o"))
36
{
37
    if (lastchar == "n")
38
    {
39
        oldstring = substr(oldstring, 1, len - 1) + "ん";
40
        lastchar = "ん";
41
    }
42
    else if (newchar == lastchar)
43
    {
44
        oldstring = substr(oldstring, 1, len - 1) + "っ";
45
        lastchar = "っ";
46
    }
47
}
48
if (len >= 3)
49
{
50
    var compose4 = ds_map_find_value(global.kanatype_lookup_4ch, substr(oldstring, len - 3) + newchar);
51
    if (!is_undefined(compose4))
52
        return substr(oldstring, 1, len - 3) + compose4;
53
}
54
if (len >= 2)
55
{
56
    var compose3 = ds_map_find_value(global.kanatype_lookup_3ch, substr(oldstring, len - 1) + newchar);
57
    if (!is_undefined(compose3))
58
        return substr(oldstring, 1, len - 2) + compose3;
59
}
60
var compose2 = ds_map_find_value(global.kanatype_lookup_2ch, lastchar + newchar);
61
if (!is_undefined(compose2))
62
    return substr(oldstring, 1, len - 1) + compose2;
63
if (newchar == "a")
64
    newchar = "あ";
65
if (newchar == "i")
66
    newchar = "い";
67
if (newchar == "u")
68
    newchar = "う";
69
if (newchar == "e")
70
    newchar = "え";
71
if (newchar == "o")
72
    newchar = "お";
73
return oldstring + newchar;