Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_custommenu_Step_0

(view raw script w/o annotations or w/e)
1
global.interact = reminteract;
2
move_d = 0;
3
move_r = 0;
4
move_u = 0;
5
move_l = 0;
6
press_1 = 0;
7
press_2 = 0;
8
if (left_p())
9
    move_l = 1;
10
if (right_p())
11
    move_r = 1;
12
if (down_p())
13
    move_d = 1;
14
if (up_p())
15
    move_u = 1;
16
if (left_h())
17
    lheld++;
18
else
19
    lheld = 0;
20
if (down_h())
21
    dheld++;
22
else
23
    dheld = 0;
24
if (right_h())
25
    rheld++;
26
else
27
    rheld = 0;
28
if (up_h())
29
    uheld++;
30
else
31
    uheld = 0;
32
if (menuVHeld[menu] >= 0)
33
{
34
    if (dheld >= menuVHeld[menu] || uheld >= menuVHeld[menu])
35
        scrolltimer++;
36
    if (scrolltimer >= scrollrepeat)
37
    {
38
        if (dheld >= 1)
39
            move_d = 1;
40
        else
41
            move_u = 1;
42
        scrolltimer = 0;
43
    }
44
}
45
if (menuHHeld[menu] >= 0)
46
{
47
    if (rheld >= menuHHeld[menu] || lheld >= menuHHeld[menu])
48
        scrolltimer++;
49
    if (scrolltimer >= scrollrepeat)
50
    {
51
        if (rheld >= 1)
52
            move_r = 1;
53
        else
54
            move_l = 1;
55
        scrolltimer = 0;
56
    }
57
}
58
moved = 0;
59
hpageturn = 0;
60
vpageturn = 0;
61
remcoord = menuCoord[menu];
62
if (move_l == 1 && move_r == 0)
63
{
64
    if ((menuCoord[menu] % menuWidth[menu]) == 0 || menuWidth[menu] == 1)
65
    {
66
        if (menuHEdgeBehavior[menu] == 1)
67
            menuCoord[menu] += menuWidth[menu] - 1;
68
        if (menuHEdgeBehavior[menu] == 2)
69
            hpageturn = -1;
70
    }
71
    else
72
    {
73
        menuCoord[menu]--;
74
    }
75
}
76
else if (move_r == 1 && move_l == 0)
77
{
78
    if ((menuCoord[menu] % menuWidth[menu]) == (menuWidth[menu] - 1) || menuWidth[menu] == 1)
79
    {
80
        if (menuHEdgeBehavior[menu] == 1)
81
            menuCoord[menu] -= menuWidth[menu] - 1;
82
        if (menuHEdgeBehavior[menu] == 2)
83
            hpageturn = 1;
84
    }
85
    else
86
    {
87
        menuCoord[menu]++;
88
    }
89
}
90
if (move_d == 1 && move_u == 0)
91
{
92
    if (menuCoord[menu] >= ((menuWidth[menu] * (menuHeight[menu] - 1)) + menuScrollCurrent[menu]))
93
    {
94
        if (menuVEdgeBehavior[menu] == 1 && menuHeight[menu] >= 2)
95
            menuCoord[menu] -= menuWidth[menu] * (menuHeight[menu] - 1);
96
        if (menuVEdgeBehavior[menu] == 2)
97
            vpageturn = 1;
98
    }
99
    else
100
    {
101
        menuCoord[menu] += menuWidth[menu];
102
    }
103
}
104
else if (move_u == 1 && move_d == 0)
105
{
106
    if (menuCoord[menu] < (menuWidth[menu] + menuScrollCurrent[menu]))
107
    {
108
        if (menuVEdgeBehavior[menu] == 1 && menuHeight[menu] >= 2)
109
            menuCoord[menu] += menuWidth[menu] * (menuHeight[menu] - 1);
110
        if (menuVEdgeBehavior[menu] == 2)
111
            vpageturn = -1;
112
    }
113
    else
114
    {
115
        menuCoord[menu] -= menuWidth[menu];
116
    }
117
}
118
if (hpageturn != 0 || vpageturn != 0)
119
{
120
    cellcount = ceil((menuMaximumID[menu] + 1) / menuPageSize[menu]);
121
    if (vpageturn == -1)
122
    {
123
        menuScrollCurrent[menu] -= menuScrollAdd[menu];
124
        menuCoord[menu] -= menuScrollAdd[menu];
125
    }
126
    if (vpageturn == 1)
127
    {
128
        menuScrollCurrent[menu] += menuScrollAdd[menu];
129
        menuCoord[menu] += menuScrollAdd[menu];
130
    }
131
    if (hpageturn == -1)
132
    {
133
        if (menuWidth[menu] > 1)
134
        {
135
            menuScrollCurrent[menu] -= menuScrollAdd[menu];
136
            menuCoord[menu] -= (menuScrollAdd[menu] - menuWidth[menu]) + 1;
137
        }
138
        else
139
        {
140
            prevcord = menuCoord[menu];
141
            prevscroll = menuScrollCurrent[menu];
142
            menuScrollCurrent[menu] -= menuScrollAdd[menu];
143
            menuCoord[menu] -= menuScrollAdd[menu];
144
            if (menuCoord[menu] < menuMinimumID[menu])
145
            {
146
                menuCoord[menu] = ((cellcount - 1) * menuPageSize[menu]) + prevcord;
147
                menuScrollCurrent[menu] = (cellcount - 1) * menuPageSize[menu];
148
            }
149
        }
150
    }
151
    if (hpageturn == 1)
152
    {
153
        if (menuWidth[menu] > 1)
154
        {
155
            menuScrollCurrent[menu] += menuScrollAdd[menu];
156
            menuCoord[menu] += (menuScrollAdd[menu] - menuWidth[menu]) + 1;
157
        }
158
        else
159
        {
160
            prevcord = menuCoord[menu];
161
            prevscroll = menuScrollCurrent[menu];
162
            menuScrollCurrent[menu] += menuScrollAdd[menu];
163
            menuCoord[menu] += menuScrollAdd[menu];
164
            if (menuCoord[menu] > menuMaximumID[menu])
165
            {
166
                if (menuScrollCurrent[menu] >= (cellcount * menuPageSize[menu]))
167
                {
168
                    menuCoord[menu] = prevcord - prevscroll;
169
                    menuScrollCurrent[menu] = menuMinimumID[menu];
170
                }
171
                else
172
                {
173
                    while (menuCoord[menu] > menuMaximumID[menu])
174
                        menuCoord[menu]--;
175
                }
176
            }
177
        }
178
    }
179
    if (hpageturn != 0)
180
    {
181
        if (menuScrollCurrent[menu] < 0)
182
        {
183
            menuScrollCurrent[menu] = menuMaximumID[menu] + menuScrollCurrent[menu];
184
            menuCoord[menu] = (menuMaximumID[menu] + menuCoord[menu] + menuWidth[menu]) - 1;
185
        }
186
        else if (menuScrollCurrent[menu] > menuMaximumID[menu])
187
        {
188
            menuScrollCurrent[menu] = menuMaximumID[menu] - menuScrollCurrent[menu];
189
            menuCoord[menu] = (menuCoord[menu] - menuMaximumID[menu] - menuWidth[menu]) + 1;
190
        }
191
    }
192
    if (menuScrollCurrent[menu] <= menuMinimumID[menu])
193
        menuScrollCurrent[menu] = menuMinimumID[menu];
194
    if (menuScrollCurrent[menu] > menuMaximumID[menu])
195
        menuScrollCurrent[menu] = menuMaximumID[menu];
196
    if (menuWidth[menu] > 1)
197
    {
198
        while ((menuScrollCurrent[menu] % menuWidth[menu]) != 0)
199
            menuScrollCurrent[menu]++;
200
    }
201
    if (menuWidth[menu] == 1)
202
    {
203
        while ((menuScrollCurrent[menu] % menuHeight[menu]) != 0)
204
            menuScrollCurrent[menu]++;
205
    }
206
}
207
if (menuCoord[menu] > menuMaximumID[menu])
208
    menuCoord[menu] = menuMaximumID[menu];
