Deltarune (Chapter 5) script viewer

← back to main script listing

gml_GlobalScript_scr_complete_save_file

(view raw script w/o annotations or w/e)
1
function 
scr_complete_save_file
scr_complete_save_file

function
scr_complete_save_file()
{ _remfilechoice = global.filechoice; global.filechoice += 3; scr_set_ini_value(global.chapter, global.filechoice, "SideB", scr_sideb_active());
scr_save();
global.filechoice = _remfilechoice; } function scr_chapter_save_file_exists(arg0) { var _exists = false; for (var i = 0; i < 3; i++) { _exists = ossafe_file_exists("filech" + string(arg0) + "_" + string(i)); if (_exists == true) break; } return _exists; } function scr_completed_chapter(arg0) { return ossafe_file_exists("filech" + string(arg0) + "_" + string(global.filechoice + 3)); } function scr_completed_chapter_any_slot(arg0) { var _file_exists = false; for (var i = 0; i < 3; i++) { if (ossafe_file_exists("filech" + string(arg0) + "_" + string(i + 3))) { _file_exists = true; break; } } return _file_exists; } function scr_get_secret_boss_result(arg0) { var fought_flag = scr_get_secret_boss_flag(arg0); return global.flag[fought_flag]; } function scr_defeated_secret_boss_any_slot(arg0) { var _fought_boss = scr_fought_secret_boss_any_slot(arg0); var _defeated = false; if (_fought_boss) { for (var i = 0; i < 3; i++) { var _slot = i; var _result = scr_get_ura_value(arg0, _slot); if (_result == 1 || _result == 3) { _defeated = true; break; } } } return _defeated; } function scr_spared_secret_boss_any_slot(arg0) { var _fought_boss = scr_fought_secret_boss_any_slot(arg0); var _spared = false; if (_fought_boss) { for (var i = 0; i < 3; i++) { var _slot = i; var _result = scr_get_ura_value(arg0, _slot); if (_result >= 2) { _spared = true; break; } } } return _spared; } function scr_fought_secret_boss(arg0) { return scr_get_secret_boss_result(arg0) > 0; } function scr_fought_secret_boss_any_slot(arg0) { var _fought = false; for (var i = 0; i < 3; i++) { var _slot = i; var _result = scr_get_ura_value(arg0, _slot); if (_result > 0) { _fought = true; ...
()
2
{
3
    _remfilechoice = global.filechoice;
4
    global.filechoice += 3;
5
    scr_set_ini_value(global.chapter, global.filechoice, "SideB", scr_sideb_active());
6
    
scr_save
scr_save

function
scr_save()
{ if (
scr_debug())
{ if (room == rm_blank) {
scr_debug_print("CURRENTLY IN A LIVE ROOM, DON'T SAVE HERE -- MOVING TO ACTUAL ROOM FOR SAVING");
room_goto(live_live_room); exit; } }
scr_saveprocess(global.filechoice);
filechoicebk2 = global.filechoice; global.filechoice = 9;
scr_saveprocess(9);
global.filechoice = filechoicebk2; iniwrite = ossafe_ini_open("dr.ini"); ini_write_string(
scr_ini_chapter(global.chapter, global.filechoice), "Name", global.truename);
ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "Level", global.lv);
ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "Love", global.llv);
ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "Time", global.time);
ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "Date", date_current_datetime());
ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "Room", scr_get_id_by_room_index(room));
ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "InitLang", global.flag[912 language]);
var uraboss = 0; if (global.chapter == 1) { if (global.flag[241 JEVIL_plot] == 6) uraboss = 1; else if (global.flag[241 JEVIL_plot] == 7) uraboss = 2; } else { uraboss = scr_get_secret_boss_result(global.chapter); } ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "UraBoss", uraboss);
ini_write_string(
scr_ini_chapter(global.chapter, global.filechoice), "Version", string(global.versionno));
ossafe_ini_close(); scr_store_ura_result(global.chapter, global.filechoice, uraboss); scr_store_flower_items(); ossafe_ini_open("keyconfig_" + string(global.filechoice) + ".ini"); for (i = 0; i < 10; i += 1) ini_write_real("KEYBOARD_CONTROLS", string(i), global.input_k[i]); for (i = 0; i < 10; i += 1) ini_write_real("GAMEPAD_CONTROLS", string(i), global.input_g[i]); if (global.is_console) ini_write_string("BORDER", "TYPE", global.screen_border_id); ini_write_real("SHOULDERLB_REASSIGN", "SHOULDERLB_REASSIGN", obj_gamecontroller.gamepad_shoulderlb_reassign); ossafe_ini_close(); ossafe_savedata_save(); }
();
7
    global.filechoice = _remfilechoice;
