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; |