209
if (menuCoord[menu] < menuMinimumID[menu])
210
    menuCoord[menu] = menuMinimumID[menu];
211
confirm_press = 0;
212
confirm_moved = 0;
213
confirm_custom = 0;
214
cancel_press = 0;
215
third_press = 0;
216
confirmed = 0;
217
quit_now = 0;
218
if (button1_p() && buffer1 <= 0 && buffer2 <= 0)
219
{
220
    confirm_press = 1;
221
    if (optionSelectable[menu][menuCoord[menu]])
222
    {
223
        optionSelected[menu][menuCoord[menu]] = 1;
224
        buffer1 = 2;
225
        if (optionEffect[menu][menuCoord[menu]] == 0)
226
        {
227
            if (menuNext[menu] < menuMax && menuNext[menu] >= 0)
228
            {
229
                menu = menuNext[menu];
230
                confirm_moved = 1;
231
            }
232
        }
233
        else if (optionEffect[menu][menuCoord[menu]] == 1)
234
        {
235
            confirm_custom = 1;
236
        }
237
        else if (optionEffect[menu][menuCoord[menu]] == 2)
238
        {
239
            cancel_press = 1;
240
        }
241
    }
242
}
243
if (button2_p() && buffer1 <= 0 && buffer2 <= 0)
244
    cancel_press = 1;
245
if (cancel_press == 1)
246
{
247
    menu = menuPrevious[menu];
248
    buffer2 = 2;
249
    if (menu == -1)
250
    {
251
        menu = 0;
252
        quit_now = 1;
253
    }
254
    else
255
    {
256
        for (j = 0; j < menuMaximumID[menu]; j++)
257
            optionSelected[menu][menuCoord[menu]] = 0;
258
    }
259
}
260
if (button3_p() && buffer1 <= 0 && buffer2 <= 0 && buffer3 <= 0)
261
{
262
    buffer3 = 2;
263
    third_press = 1;
264
}
265
if (quit_now)
266
{
267
    if (reminteract == 1)
268
        global.interact = 0;
269
    instance_destroy();
270
}
271
rbuffer -= 1;
272
ubuffer -= 1;
273
dbuffer -= 1;
274
lbuffer -= 1;
275
buffer1 -= 1;
276
buffer2 -= 1;
277
buffer3 -= 1;