8
}
9
10
function scr_chapter_save_file_exists(arg0)
11
{
12
    var _exists = false;
13
    for (var i = 0; i < 3; i++)
14
    {
15
        _exists = ossafe_file_exists("filech" + string(arg0) + "_" + string(i));
16
        if (_exists == true)
17
            break;
18
    }
19
    return _exists;
20
}
21
22
function scr_completed_chapter(arg0)
23
{
24
    return ossafe_file_exists("filech" + string(arg0) + "_" + string(global.filechoice + 3));
25
}
26
27
function scr_completed_chapter_any_slot(arg0)
28
{
29
    var _file_exists = false;
30
    for (var i = 0; i < 3; i++)
31
    {
32
        if (ossafe_file_exists("filech" + string(arg0) + "_" + string(i + 3)))
33
        {
34
            _file_exists = true;
35
            break;
36
        }
37
    }
38
    return _file_exists;
39
}
40
41
function scr_get_secret_boss_result(arg0)
42
{
43
    var fought_flag = scr_get_secret_boss_flag(arg0);
44
    return global.flag[fought_flag];
45
}
46
47
function scr_defeated_secret_boss_any_slot(arg0)
48
{
49
    var _fought_boss = scr_fought_secret_boss_any_slot(arg0);
50
    var _defeated = false;
51
    if (_fought_boss)
52
    {
53
        for (var i = 0; i < 3; i++)
54
        {
55
            var _slot = i;
56
            var _result = scr_get_ura_value(arg0, _slot);
57
            if (_result == 1 || _result == 3)
58
            {
59
                _defeated = true;
60
                break;
61
            }
62
        }
63
    }
64
    return _defeated;
65
}
66
67
function scr_spared_secret_boss_any_slot(arg0)
68
{
69
    var _fought_boss = scr_fought_secret_boss_any_slot(arg0);
70
    var _spared = false;
71
    if (_fought_boss)
72
    {
73
        for (var i = 0; i < 3; i++)
74
        {
75
            var _slot = i;
76
            var _result = scr_get_ura_value(arg0, _slot);
77
            if (_result >= 2)
78
            {
79
                _spared = true;
80
                break;
81
            }
82
        }
83
    }
84
    return _spared;
85
}
86
87
function scr_fought_secret_boss(arg0)
88
{
89
    return scr_get_secret_boss_result(arg0) > 0;
90
}
91
92
function scr_fought_secret_boss_any_slot(arg0)
93
{
94
    var _fought = false;
95
    for (var i = 0; i < 3; i++)
96
    {
97
        var _slot = i;
98
        var _result = scr_get_ura_value(arg0, _slot);
99
        if (_result > 0)
100
        {
101
            _fought = true;
102
            break;
103
        }
104
    }
105
    return _fought;
106
}
107
108
function scr_get_secret_boss_flag(arg0)
109
{
110
    var fought_flag = 241;
111
    switch (arg0)
112
    {
113
        case 1:
114
            fought_flag = 241;
115
            break;
116
        case 2:
117
            fought_flag = 571;
118
            break;
119
        case 3:
120
            fought_flag = 1047;
121
            break;
122
        case 4:
123
            fought_flag = 1629;
124
            break;
125
        case 5:
126
            fought_flag = 1908;
127
            break;
128
        default:
129
            break;
130
    }
131
    return fought_flag;
132
}
133
134
function scr_enable_chapter_skip(arg0)
135
{
136
    var _skip_flag = 38;
137
    switch (arg0)
138
    {
139
        case 2:
140
            _skip_flag = 39;
141
            break;
142
        case 3:
143
            _skip_flag = 40;
144
            break;
145
        case 4:
146
            _skip_flag = 41;
147
            break;
148
        default:
149
            break;
150
    }
151
    global.tempflag[_skip_flag] = 1;
152
}
153
154
function scr_set_ini_value(arg0, arg1, arg2, arg3)
155
{
156
    var iniwrite = ossafe_ini_open("dr.ini");
157
    ini_write_real(
scr_ini_chapter
scr_ini_chapter

function
scr_ini_chapter(arg0, arg1)
{ if (arg0 >= 2) return "G_" + string(arg0) + "_" + string(arg1); else return "G" + string(arg1); }
(arg0, arg1), arg2, arg3);
158
    ossafe_ini_close();
159
}
160
161
function scr_get_ini_value_all_slots(arg0, arg1)
162
{
163
    var _ini_file = ossafe_ini_open("dr.ini");
164
    var _list = [];
165
    for (var i = 0; i < 6; i++)
166
    {
167
        var _slot = i;
168
        var _value = ini_read_real(
scr_ini_chapter
scr_ini_chapter

function
scr_ini_chapter(arg0, arg1)
{ if (arg0 >= 2) return "G_" + string(arg0) + "_" + string(arg1); else return "G" + string(arg1); }
(arg0, _slot), arg1, 0);
169
        _list[i][0] = _slot;
170
        _list[i][1] = _value;
171
    }
172
    ossafe_ini_close();
173
    return _list;
174
}
175
176
function scr_get_ini_value(arg0, arg1, arg2)
177
{
178
    var _ini_file = ossafe_ini_open("dr.ini");
179
    var _ini_value = ini_read_real(
scr_ini_chapter
scr_ini_chapter

function
scr_ini_chapter(arg0, arg1)
{ if (arg0 >= 2) return "G_" + string(arg0) + "_" + string(arg1); else return "G" + string(arg1); }
(arg0, arg1), arg2, 0);
180
    ossafe_ini_close();
181
    return _ini_value;
182
}
183
184
function scr_get_ura_value(arg0, arg1)
185
{
186
    var _ini_file = ossafe_ini_open("dr.ini");
187
    var _ini_value = ini_read_real("URA", string(arg0) + "_" + string(arg1), 0);
188
    ossafe_ini_close();
189
    return _ini_value;
190
}
191
192
function scr_set_ura_value(arg0, arg1, arg2)
193
{
194
    var _ini_file = ossafe_ini_open("dr.ini");
195
    var _ini_value = ini_write_real("URA", string(arg0) + "_" + string(arg1), arg2);
196
    ossafe_ini_close();
197
    return _ini_value;
198
}
199
200
function scr_store_ura_result(arg0, arg1, arg2)
201
{
202
    if (arg2 == 0)
203
        exit;
204
    var slot = arg1;
205
    if (slot > 2)
206
        slot -= 3;
207
    var current_result = scr_get_ura_value(arg0, slot);
208
    var new_result = arg2;
209
    if ((arg2 + current_result) == 3)
210
        new_result = 3;
211
    scr_set_ura_value(arg0, slot, new_result);
212
}
213
214
function scr_get_video_ini_value()
215
{
216
    var _ini_file = ossafe_ini_open("dr.ini");
217
    var _ini_value = ini_read_real("video_ch5", "watched", 0);
218
    ossafe_ini_close();
219
    return _ini_value;
220
}
221
222
function scr_set_video_ini_value(arg0)
223
{
224
    var iniwrite = ossafe_ini_open("dr.ini");
225
    ini_write_real("video_ch5", "watched", arg0);
226
    ossafe_ini_close();
227
    ossafe_savedata_save();
228
}
229
230
function scr_set_sideb_ini_value(arg0)
231
{
232
    var iniwrite = ossafe_ini_open("dr.ini");
233
    ini_write_real("side_b", "complete", arg0);
234
    ossafe_ini_close();
235
    ossafe_savedata_save();
236
}
237
238
function scr_complete_save_file_b()
239
{
240
    _remfilechoice = global.filechoice;
241
    global.filechoice += 3;
242
    scr_set_sideb_ini_value(true);
243
    global.end_game_pending = true;
244
    global.filechoice_route = "_b";
245
    
scr_save
scr_save

function
scr_save()
{ if (
scr_debug())
{ if (room == rm_blank) {
scr_debug_print("CURRENTLY IN A LIVE ROOM, DON'T SAVE HERE -- MOVING TO ACTUAL ROOM FOR SAVING");
room_goto(live_live_room); exit; } }
scr_saveprocess(global.filechoice);
filechoicebk2 = global.filechoice; global.filechoice = 9;
scr_saveprocess(9);
global.filechoice = filechoicebk2; iniwrite = ossafe_ini_open("dr.ini"); ini_write_string(
scr_ini_chapter(global.chapter, global.filechoice), "Name", global.truename);
ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "Level", global.lv);
ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "Love", global.llv);
ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "Time", global.time);
ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "Date", date_current_datetime());
ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "Room", scr_get_id_by_room_index(room));
ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "InitLang", global.flag[912 language]);
var uraboss = 0; if (global.chapter == 1) { if (global.flag[241 JEVIL_plot] == 6) uraboss = 1; else if (global.flag[241 JEVIL_plot] == 7) uraboss = 2; } else { uraboss = scr_get_secret_boss_result(global.chapter); } ini_write_real(
scr_ini_chapter(global.chapter, global.filechoice), "UraBoss", uraboss);
ini_write_string(
scr_ini_chapter(global.chapter, global.filechoice), "Version", string(global.versionno));
ossafe_ini_close(); scr_store_ura_result(global.chapter, global.filechoice, uraboss); scr_store_flower_items(); ossafe_ini_open("keyconfig_" + string(global.filechoice) + ".ini"); for (i = 0; i < 10; i += 1) ini_write_real("KEYBOARD_CONTROLS", string(i), global.input_k[i]); for (i = 0; i < 10; i += 1) ini_write_real("GAMEPAD_CONTROLS", string(i), global.input_g[i]); if (global.is_console) ini_write_string("BORDER", "TYPE", global.screen_border_id); ini_write_real("SHOULDERLB_REASSIGN", "SHOULDERLB_REASSIGN", obj_gamecontroller.gamepad_shoulderlb_reassign); ossafe_ini_close(); ossafe_savedata_save(); }
();
246
    global.filechoice = _remfilechoice;
247
    global.filechoice_route = "";
248
}
249
250
function scr_store_flower_items()
251
{
252
    var flower_list = ["seth", "blue", "aqua", "yellow", "orange", "green", "flowery"];
253
    var iniwrite = ossafe_ini_open("dr.ini");
254
    var list_size = array_length(flower_list);
255
    var section_name = "F_ITEMS";
256
    for (var i = 0; i < list_size; i++)
257
    {
258
        var item_index = i;
259
        var prop_name = string(global.chapter) + "_" + string(global.filechoice) + "_" + string(item_index);
260
        var past_purchase = ini_read_real(section_name, prop_name, 0);
261
        if (past_purchase == 1)
262
            continue;
263
        var new_purchase = scr_flag_get_ext(1860, i);
264
        ini_write_real(section_name, prop_name, new_purchase);
265
    }
266
    ossafe_ini_close();
267
}