Deltarune script viewer

← back to main script listing

gml_GlobalScript_ossafe_file_text_open_read_ch1

(view raw script w/o annotations or w/e)
1
function ossafe_file_text_open_read_ch1(arg0)
2
{
3
    if (!global.is_console)
4
    {
5
        return file_text_open_read(arg0);
6
    }
7
    else
8
    {
9
        var name = string_lower(arg0);
10
        var file = ds_map_find_value(global.savedata, name);
11
        if (is_undefined(file))
12
            return undefined;
13
        var data = file;
14
        var num_lines = 0;
15
        var lines;
16
        while (string_byte_length(data) > 0)
17
        {
18
            var newline_pos = string_pos("\n", data);
19
            var line;
20
            if (newline_pos > 0)
21
            {
22
                var nextline_pos = newline_pos + 1;
23
                if (newline_pos > 1 && string_char_at(data, newline_pos - 1) == "\r")
24
                    newline_pos--;
25
                if (newline_pos > 1)
26
                    line = substr_ch1(data, 1, newline_pos - 1);
27
                else
28
                    line = "";
29
                if (nextline_pos <= strlen_ch1(data))
30
                    data = substr_ch1(data, nextline_pos);
31
                else
32
                    data = "";
33
            }
34
            else
35
            {
36
                line = data;
37
                data = "";
38
            }
39
            lines[num_lines++] = line;
40
        }
41
        handle = ds_map_create();
42
        ds_map_set(handle, "is_write", false);
43
        ds_map_set(handle, "text", lines);
44
        ds_map_set(handle, "num_lines", num_lines);
45
        ds_map_set(handle, "line", 0);
46
        ds_map_set(handle, "line_read", false);
47
        return handle;
48
    }
49
}