Deltarune (Chapter Select) script viewer

← back to main script listing

gml_GlobalScript_ossafe_savedata_load

(view raw script w/o annotations or w/e)
1
function ossafe_savedata_load()
2
{
3
    if (!global.is_console)
4
    {
5
    }
6
    else
7
    {
8
        if (global.savedata_async_id >= 0 || global.savedata_async_load)
9
            return 0;
10
        var slot_size = 31457280;
11
        buffer_async_group_begin("Deltarune");
12
        buffer_async_group_option("showdialog", 0);
13
        buffer_async_group_option("savepadindex", 0);
14
        buffer_async_group_option("slottitle", "DELTARUNE");
15
        buffer_async_group_option("subtitle", "DELTARUNE Save Data");
16
        buffer_async_group_option("saveslotsize", slot_size);
17
        global.savedata_buffer = buffer_create(1, buffer_grow, 1);
18
        buffer_load_async(global.savedata_buffer, "deltarune.sav", 0, -1);
19
        global.savedata_async_load = true;
20
        global.savedata_debuginfo = "load in progress";
21
        global.savedata_async_id = buffer_async_group_end();
22
    }
23
}
24
25
function ossafe_savedata_title_exists(arg0)
26
{
27
    var _title = "n/a";
28
    for (var i = 0; i < array_length(arg0); i++)
29
    {
30
        var title = arg0[i];
31
        if (ossafe_savedata_load_title(title) == "save_loading")
32
        {
33
            _title = title;
34
            break;
35
        }
36
    }
37
    return _title;
38
}
39
40
function ossafe_savedata_load_title(arg0 = -1)
41
{
42
    if (scr_is_switch_os())
43
        return ossafe_savedata_load_switch_title(arg0);
44
    else if (os_type == os_ps4 || os_type == os_ps5)
45
        return ossafe_savedata_load_ps4_title(arg0);
46
    else
47
        return "save_not_found";
48
}
49
50
function ossafe_savedata_load_ps4_title(arg0 = -1)
51
{
52
    if (!global.is_console)
53
    {
54
    }
55
    else
56
    {
57
        if (global.savedata_async_id >= 0 || global.savedata_async_load)
58
            return 0;
59
        if (arg0 == -1)
60
            return "save_not_found";
61
        var title_id = arg0.title_id;
62
        var fingerprint = arg0.fingerprint;
63
        var save_file_format = arg0.save_data_file;
64
        var slottitle = save_file_format.slottitle;
65
        var filename = save_file_format.filename;
66
        var slot_size = 31457280;
67
        buffer_async_group_begin("Deltarune");
68
        buffer_async_group_option("showdialog", 0);
69
        buffer_async_group_option("savepadindex", 0);
70
        buffer_async_group_option("slottitle", slottitle);
71
        buffer_async_group_option("subtitle", "DELTARUNE Save Data");
72
        buffer_async_group_option("saveslotsize", slot_size);
73
        buffer_async_group_option("ps4_titleid", title_id);
74
        buffer_async_group_option("ps4_fingerprint", fingerprint);
75
        global.savedata_buffer = buffer_create(1, buffer_grow, 1);
76
        buffer_load_async(global.savedata_buffer, filename, 0, -1);
77
        global.savedata_async_load = true;
78
        global.savedata_debuginfo = "load in progress";
79
        global.savedata_async_id = buffer_async_group_end();
80
        buffer_async_group_option("ps4_titleid", "");
81
        buffer_async_group_option("ps4_fingerprint", "");
82
        return "save_loading";
83
    }
84
}
85
86
function ossafe_savedata_load_switch_title(arg0 = -1)
87
{
88
    if (!global.is_console)
89
    {
90
    }
91
    else
92
    {
93
        if (global.savedata_async_id >= 0 || global.savedata_async_load)
94
            return 0;
95
        if (arg0 == -1)
96
            return 0;
97
        var app_id = arg0.app_id;
98
        switch_save_data_unmount();
99
        if (switch_save_data_mount(global.switchlogin, app_id) >= 0)
100
        {
101
            var save_file_format = arg0.save_data_file;
102
            var slottitle = save_file_format.slottitle;
103
            var filename = save_file_format.filename;
104
            var slot_size = 31457280;
105
            buffer_async_group_begin("Deltarune");
106
            buffer_async_group_option("showdialog", 0);
107
            buffer_async_group_option("savepadindex", 0);
108
            buffer_async_group_option("slottitle", slottitle);
109
            buffer_async_group_option("subtitle", "DELTARUNE Save Data");
110
            buffer_async_group_option("saveslotsize", slot_size);
111
            global.savedata_buffer = buffer_create(1, buffer_grow, 1);
112
            buffer_load_async(global.savedata_buffer, filename, 0, -1);
113
            global.savedata_async_load = true;
114
            global.savedata_debuginfo = "load in progress";
115
            global.savedata_async_id = buffer_async_group_end();
116
            return "save_loading";
117
        }
118
        else
119
        {
120
            return "save_not_found";
121
        }
122
    }
123
}