Deltarune (Chapter Select) script viewer

← back to main script listing

gml_Object_obj_init_console_Other_72

(view raw script w/o annotations or w/e)
1
if (ds_map_find_value(async_load, "id") == global.savedata_async_id)
2
{
3
    global.savedata_async_id = -1;
4
    if (global.savedata_async_load)
5
    {
6
        global.savedata_async_load = false;
7
        if (ds_map_find_value(async_load, "status") == -1)
8
        {
9
            global.savedata_error = true;
10
            global.savedata_debuginfo = "load failed: " + string(ds_map_find_value(async_load, "status"));
11
            global.savedata = ds_map_create();
12
        }
13
        else
14
        {
15
            global.savedata_error = false;
16
            global.savedata_debuginfo = "load succeeded";
17
            var json = buffer_read(global.savedata_buffer, buffer_string);
18
            global.savedata = json_decode(json);
19
        }
20
        buffer_delete(global.savedata_buffer);
21
        global.savedata_buffer = undefined;
22
        if (_load_state == UnknownEnum.Value_0)
23
        {
24
            if (scr_is_switch_os())
25
            {
26
                if (!ossafe_file_exists("dr.ini"))
27
                {
28
                    var prev_title = ossafe_savedata_title_exists(_full_titles);
29
                    if (prev_title != "n/a")
30
                    {
31
                        _load_state = UnknownEnum.Value_1;
32
                        _pending_title = prev_title;
33
                    }
34
                    else
35
                    {
36
                        prev_title = ossafe_savedata_title_exists(_demo_titles);
37
                        if (prev_title != "n/a")
38
                        {
39
                            _load_state = UnknownEnum.Value_2;
40
                            _pending_title = prev_title;
41
                        }
42
                        else
43
                        {
44
                            load_default_settings();
45
                            audio_group_load(0);
46
                            create_new_save_file();
47
                            _parent.trigger_event("init_complete");
48
                        }
49
                    }
50
                }
51
                else
52
                {
53
                    load_default_settings();
54
                    audio_group_load(0);
55
                    if (ossafe_file_exists("true_config.ini"))
56
                    {
57
                        ossafe_ini_open("true_config.ini");
58
                        global.lang = ini_read_string("LANG", "LANG", global.lang);
59
                        ossafe_ini_close();
60
                    }
61
                    if (!scr_has_ura_data())
62
                    {
63
                        for (var i = 0; i < UnknownEnum.Value_4; i++)
64
                        {
65
                            var chapter = i + 1;
66
                            scr_convert_ura_data(chapter);
67
                        }
68
                    }
69
                    _parent.trigger_event("init_complete");
70
                }
71
            }
72
            if (os_type == os_ps4 || os_type == os_ps5)
73
            {
74
                if (!ossafe_file_exists("dr.ini"))
75
                {
76
                    var prev_title = dequeue_full_title();
77
                    if (prev_title != "n/a")
78
                    {
79
                        ossafe_savedata_load_title(prev_title);
80
                        _load_state = UnknownEnum.Value_1;
81
                        _pending_title = prev_title;
82
                    }
83
                    else
84
                    {
85
                        prev_title = dequeue_demo_title();
86
                        if (prev_title != "n/a")
87
                        {
88
                            ossafe_savedata_load_title(prev_title);
89
                            _load_state = UnknownEnum.Value_2;
90
                            _pending_title = prev_title;
91
                        }
92
                        else
93
                        {
94
                            load_default_settings();
95
                            audio_group_load(0);
96
                            create_new_save_file();
97
                            _parent.trigger_event("init_complete");
98
                        }
99
                    }
100
                }
101
                else
102
                {
103
                    load_default_settings();
104
                    audio_group_load(0);
105
                    if (ossafe_file_exists("true_config.ini"))
106
                    {
107
                        ossafe_ini_open("true_config.ini");
108
                        global.lang = ini_read_string("LANG", "LANG", global.lang);
109
                        ossafe_ini_close();
110
                    }
111
                    if (!scr_has_ura_data())
112
                    {
113
                        for (var i = 0; i < UnknownEnum.Value_4; i++)
114
                        {
115
                            var chapter = i + 1;
116
                            scr_convert_ura_data(chapter);
117
                        }
118
                    }
119
                    _parent.trigger_event("init_complete");
120
                }
121
            }
122
        }
123
        else if (_load_state == UnknownEnum.Value_1)
124
        {
125
            if (scr_is_switch_os())
126
            {
127
                _pending_titles[array_length(_pending_titles)] = new scr_pending_save_data(_pending_title, global.savedata);
128
                var prev_title = ossafe_savedata_title_exists(_demo_titles);
129
                if (prev_title != "n/a")
130
                {
131
                    _load_state = UnknownEnum.Value_2;
132
                    _pending_title = prev_title;
133
                }
134
                else
135
                {
136
                    load_default_settings();
137
                    audio_group_load(0);
138
                    _parent.trigger_event("load_prompt", _pending_titles);
139
                }
140
            }
141
            if (os_type == os_ps4 || os_type == os_ps5)
142
            {
143
                if (ossafe_file_exists("dr.ini"))
144
                {
145
                    _pending_titles[array_length(_pending_titles)] = new scr_pending_save_data(_pending_title, global.savedata);
146
                    var prev_title = dequeue_demo_title();
147
                    if (prev_title != "n/a")
148
                    {
149
                        ossafe_savedata_load_title(prev_title);
150
                        _load_state = UnknownEnum.Value_2;
151
                        _pending_title = prev_title;
152
                    }
153
                    else
154
                    {
155
                        load_default_settings();
156
                        audio_group_load(0);
157
                        _parent.trigger_event("load_prompt", _pending_titles);
158
                    }
159
                }
160
                else
161
                {
162
                    var prev_title = dequeue_full_title();
163
                    if (prev_title != "n/a")
164
                    {
165
                        ossafe_savedata_load_title(prev_title);
166
                        _load_state = UnknownEnum.Value_1;
167
                        _pending_title = prev_title;
168
                    }
169
                    else
170
                    {
171
                        prev_title = dequeue_demo_title();
172
                        if (prev_title != "n/a")
173
                        {
174
                            ossafe_savedata_load_title(prev_title);
175
                            _load_state = UnknownEnum.Value_2;
176
                            _pending_title = prev_title;
177
                        }
178
                        else
179
                        {
180
                            load_default_settings();
181
                            audio_group_load(0);
182
                            create_new_save_file();
183
                            _parent.trigger_event("init_complete");
184
                        }
185
                    }
186
                }
187
            }
188
        }
189
        else if (_load_state == UnknownEnum.Value_2)
190
        {
191
            if (scr_is_switch_os())
192
            {
193
                if (ossafe_file_exists("dr.ini"))
194
                    array_insert(_pending_titles, 0, new scr_pending_save_data(_pending_title, global.savedata));
195
                var adjusted_list = [];
196
                for (var i = 0; i < array_length(_demo_titles); i++)
197
                {
198
                    if (_demo_titles[i] == _pending_title)
199
                        continue;
200
                    adjusted_list[array_length(adjusted_list)] = _demo_titles[i];
201
                }
202
                _demo_titles = adjusted_list;
203
                var prev_title = ossafe_savedata_title_exists(_demo_titles);
204
                if (prev_title != "n/a")
205
                {
206
                    _load_state = UnknownEnum.Value_2;
207
                    _pending_title = prev_title;
208
                }
209
                else if (array_length(_pending_titles) > 0)
210
                {
211
                    load_default_settings();
212
                    audio_group_load(0);
213
                    _parent.trigger_event("load_prompt", _pending_titles);
214
                }
215
                else
216
                {
217
                    load_default_settings();
218
                    audio_group_load(0);
219
                    create_new_save_file();
220
                    _parent.trigger_event("init_complete");
221
                }
222
            }
223
            if (os_type == os_ps4 || os_type == os_ps5)
224
            {
225
                if (ossafe_file_exists("dr.ini"))
226
                {
227
                    _pending_titles[array_length(_pending_titles)] = new scr_pending_save_data(_pending_title, global.savedata);
228
                    load_default_settings();
229
                    audio_group_load(0);
230
                    _parent.trigger_event("load_prompt", _pending_titles);
231
                }
232
                else
233
                {
234
                    var prev_title = dequeue_demo_title();
235
                    if (prev_title != "n/a")
236
                    {
237
                        ossafe_savedata_load_title(prev_title);
238
                        _load_state = UnknownEnum.Value_2;
239
                        _pending_title = prev_title;
240
                    }
241
                    else if (array_length(_pending_titles) > 0)
242
                    {
243
                        load_default_settings();
244
                        audio_group_load(0);
245
                        _parent.trigger_event("load_prompt", _pending_titles);
246
                    }
247
                    else
248
                    {
249
                        load_default_settings();
250
                        audio_group_load(0);
251
                        create_new_save_file();
252
                        _parent.trigger_event("init_complete");
253
                    }
254
                }
255
            }
256
        }
257
    }
258
    else
259
    {
260
        if (ds_map_find_value(async_load, "status") == false)
261
        {
262
            global.savedata_error = true;
263
            global.savedata_debuginfo = "save failed: " + string(ds_map_find_value(async_load, "status"));
264
            if (global.savedata_async_load)
265
            {
266
                global.savedata = ds_map_create();
267
                global.savedata_async_load = false;
268
            }
269
        }
270
        else
271
        {
272
            global.savedata_error = false;
273
            global.savedata_debuginfo = "save succeeded";
274
            if (scr_is_switch_os())
275
                switch_save_data_commit();
276
        }
277
        buffer_delete(global.savedata_buffer);
278
        global.savedata_buffer = undefined;
279
    }
280
}
281
282
enum UnknownEnum
283
{
284
    Value_0,
285
    Value_1,
286
    Value_2,
287
    Value_4 = 4
288
}