Undertale Yellow script viewer

← back to main script listing

gml_GlobalScript_scr_normal_state

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

function scr_normal_state() { if (live_call()) return global.live_result; scr_get_input(); if (DEBUG_DANCE == false) { } else if (DEBUG_DANCE) { if (sprite_index != spr_pl_dance) { sprite_index = spr_pl_dance; image_speed = 1; } if (global.right_key + global.left_key + global.up_key + global.down_key) DEBUG_DANCE = false; else exit; } if (global.cutscene == true) exit; var hsp = 0; var vsp = 0; var pl_spd = plspd; if (global.option_autorun ^^ keyboard_multicheck(1) && global.player_can_run == true) { is_sprinting = true; pl_spd = plspd + 2; } else if (is_sprinting == true) { is_sprinting = false; } hsp = sign(global.right_key - (global.left_key * 2)) * pl_spd; vsp = sign(global.down_key - (global.up_key * 2)) * pl_spd; if (place_meeting(x + 1, y, obj_dr) || place_meeting(x, y + 1, obj_dr)) { x = xprevious; y = yprevious; if (hsp > 0 && vsp > 0) { hsp = 0; vsp = 0; } else if (hsp > 0) { vsp = -pl_spd - 1; } else if (vsp > 0) { hsp = -pl_spd - 1; } } if (place_meeting(x - 1, y, obj_dl) || place_meeting(x, y + 1, obj_dl)) { x = xprevious; y = yprevious; if (hsp < 0 && vsp > 0) { hsp = 0; vsp = 0; } else if (hsp < 0) { vsp = -pl_spd - 1; } else if (vsp > 0) { hsp = pl_spd + 1; } } if (place_meeting(x + 1, y, obj_ur) || place_meeting(x, y - 1, obj_ur)) { x = xprevious; y = yprevious; if (hsp > 0 && vsp < 0) { hsp = 0; vsp = 0; } else if (hsp > 0) { vsp = pl_spd + 1; } else if (vsp < 0) { hsp = -pl_spd - 1; } } if (place_meeting(x + 1, y, obj_ul) || place_meeting(x, y - 1, obj_ul)) { x = xprevious; y = yprevious; if (hsp < 0 && vsp < 0) { hsp = 0; vsp = 0; } else if (hsp < 0) { ...
()
2
{
3
    if (live_call())
4
        return global.live_result;
5
    scr_get_input
scr_get_input

function scr_get_input() { if (live_call()) return global.live_result; scr_stick_press(); global.down_key = keyboard_check(vk_down) || gamepad_button_check(0, gp_padd) || gamepad_axis_value(0, gp_axislv); global.left_key = keyboard_check(vk_left) || gamepad_button_check(0, gp_padl) || -gamepad_axis_value(0, gp_axislh); global.right_key = keyboard_check(vk_right) || gamepad_button_check(0, gp_padr) || gamepad_axis_value(0, gp_axislh); global.up_key = keyboard_check(vk_up) || gamepad_button_check(0, gp_padu) || -gamepad_axis_value(0, gp_axislv); global.down_keyp = keyboard_check_pressed(vk_down) || gamepad_button_check_pressed(0, gp_padd) || down_stick; global.left_keyp = keyboard_check_pressed(vk_left) || gamepad_button_check_pressed(0, gp_padl) || left_stick; global.right_keyp = keyboard_check_pressed(vk_right) || gamepad_button_check_pressed(0, gp_padr) || right_stick; global.up_keyp = keyboard_check_pressed(vk_up) || gamepad_button_check_pressed(0, gp_padu) || up_stick; if (gamepad_button_check_pressed(0, gp_padd) + gamepad_button_check_pressed(0, gp_padu) + gamepad_button_check_pressed(0, gp_padl) + gamepad_button_check_pressed(0, gp_padr) + down_stick + left_stick + right_stick + up_stick + gamepad_button_check_pressed(0, global.button1) + gamepad_button_check_pressed(0, global.button2) + gamepad_button_check_pressed(0, global.button3) + instance_exists(obj_phone_controls)) global.using_gamepad = true; else if (keyboard_check(vk_anykey)) global.using_gamepad = false; if (global.using_gamepad) { if (global.button1 == gp_face1) global.action_key = "A"; else if (global.button1 == gp_face2) global.action_key = "B"; else if (global.button1 == gp_face3) global.action_key = "X"; else if (global.button1 == gp_face4) global.action_key = "Y"; if (global.button2 == gp_face1) global.cancel_key = "A"; else if (global.button2 == gp_face2) global.cancel_key = "B"; else if (global.button2 == gp_face3) global.cancel_key = "X"; else if (global.button2 == gp_face4) global.cancel_key = "Y"; if (global.button3 == 32769) global.pause_key = "A"; else if (global.button3 == 32770) global.pause_key = "B"; else if (global.button3 == 32771) global.pause_key = "X"; else if (global.button3 == 32772) global.pause_key = "Y"; } else { global.pause_key = "C"; global.action_key = "Z"; global.cancel_key = "X"; } if (instance_exists(obj_phone_controls)) { global.down_key += obj_phone_controls.phn_down; global.left_key += obj_phone_controls.phn_left; global.right_key += obj_phone_controls.phn_right; global.up_key += obj_phone_controls.phn_up; global.down_keyp = sign(global.down_keyp + obj_phone_controls.phn_downp); global.left_keyp = sign(global.left_keyp + obj_phone_controls.phn_leftp); global.right_keyp = sign(global.right_keyp + obj_phone_controls.phn_rightp); global.up_keyp = sign(global.up_keyp + obj_phone_controls.phn_upp); } }
();
6
    if (DEBUG_DANCE == false)
7
    {
8
    }
9
    else if (DEBUG_DANCE)
10
    {
11
        if (sprite_index != spr_pl_dance)
12
        {
13
            sprite_index = spr_pl_dance;
14
            image_speed = 1;
15
        }
16
        if (global.right_key + global.left_key + global.up_key + global.down_key)
17
            DEBUG_DANCE = false;
18
        else
19
            exit;
20
    }
21
    if (global.cutscene == true)
22
        exit;
23
    var hsp = 0;
24
    var vsp = 0;
25
    var pl_spd = plspd;
26
    if (global.option_autorun ^^ keyboard_multicheck(1) && global.player_can_run == true)
27
    {
28
        is_sprinting = true;
29
        pl_spd = plspd + 2;
30
    }
31
    else if (is_sprinting == true)
32
    {
33
        is_sprinting = false;
34
    }
35
    hsp = sign(global.right_key - (global.left_key * 2)) * pl_spd;
36
    vsp = sign(global.down_key - (global.up_key * 2)) * pl_spd;
37
    if (place_meeting(x + 1, y, obj_dr) || place_meeting(x, y + 1, obj_dr))
38
    {
39
        x = xprevious;
40
        y = yprevious;
41
        if (hsp > 0 && vsp > 0)
42
        {
43
            hsp = 0;
44
            vsp = 0;
45
        }
46
        else if (hsp > 0)
47
        {
48
            vsp = -pl_spd - 1;
49
        }
50
        else if (vsp > 0)
51
        {
52
            hsp = -pl_spd - 1;
53
        }
54
    }
55
    if (place_meeting(x - 1, y, obj_dl) || place_meeting(x, y + 1, obj_dl))
56
    {
57
        x = xprevious;
58
        y = yprevious;
59
        if (hsp < 0 && vsp > 0)
60
        {
61
            hsp = 0;
62
            vsp = 0;
63
        }
64
        else if (hsp < 0)
65
        {
66
            vsp = -pl_spd - 1;
67
        }
68
        else if (vsp > 0)
69
        {
70
            hsp = pl_spd + 1;
71
        }
72
    }
73
    if (place_meeting(x + 1, y, obj_ur) || place_meeting(x, y - 1, obj_ur))
74
    {
75
        x = xprevious;
76
        y = yprevious;
77
        if (hsp > 0 && vsp < 0)
78
        {
79
            hsp = 0;
80
            vsp = 0;
81
        }
82
        else if (hsp > 0)
83
        {
84
            vsp = pl_spd + 1;
85
        }
86
        else if (vsp < 0)
87
        {
88
            hsp = -pl_spd - 1;
89
        }
90
    }
91
    if (place_meeting(x + 1, y, obj_ul) || place_meeting(x, y - 1, obj_ul))
92
    {
93
        x = xprevious;
94
        y = yprevious;
95
        if (hsp < 0 && vsp < 0)
96
        {
97
            hsp = 0;
98
            vsp = 0;
99
        }
100
        else if (hsp < 0)
101
        {
102
            vsp = pl_spd + 1;
103
        }
104
        else if (vsp < 0)
105
        {
106
            hsp = pl_spd + 1;
107
        }
108
    }
109
    if (place_meeting(x, y, obj_stairs))
110
    {
111
        x = xprevious;
112
        y = yprevious;
113
        if (global.right_key)
114
        {
115
            if (place_free(x + pl_spd, y))
116
                hsp = pl_spd;
117
            if (place_free(x, y - 2))
118
                vsp = -2;
119
        }
120
        if (global.left_key)
121
        {
122
            if (place_free(x - pl_spd, y))
123
                hsp = -pl_spd;
124
            if (place_free(x, y + 2))
125
                vsp = 2;
126
        }
127
        if (global.up_key && !global.right_key && !global.down_key)
128
        {
129
            if (place_free(x, y - 3))
130
                vsp = -pl_spd;
131
        }
132
        if (global.down_key && !global.left_key && !global.up_key)
133
        {
134
            if (place_free(x, y + 3))
135
                vsp = pl_spd;
136
        }
137
    }
138
    if (!global.debugmove)
139
    {
140
        if (!place_free(x + hsp, y))
141
        {
142
            while (place_free(x + sign(hsp), y))
143
                x += sign(hsp);
144
            hsp = 0;
145
        }
146
        if (!place_free(x, y + vsp))
147
        {
148
            while (place_free(x, y + sign(vsp)))
149
                y += sign(vsp);
150
            vsp = 0;
151
        }
152
        if (!place_free(x + hsp, y + vsp))
153
        {
154
            while (place_free(x + sign(hsp), y + sign(vsp)))
155
            {
156
                x += sign(hsp);
157
                y += sign(vsp);
158
            }
159
            hsp = 0;
160
            vsp = 0;
161
        }
162
    }
163
    if (vsp == 0 && hsp == 0)
164
    {
165
        image_speed = 0;
166
        image_index = 0;
167
        is_sprinting = false;
168
        global.walking = false;
169
    }
170
    else if (global.walking == false)
171
    {
172
        image_index = 1;
173
        global.walking = true;
174
        image_speed = 0.2;
175
    }
176
    if (is_sprinting)
177
    {
178
        if (image_speed != 0)
179
            image_speed = 1/3;
180
    }
181
    else if (global.walking)
182
    {
183
        image_speed = 0.2;
184
    }
185
    var can_pause = true;
186
    if (instance_exists(obj_flowey_world_controller) || instance_exists(obj_flowey_1_controller_base) || room == rm_battle_flashback_final_2 || room == rm_battle_flashback_07 || (room == rm_steamworks_21 && instance_exists(obj_steamworks_21_controller) && obj_steamworks_21_controller.axis_is_running))
187
        can_pause = false;
188
    if (keyboard_multicheck_pressed(2) && !instance_exists(obj_transition) && can_pause)
189
    {
190
        instance_create(0, 0, obj_pause_menu);
191
        state = scr_frozen_state;
192
    }
193
    if (sliding == false)
194
    {
195
        if (dirStore == false)
196
        {
197
            if (global.right_key)
198
            {
199
                direction = 0;
200
                dirStore = true;
201
            }
202
            if (global.left_key)
203
            {
204
                direction = 180;
205
                dirStore = true;
206
            }
207
            if (global.down_key)
208
            {
209
                direction = 270;
210
                dirStore = true;
211
            }
212
            if (global.up_key)
213
            {
214
                direction = 90;
215
                dirStore = true;
216
            }
217
        }
218
        else
219
        {
220
            if (direction == 0)
221
            {
222
                if (!global.right_key)
223
                    dirStore = false;
224
                if (global.left_key)
225
                    direction = 180;
226
                if (hsp == 0 && vsp != 0)
227
                {
228
                    if (global.up_key == 1)
229
                        direction = 90;
230
                    if (global.down_key == 1)
231
                        direction = 270;
232
                }
233
            }
234
            if (direction == 90)
235
            {
236
                if (!global.up_key)
237
                    dirStore = false;
238
                if (vsp == 0 && hsp != 0)
239
                {
240
                    if (global.left_key == 1)
241
                        direction = 180;
242
                    if (global.right_key == 1)
243
                        direction = 0;
244
                }
245
            }
246
            if (direction == 180)
247
            {
248
                if (!global.left_key)
249
                    dirStore = false;
250
                if (hsp == 0 && vsp != 0)
251
                {
252
                    if (global.up_key == 1)
253
                        direction = 90;
254
                    if (global.down_key == 1)
255
                        direction = 270;
256
                }
257
            }
258
            if (direction == 270)
259
            {
260
                if (!global.down_key)
261
                    dirStore = false;
262
                if (global.up_key)
263
                    direction = 90;
264
                if (vsp == 0 && hsp != 0)
265
                {
266
                    if (global.left_key == 1)
267
                        direction = 180;
268
                    if (global.right_key == 1)
269
                        direction = 0;
270
                }
271
            }
272
        }
273
    }
274
    if (place_meeting(x, y, obj_slippery_ice) && sliding == false)
275
    {
276
        if (hsp_slide == 0 && vsp_slide == 0)
277
        {
278
            hsp_slide = hsp + sign(hsp);
279
            vsp_slide = vsp + sign(vsp);
280
        }
281
        sliding = true;
282
    }
283
    if (sliding == true)
284
    {
285
        hsp = hsp_slide;
286
        vsp = vsp_slide;
287
        if (!place_meeting(x, y, obj_slippery_ice) || (place_meeting(x, y, obj_slippery_ice) && hsp == 0 && vsp == 0) || !place_free(x + hsp, y + vsp))
288
        {
289
            hsp_slide = 0;
290
            vsp_slide = 0;
291
            hsp = 0;
292
            vsp = 0;
293
            sliding = false;
294
        }
295
        x += hsp;
296
        y += vsp;
297
        exit;
298
    }
299
    if (vsp > pl_spd)
300
        vsp = pl_spd;
301
    if (hsp > pl_spd)
302
        hsp = pl_spd;
303
    if (vsp < -pl_spd)
304
        vsp = -pl_spd;
305
    if (hsp < -pl_spd)
306
        hsp = -pl_spd;
307
    x += hsp;
308
    y += vsp;
309
}